内部类定义在局部时:(说的是定义在类中方法中的时候)
1.不可以被成员修饰符所修饰
2.可以直接访问外部类中的成员====》因为还持有外部类中的引用
注意:这里有一个坑
但是,不可以访问它所在的局部中的变量。。。只能访问被final修饰的局部变量 这里只是针对 jdk8以下的,jdk8+以后的 不用被final修饰 也可以 使用
示例代码 这是jdk 1.8环境下
public class InnerClassDemo02 {
public static void main(String[] args) {
new OClass().method();
}
}
class OClass{
int x =3;
void method(){
//局部变量
int y =88;
class Inner{
void Function(){
System.out.println(y);
}
}
new Inner().Function();
}
}
如果在jdk1.7环境下运行
加上final 后就可以了。。这里是个坑