A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© luqh 中级黑马   /  2015-3-19 20:52  /  1640 人查看  /  16 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

final关键字在java中除了可以指定常量还有什么作用呢?那天见了别人的一段代码在线程中传递参数时也会用到final?具体代码找不到了

16 个回复

倒序浏览
被final修饰的类  不可以被继承。。被修饰的方法,不可以给重写
回复 使用道具 举报
我也遇到同样的问题,什么时候要用final?
回复 使用道具 举报
常量,只能赋一次值。。。
回复 使用道具 举报
见线程中也有用到final
回复 使用道具 举报
final 修饰的成员变量 就是常量
final 修饰的方法不能被重写
final 修饰的类不能被继承
多线程中写final 按我的经验,多半是局部内部类要访问外部的成员变量时,成员变量必须是final修饰的
回复 使用道具 举报
当一个变量需要被定值的时候就需要final,直接固定对象的地址。
被final修饰的方法也不可以被复写,这是除了private的一个小技巧,在API的一些核心方法都会看到。
一般被final修饰的都是一些boolean状态或者一些static的数据,可以防止被各种不可预料的状态改变其数值。
回复 使用道具 举报
_etc 中级黑马 2015-3-20 22:55:35
8#
最简单的理解是finnal就继承不了了。
回复 使用道具 举报
final:最终的意思
        (1)常见的它可以修饰类,方法,变量。
        (2)特点:
                A:修饰类时,该类不能被继承。
                B:修饰方法时,该方法不能被重写。
                C:修饰变量时,该变量不能被重新赋值。因为这个变量是常量。
                        常量:字面值常量。举例:"hello",10,100
                                  自定义常量。举例:final int x = 10;
        (3)final修饰局部变量
                基本类型:基本类型的值不能发生改变
                引用类型:引用类型的地址值不能发生改变,但是,该对象的堆内存的值可以改变。
        (4)final修饰变量的初始化时机
                A:被final修饰的变量只能赋值一次。
                B:在构造方法完毕前。(非静态的常量)
回复 使用道具 举报
一楼说的对 我是来捧场的
回复 使用道具 举报
hamesksk 发表于 2015-3-20 21:17
final 修饰的成员变量 就是常量
final 修饰的方法不能被重写
final 修饰的类不能被继承

额~~~~,我觉的应该是“局部内部类为了访问方法中的局部变量,所以方法中的局部变量必须被final修饰,而不是成员变量吧“,成员变量不需要被final修饰,就可以被局部内部类访问

点评

你说的对,我写错了  发表于 2015-3-21 13:29
回复 使用道具 举报
luqh 中级黑马 2015-3-21 09:49:21
12#
东方蓂荚 发表于 2015-3-21 07:29
final:最终的意思
        (1)常见的它可以修饰类,方法,变量。
        (2)特点:

好详细!看你回答的这么好,倍感压力
回复 使用道具 举报
有用  赞赞赞:)
回复 使用道具 举报
东方蓂荚 发表于 2015-3-21 07:29
final:最终的意思
        (1)常见的它可以修饰类,方法,变量。
        (2)特点:

被final修饰的变量,即使是方法中的也会在构造方法完毕前被初始化么?例如:
  1. class Test
  2. {
  3.       void show(String name){
  4.       final Test = new Test("name");}

  5.       Test(){}

  6.       Test(String s)
  7.       {System.out.println(s);}

  8.        public static void main(String[] args)
  9.        {  T t =new T();
  10.           t.show();

  11.       }
  12. }
复制代码
回复 使用道具 举报
final 修饰的成员变量 就是常量
final 修饰的方法不能被重写
final 修饰的类不能被继承
回复 使用道具 举报
luqh 发表于 2015-3-21 09:49
好详细!看你回答的这么好,倍感压力

没有,这都是视频上的笔记。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马