在Java中,final修饰符要如何使用
final,字面上的意思是“最后的,最终的”,在Java中表示同样的含义。
final可以用来修饰变量、方法和类。
1.final修饰类
final修饰类时表示此类是“最后的、最终的”,即不能被继承,不能拥有自己的子类。
如果试图对一个已经用final修饰的类进行集成,则会在编译期间发生错误。
2.final修饰方法
final修饰方法表示此方法已经是“最后的、最终的”含义,即此方法不能被重写,但是可以被重载。PS:重写的前提是子类可以继承父类的方法,如果父类中final修饰的方法同时设置权限为private,则会导致子类不能继承此方法。但是,可以在子类中重新定义相同方法名和参数的方法,此时不会产生重写与final的矛盾。而是在子类中重新定义了新的方法。因为父类中及被private又被final修饰的那个方法根本没有被继承,子类在重新定义这个同名同参数方法时不会发生编译错误。
3.final修饰变量
final修饰的变量表示此变量是“最后的、最终的”。一旦定义了final变量并且在为其显示初始化后,final修饰的变量值不可被改变。
注意Attention:
1、final修饰的变量,无论是类属性、对象属性、形参还是局部变量,这些变量都需要程序员显示初始化,系统不会对final成员边来那个进行隐式初始化。
final修饰局部变量,与为被final修饰的变量一样,都需要显示初始化。即局部变量都需要显示初始化。
对一般的类属性和对象属性而言,首先都是先进行默认初始化,然后在对有显示赋值的变量进行显示初始化。
2、Java规定final修饰的类属性和变量熟悉感必须要进行显示初始化赋值。
3、无论是度与基本数据类型还是引用数据类型,final修饰的变量都是首次显示初始化后就不能修改的。对于final修饰的基本数据类型,由于在编译时就能确定该变量的至,于是吧该变量当做常量来处理。(常量命名规则:多个有意义的单词连接是,所有字符大写,单词之间用下划线分割)。对于final修饰的是引用数据类型,由于无法在编译是获得值,只能在运行时获得值。引用变量指向的是实际的对象,但是存储的是所指向对象的地址,因此,气质不能修改以为着其所指向的对象不能修改,即指向哪一个只能一直指向他,不能指向别的对象,但是可以修改这个对象内的属性。