final关键字的使用 实体类的空白final final自变量 ,final方法,类

Java 命名规则,拥有固定标识符的 static final基本数据类型(亦即编译期常数)都全部采用大
写字母(用下划线分隔单个标识符里的多个单词)。

对于基本数据类型,final 会将值变成一个常数;但对于对象句柄,final 会将句柄变成一个常数。进行声明时,必须将句柄初始化到一个具体的对象。而且永远不能将句柄变成指向另一个对象。不能由于某样东西的属性是final,就认定它的值能在编译时期知道,

final int i4 = (int)(Math.random()*20);
static final int i5 = (int)(Math.random()*20);这两个就是随机数

如果我输出    对象1.i4,对象1.i5。对象2.i4,对象2.i5,在控制台上显示的是15,9和10,9

i4的值是唯一的,不是static变量,回因为new一个对象重新生成一个新值,但 i5的值不会由于创建了一个新 对象而发生改变。那是因为它的属性是static,而且在载入时初始化,而非每创建一个对象时初始化。

空白final就是这样,final int a;如果我们这样写了,就需要对这个类的每个构建器中让a得到正确的初始化,就是赋值

自变量也可以是final,private void abc(final int a)意味着在一个方法的内部,我们不能改变自变量句柄指向的东西。如果自变量是一个对象句柄的话,就不能自变量=new的一个新对象。

final方法,一方面为了防止继承类改变它原有的含义,而是提高效率,只有在方法的代码量非常少,或者想明确禁止方法被覆盖的时候,才应考虑将一个方法设为final。类内所有private方法都自动成为final。由于我们不能访问一个 private方法,所以它绝对不会被其他方法覆盖(若强行这样做,编译器会给出错误提示)。可为一个 private方法添加final 指示符,但却不能为那个方法提供任何额外的含义。

final类只是禁止继承。类无法被继承,那么其中的方法也无法继承。这也可以提高效率。final类会内嵌

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值