Java基础--面向对象_final关键字、常量

此生再无相见时 提交于 2020-03-11 02:33:09

final可以修饰变量、方法和类

  • final修饰的类无法继承

  • final修饰的方法无法重写,无法覆盖

  • final修饰的变量,只能赋一次值,不能重新赋值

    • 1.final修饰引用
      • 引用也是变量,final修饰的引用,指向的内存地址(对象)不能再改变,无法再指向其他对象,也无法赋值null。
      • final指向的对象不会被垃圾回收器回收,直到当前方法结束后,才会释放空间
      • final指向的对象的内部数据可以修改
    • 2.final修饰实例变量
      • final修饰的实例变量,系统不赋默认值,程序员必须手动赋值。普通的实例变量在创建对象的时候会默认赋值(例1)
      • final修饰的实例变量,一般添加static修饰(例2)。static final修饰的变量称为“常量”。
      • 常量:常量名建议全部大写,单词间用下划线连接。
      • 常量的值不能变。常量和静态变量都存储在方法区,在类加载时初始化。用类名.就可以调用。
      • 常量一般是public公开的
//例1
//赋值方法一
final double height=1.8;

//赋值方法二
final double weight;

public User(){
	//系统赋默认值是在这个时候,所以在这时赋值也可以
	this.weight=80;
}
//例2
class Chinese
{
	String idCard;
	String name;
	//final修饰的变量不能重新赋值,所有新建对象的country都是中国
	//为了节省内存空间,把final定义的变量定义为静态的,储存在方法区,就不用每个对象都要再存一份country
	public static final String COUNTRY="中国";
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!