100天程式碼提升計劃-第23天
阿新 • • 發佈:2022-03-29
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; //} }