1. 程式人生 > 其它 >100天程式碼提升計劃-第23天

100天程式碼提升計劃-第23天

final修飾區域性變數

含義:final修飾區域性變數那麼這個變數的值將永遠不會改變

對於基本型別來說,final不可變的是變數的數值不可變

 

 

package FinalDemo;

public class FinalLocal {
    public static void main(String[] args) {
        int num=10;
        System.out.println(num);
        num=20;
        System.out.println(num);
        System.out.println("==========");
         
final int num1=30; System.out.println(num1); //num1=40; 錯誤的寫法 } }

 

對於引用型別來說,final不可變的是變數的地址值不可變

package FinalDemo;

public class FinalMethodZi  {
    public static void main(String[] args) {
        Student student=new Student("張三");
        System.out.println(student.getName());
//張三 //輸出地址值 System.out.println(student);//張三的地址 student=new Student("李四"); System.out.println(student.getName());//李四 //輸出地址值 System.out.println(student);//李四的地址值 System.out.println("-----------"); final Student student1=new Student("啦啦啦"); System.out.println(student1.getName());
//啦啦啦 //student1=new Student("haha");錯誤寫法 student1.setName("哈哈哈"); System.out.println(student1.getName());//哈哈哈 } }
package FinalDemo;

public class Student {
    private  String name;

    public Student() {
    }

    public Student(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

二、final修飾成員變數

final修飾成員變數,其中值依舊不可改變

final修飾成員變數與區域性變數的區別

1.成員變數具有預設值,引用final以後必須手動賦值

2.對用引用final關鍵字成員方法複製有兩種:1.直接賦值2.通過構造方法進行賦值(兩種方法只能取一種)

1.直接賦值法

程式碼

package FinalDemo;

public class FinalMemberDirect {
    private  final String name="張三";
}

2.通過構造方法進行賦值

程式碼

package FinalDemo;

public class FinalMemberStructure {
    private final String name;

    public  FinalMemberStructure() {
        name="張三";
    }

    public FinalMemberStructure(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    //public void setName(String name) {
    //    this.name = name;
    //}
}