JAva--ローカルクラスはアウトソーシングメソッドのfinalローカルメンバーにのみアクセスできます

1989 ワード

class B523{

//    private int k = 10;

    public void go(int x, final int y){

//        int a = x+y;

        final int b = x-y;

        class InB{// 

            public void foo(){

                System.out.println(b);

            }

        }//InB

        InB here = new InB();

        here.foo();

    }//go

}

public class A523 {

    public static void main(String[] args) {

        new B523().go(1,2);

    }

}

//ローカルクラスは、アウトソーシングメソッドのfinalローカル変数にのみアクセスできます.//ローカルクラスのメンバーメソッドfoo()は、外部クラスBのメンバー変数k、アウトソーシングメソッドgo()のハンドル変数bおよびパラメータyにアクセスできるが、メソッドgo()のローカル変数aおよびxにアクセスできない.