黑马程序员技术交流社区

标题: 什么时候需要用到final关键字啊? [打印本页]

作者: guanxiangliang    时间: 2014-8-5 14:51
标题: 什么时候需要用到final关键字啊?
感觉老是有的时候突然就用它来修饰
作者: 刘沙    时间: 2014-8-5 15:04
final可以修饰类   成员变量  方法
当修饰类的时候 这个类没有子类
当修饰成员变量的时候 这个变量只能被初始化一次
当修饰方法的时候 这个方法不能被重写
当你有这些需求的时候 可以考虑考虑final
作者: 晓风    时间: 2014-8-5 15:53
首先,final关键字的功能:
         1,final修饰的类不能被继承;如果不希望该类被继承,则使用final修饰。
         2,final修饰的方法不能被重载;如果希望方法只有这一种用法,则使用final修饰。
         3,final修饰的变量一旦被赋值就不能被改变;通常把一些固定不变的值用final修饰,即常量。比如一年
              有12个月,比如一天24个小时等等。。。这些固定值。
作者: 790324255a    时间: 2014-8-5 22:46
内部类访问外部类成员变量 需要final修饰
作者: 莫忘本心    时间: 2014-8-6 00:00
常见的就是用final修饰常量吧
作者: alvinbx    时间: 2014-8-6 00:02
当你的类不想被继承,变量不想被重新赋值,方法不想被重写时加final就可以了。
作者: 到处玩的    时间: 2014-8-6 00:13
final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
作者: hmid    时间: 2014-8-6 00:17
楼上说的对啊。
作者: 我行我SHOW‰    时间: 2014-8-6 00:44
到处玩的 发表于 2014-8-6 00:13
final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 ...

赞同,归纳的很好~~~~
作者: 王健辉    时间: 2014-8-6 01:17
final : 作为一个修饰符,
1.可以修饰类,函数,变量。
2.被final修饰的类不可以被继承。为了避免被继承,被子类复写功能。
3.被final修饰的方法不可以被复写。
4.被final修饰的变量是一个常量只能赋值一次,既可以修饰成员变量,有可以修饰局部变量。
class TestFinalDemo
{
        public static void main(String[] args)
        {
                final int i = 10 ;  
                // 修改用final修饰的变量i
                  i++ ;
        }
}
这样就会报错:TestFinalDemo.java:7: 错误: 无法为最终变量i分配值
                i++ ;
                ^
当某个值不需要改变,加上final最好。
5.内部类定义在类中的局部位置上时,只能访问该局部被final修饰的局部变量。




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