1.不可以被成员修饰符修饰
2.可以直接访问外部类中的成员,因为还持有外部类中的引用。
但不可以访问它所在的局部中的变量,只能访问被final修饰的局部变量
(局部内部类中访问局部变量,局部变量需要定义为final)
package test;
class Outer {
private int x = 1;
void method() {
final int y = 4;
class Inner {
void function() {
System.out.println("y = "+ y);
}
}
new Inner().function();
}
}
public class InnerClassDemo {
public static void main(String[] args) {
new Outer().method();
}
}
//y = 4
package test;
class Outer {
private int x = 1;
void method(final int x) {
class Inner {
void function() {
System.out.println("x = "+ x);
}
}
new Inner().function();
}
}
public class InnerClassDemo {
public static void main(String[] args) {
Outer a = new Outer();
a.method(7);
a.method(8);
}
}
//x = 7
//x = 8