Java中的final关键字所起的作用

    科技2022-07-11  75

    Java中的final关键字所起的作用

    1、final修饰类中的属性或者变量 无论属性是基本类型还是引用类型,final所起的作用都是变量里面存放的“值”不能变。 这个值,对于基本类型来说,变量里面放的就是实实在在的值,如1,“abc”等。

    而引用类型变量里面放的是个地址,所以用final修饰引用类型变量指的是它里面的地址不能变,并不是说这个地址所指向的对象或数组的内容不可以变,这个一定要注意。

    例如:类中有一个属性是final Person p=new Person(“name”); 那么你不能对p进行重新赋值,但是可以改变p里面属性的值,p.setName(‘newName’);

    final修饰属性,声明变量时可以不赋值,而且一旦赋值就不能被修改了。对final属性可以在三个地方赋值:声明时、初始化块中、构造方法中。总之一定要赋值。 2、final修饰类中的方法 作用:可以被继承,但继承后不能被重写

    3、final修饰类 作用:类不可以被继承。

    例子:

    // final 修饰的类不能被继承,常用于修饰工具类,不允许第三方修改使用 final class tools { String tool; } class A { final boolean name = false; // final 修饰的变量变成常量,只能被赋值一次(基本类型) final int age; { age = 21; // final 修饰的变量可在构造方法或构造代码块内初始化 } final void method() { // final 修饰的方法不能被重写,但可以重载 System.out.println("final method"); } } class B extends A { String gender; // 错误写法,重写父类中的方法 // public void method() { // // } public void method(String gender) { // 允许重载被final修饰的方法 this.gender = gender; } } public class Demo1 { public static void main(String[] args) { final B b = new B(); // final 修饰引用类型,地址值仅赋值一次且不能改变,但对象属性值可以改变 // b = new B(); error b.gender = "男"; System.out.println(b.gender); } }
    Processed: 0.051, SQL: 8