面向对象--继承--final关键字--final关键字面试题

final关键字面试题

程序示例

/*
        final:
            被final修饰的局部变量是基本数据类型的时候,不可以修改值
            被final修饰的局部变量是引用数据类型的时候,该对象的地址值是无法改变的,
                但是引用堆内存中的变量是可以发生改变。
*/

class Student{
    int age = 18;
}

public class FinalDemo2 {
    public static void main(String[] args) {
      
//          局部变量,并且a是基本数据类型
        int a = 10;
        System.out.println(a);
//          a的值可以发生改变
        a = 100;
        System.out.println(a);

//          局部变量,并且b是被final修饰的基本数据类型
        final int b = 100;
        System.out.println(b);      
//          b的值不可发生改变
//       b = 200;
//       System.out.println(b);

         //创建一个Student对象s1(引用数据类型)
        Student s1 = new Student();
        System.out.println(s1.age);
         //创建一个被final修饰的Student对象s2(引用数据类型)
        final Student s2 = new Student();
        System.out.println(s2.age);
      
         // 被final修饰的局部变量是引用数据类型的时候,该对象的地址值是无法改变的
         // s2 = s1 ;
      
         // 但是引用堆内存中的变量是可以发生改变
        s2.age = 19;
        System.out.println(s2.age);
    }
}
posted @ 2021-12-10 20:56  赤兔胭脂小吕布  阅读(33)  评论(0)    收藏  举报