標籤:system 實現 其他 學習 ima string 介面 資訊 img
封裝:將類的某些資訊隱藏在類內部,不允許外部程式直接存取,而是通過該類提供的方法來實現對隱藏資訊的操作和訪問。把過程和資料包圍起來,對資料的訪問只能通過已定義的介面。
在java中通過關鍵字private實現封裝。
需要用特定的方法來進行屬性的讀寫:getter setter
首先瞭解未封裝的函數容易被其他類改變其屬性值。
1 public class Test {2 String name="張三"; //參量沒有用private修飾3 public void ss(){ //擷取屬性值4 System.out.println(name);5 }6 }
1 public class Test2 {2 public static void main(String[] args){3 Test test=new Test();4 test.name="李四";5 test.ss();6 } 7 }
運行顯示結果為:
李四
說明屬性值已經被Test2改變
如果將Test類中的name屬性加上private修飾
編譯環境報錯,說明該屬性不能被本類以外的類調用。
那封裝之後的類通過什麼方法來改便其屬性值呢?
答案就是setter和getter
1 public class Test { 2 private String name="張三"; //參量用private修飾 3 public void ss(){ //擷取屬性值 4 System.out.println(name); 5 } 6 public String getName(){ 7 return name; 8 } 9 public void setName(String newName){10 name=newName;11 }12 }
1 public class Test2 {2 public static void main(String[] args){3 Test test=new Test();4 test.setName("李四");5 System.out.println("名字為:"+test.getName());6 test.getName();7 } 8 }
顯示結果為:
名字為:李四
java封裝學習