黑马程序员技术交流社区

标题: 关于final的思考 [打印本页]

作者: 梁昱华    时间: 2012-8-4 12:07
标题: 关于final的思考
final 关键字为什么要修饰形参?
final 关键字为什么不能和abstract 携手修饰class?
final 修饰成员属性为什么一般要和static 结合使用?
编译器为什么默认提供一个类的无参构造函数?
编译器为什么在子类的构造函数第一行默认添加先调用父类无参构造函数的语句?
SUN 提供了接口为什么还要提供抽象类?
作者: 侯宪博    时间: 2012-8-4 12:12
楼主这是要重新撰写一本十万个为什么啊,呵呵。。。
我建议楼主带着这些问题去看视频
效果会奇佳。。。
加油。。。
作者: 黑马振鹏    时间: 2012-8-4 12:14
可以搜索以前的帖子 找答案,效果更好
作者: 林康春    时间: 2012-8-4 12:14
你想的不少啊
我也想总结一下,我这里做有一些笔记,顺便复习一下

inal 关键字为什么要修饰形参?
为了安全:该形参只能读取,不能修改,提高数据安全性。
final 关键字为什么不能和abstract 携手修饰class?
Final修饰的 类不能被继承,bastract修饰的类必须要被继承才可以用
这样就矛盾了。
final 修饰成员属性为什么一般要和static 结合使用?
final修饰属性:为常量,不能再赋值。一般和static结合使用
编译器为什么默认提供一个类的无参构造函数?
当这个类被继承作为父类时候,父类必须要有构造函数来给子类访问。
编译器为什么在子类的构造函数第一行默认添加先调用父类无参构造函数的语句?
子类继承了父母,子类的构造函数先访问父母的构造函数已有的东西,这样符合java面向对象的思想
SUN 提供了接口为什么还要提供抽象类?
接口不能被继承,只能被实现

对上面的回答,要深刻理解,灵活应用思考。
这样对后面的学习很有帮助的!
作者: 贾成龙    时间: 2012-8-4 12:47
final关键字:修饰的变量为常量,赋值后不会变化。
一般使用格式为  权限修饰+static+final  使用:因为final常量可以被所有对象调用访问;
final修饰成员变量时,final int NUM=6;成员变量NUM被锁定,不能再给NUM赋新值了,
而当final int NUM;这种格式时被final修饰的成员变量,最终的值应该是显示初始化值,不应该是默认初始化值。
final作为一个修饰符:
1.他可以修饰类,修饰变量,修饰方法;
2.final修饰的类为最终类不可以被继承;
3.final修饰的方法不可以被覆盖;
4.就是上面说的修饰变量的时候;
5.当程序中使用的一些不会变化的量,也就是我们常见的常量值,比如数学中圆周率π;这个常量叫全局常量。
看看 希望对你有帮助!




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