1.内部类和外部类的变量的访问
public class Outer {
private int size; //0
public class Inner
{
private int size; //1
public void test(int size) //2
{
size++; //2
this.size++; //1
Outer.this.size++; //0
}
}
}
class TestInner{
public static void main(String [] args){
Outer outer = new Outer(); //从内到外访问
Outer.Inner inner = outer.new Inner(); //有了外在访问内
int i = 0;
inner.test(i);
}
}
2.在方法中定义的内部类只能访问方法中的final型的局部变量,因为final定义的局部变量相当于一个常量,它的生命周期超出方法运行的周期。
public class InOut {
int testInt3 = 0;
public void helloTest1(final int testInt1){
int testInt2 ;
class InClass{
public void helloTest2(){
System.out.println("01->"+testInt1);
System.out.println("02->"+testInt2); //testInt2编译不通过
System.out.println("03->"+testInt3);
}
}
}
public void helloTest1_1(int testInt1){
final int testInt2 ;
class InClass{
public void helloTest2(){
System.out.println("01->"+testInt1); //testInt1编译不通过
System.out.println("02->"+testInt2);
System.out.println("03->"+testInt3);
}
}
}
}