Java基础复习---final关键字

final关键字

1.可以修饰类,函数,变量;

2.final修饰的类不可以被继承,但其可以继承其他类

3.final修饰的方法步可以被覆写,但可以覆写其父类的方法

4.final修饰的变量是一个常量,只能赋值一次;既可以修饰成员变量,也可以修饰局部变量

在描述事物时,一些数据的出现值是固定的,那么这时为了增强阅读性,都给这些值起个名字,方便阅读。

作为常量,书写规范:所有字母均大写,如果有多个单词组成,单词通过_来连接

5.内部类定义在类中的局部位置上时,只能访问该局部被final修饰的局部变量(JDK1.8中可以不加final

6.final修饰的引用型变量,表示该变量的引用不能改变(因为引用存的是分配好的地址,加上final后这个地址就定死了,也就是变量的引用不能改变了),而不是该变量的值不能变(地址定死了,意味着这个引用不能再指向别的对象了,但定死的地址里的数据可以改变,也就是该变量的值可以改变)。

如:private final Date hiredate;

仅仅意味着,存储在hiredate变量中的对象引用在对象构造之后不能被改变,而并不意味着hiredate对象是一个常量。

 

代码实例:

package finatest;
 
public class Test {
public static void main(String[] args) {
final Dog dog = new Dog("欧欧");
//执行new操作的时候JVM会分配一块内存,用来保存新创建的实例,实例对应的属性值都保存在这块内在中。
//给dog赋值的时候,实际上dog保存的是这块内存的地址。
//final限制的是dog的值只能是这个内存的地址,不能修改成其他地址,所以再次执行dog=new Dog("YY")的时候会报错。
//final不限制对内存中数据的修改,所以dog.name="YYY"是可以运行的。
dog.name = "美美";
The final local variable dog cannot be assigned.
It must be blank and not using a compound assignment
// dog = new Dog("亚亚");
}
}
 
package finatest;
 
public class Dog {
String name;
  public Dog(String string){
    this.name=name;
  }
}


 参考资料:

final修饰引用型变量

http://bbs.csdn.net/topics/390502626

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值