1. 内部类访问外部类的成员变量:Outer.this.size
public class Outer {
private int size;
public class Inner1 {
private int size;
public void display(int size) {
size++; // 引用的是display函数的形参
this.size++; // 引用的是Inner类中的成员变量
Outer.this.size++; // 引用的是Outer类中的成员变量
}
}
}
2. 内部类如何被外部引用:Outer.Inner inner = outer.new Inner()要创建一个内部类的实例对象,必须先创建一个外部类的实例对象
public class TestInner {
public static void main(String[] args) {
Outer outer = new Outer();
Outer.Inner inner = outer.new Inner();
inner.display();
}
}
class Outer{
private int size = 10;
public class Inner{
public void display(){
System.out.println(size);
}
}
}
3. 在方法中定义的内部类如果要访问方法中的局部变量,局部变量必须声明为final
public class Outer {
public void test(){
final int x = 0;
class Inner {
void display(){
System.out.println(x);
}
}
}
}
4. 外部类可以直接访问静态内部类,无需创建外部类对象
class Outer {
static class Inner{
}
}
public class Test{
public static void main(String[] args) {
Outer.Inner inner = new Outer.Inner();
}
}