黑马程序员技术交流社区
标题:
求帮助!谢谢~
[打印本页]
作者:
黑马_孙万春
时间:
2011-11-29 09:14
标题:
求帮助!谢谢~
本帖最后由 黑马_孙万春 于 2011-11-30 08:58 编辑
为什么方法里的内部类要访问类外的局部变量时,局部变量必须要用final修饰呢?
作者:
强子
时间:
2011-11-29 09:19
因为内部类虽然在方法内部,但是它有自己的存活时间,而方法调用完之后里面的局部变量就消失了
而用final修饰其值不能更改,相当于在内部类中创建了一个相同的变量,这个变量就不会随着方法的结束而消失了
作者:
刘涛
时间:
2011-11-29 09:20
因为内部类虽然在方法内部,但是它有自己的存活时间,而方法调用完之后里面的局部变量就消失了
而用final修饰其值不能更改,相当于在内部类中创建了一个相同的变量,这个变量就不会随着方法的结束而消失了
顶 但看文字是不能完全理解的
要看实例程序
作者:
黑马_孙万春
时间:
2011-11-29 09:33
那我还想问一下,方法的存活时间和内部类的存活时间有关系吗?
作者:
刘涛
时间:
2011-11-29 09:52
黑马_孙万春 发表于 2011-11-29 09:33
那我还想问一下,方法的存活时间和内部类的存活时间有关系吗?
与外部类的属性/ 方法并列的。
作者:
刘涛
时间:
2011-11-29 10:02
刘涛 发表于 2011-11-29 09:52
与外部类的属性/ 方法并列的。
我再解释一下 :
final关键字修饰的是常量,
常量的值是不可改变的,
常量是变量中的一个特例,
这样就不难理解为什么要用final修饰了吧。
作者:
李晓斌
时间:
2011-11-29 10:51
final关键字的特点:
1.可以修饰类、函数、变量。
2.被final修饰的类不可以被继承。为了避免被继承,被子类复写功能。
3.被final修饰的方法不可以被复写。
4.被final修饰的变量是一个常量,只能赋值一次,既可以修饰成员变量,又可以修饰局部变量。(例如:final int x=3;则x终身为3了)
5.当在描述事物时,一些数据的出现值是固定的,那么这时为了增强阅读性,都给这些值起个名字。方便于阅读,而这个值不需要改变,所以加上final修饰。(final double pai=3.14;)作为常量:常量的书写规范所有字母都大写,如果由多个单词组成。单词间通过下划线连接。(如:π=PI或者MY_PI)
6.内部类定义在类中的局部位置上时只能访问该局部被final修饰的局部变量。(知道即可)
这是我在听老毕预热班时做的关于final关键字的笔记,希望对lz有用
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2