黑马程序员技术交流社区

标题: 关于内部类的问题 [打印本页]

作者: LSK~    时间: 2015-6-3 11:48
标题: 关于内部类的问题
关于内部类的问题,摘自博客,博客内容如下。看不明白程序下边的第一句。还有作者的意思是输出7 8?实际运行输出的是4 4。迷惑中!也许是我死扣了,但是我感觉作者有深意。


[java] view plaincopy
1.class Outer  
2.{  
3.    int x = 3;  
4.    void method(final int a)  
5.    {  
6.        final int y = 4;  
7.        //局部内部类  
8.        class Inner  
9.        {  
10.            void function()  
11.            {  
12.                System.out.println(y);  
13.            }  
14.        }  
15.        new Inner().function();//使用局部内部类中的方法。  
16.    }  
17.}  
18.class  InnerClassDemo  
19.{  
20.    public static void main(String[] args)   
21.    {  
22.        Outer out = new Outer();  
23.        out.method(7);//打印7  
24.        out.method(8);//打印8  
25.    }  
26.}  
注:为什么上面的代码中打印的值为什么会改变呢?被final修饰的变量的值是不会被改变的。这里类调用方法使用完后,这时这个被final修饰的变量已经从栈内存中消失了,类再次调用这个方法时,已经是另一变量,所以可以重新被传值。
 





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2