最近刚学到内部类,老毕在视频里提到,内部类如果定义在局部(外部类的方法中),这个内部类仍然可以访问外部类的成员,但是如果要访问这个内部类所在的局部中的成员,那么这个成员必须用final修饰。但是我自己写的代码中,这个内部类也可以访问没有加final修饰的成员,有没有人来解答一下为什么?
- class out{
- int x = 1;
- void method(int a){
- int y =2;
- class inner{
- void function(){
- System.out.print(a);
- }
- }
- new inner().function();
- }
- }
- class InnerClassDemo{
- public static void main(String[] args){
- new out().method(4);
- }
- }
复制代码 |
|