Java超詳細介紹封裝與訪問控制修符
概念:我們在寫入一個類的時候,為瞭保護裡邊的屬性不被隨意的調用這是我們可以使用特殊的修飾符進行相應的保護,而這樣的話我們似乎隻能在該類中調用使用瞭,出現某些特殊情況時就會無法發調用,雖然挺高瞭安全性但也降低瞭靈活性,這個時候我們的包裝類就出現瞭,我們通過對某個方法的進行特殊方法的包裝來對其進行相應的調用與賦值。就相當於銀行為瞭保護財產會選擇將金錢放進保險櫃中來確保其的安全,但是當我們要取錢時,銀行就要拿鑰匙打開保險櫃。修飾符相當於銀行的保險櫃,封裝相當於保險櫃的鑰匙。
訪問修飾符如下:
1) public 公共控制修飾符
2) protected 保護訪問控制修飾符
3) default 缺省默認控制修飾符
4) private 私有訪問控制符
它們的訪問權限如下圖:
包裝的特點:
1)便於正確使用系統,防止錯誤修改屬性
2)有助於系統之間的松耦合,提高系獨立性
3)提高軟件的重用性
4)降低瞭構建大型系統的風險
包裝的快捷鍵:
大部分的編譯軟件都有相應的包裝快捷鍵就例如我用的開發工具idea就像相對應的get()set()有參無參構造方法如下圖
我們右鍵單擊後會出現相應選項我們點擊Generate,也有相應的快捷鍵Alt+Insert直接打開Generate
進入Generate後我們選擇Constructor
該選項是選擇無參和有參構造的,我們全選點擊OK即可將所有的私有屬性進行有參構造,點擊
Select None則是進行無參構造
再次進入Generate後我們選擇Getter and Setter
該選項是構造方法引入和修改私有屬性,Getter()表示獲屬性,Setter()表示修改屬性,進入後我們全選點擊OK,就可以進行構造。
測試類代碼如下:
package com.ytzl.total; /*封裝類*/ public class test { public static void main(String[] args) { //實例化一個對象 encapsulation encapsulation = new encapsulation(); System.out.println("通過封裝方法獲取封裝類中的私有屬性==>"+encapsulation.getA()); System.out.println("通過封裝方法獲取封裝類中的私有屬性==>"+encapsulation.getB()); //我們也可以通過相應的構造方法來改變風種類中的私有屬性 encapsulation.setA(20); encapsulation.setB("被是同相應的構造方法進行改變"); System.out.println("通過封裝方法獲取封裝類中的私有屬性==>"+encapsulation.getA()); System.out.println("通過封裝方法獲取封裝類中的私有屬性==>"+encapsulation.getB()); //我們也可以通過封裝方法來改變封裝類中的私有屬性 encapsulation encapsulation1 = new encapsulation(10,"被調用方法改變後"); System.out.println("通過調用方法類來改變封裝類中的私有屬性後==>"+encapsulation1.getA()); System.out.println("通過調用方法類來改變封裝類中的私有屬性後==>"+encapsulation1.getB()); } }
實體類代碼如下:
package com.ytzl.total; public class encapsulation { private int a=8; private String b="私有屬性"; public encapsulation() { } //如果需要在調用方法中改變私有屬性需要調用該有參方法 public encapsulation(int a, String b) { this.a = a; this.b = b; } public int getA() { return a; } public void setA(int a) { this.a = a; } public String getB() { return b; } public void setB(String b) { this.b = b; } }
運行結果如下:
到此這篇關於Java超詳細介紹封裝與訪問控制修符的文章就介紹到這瞭,更多相關Java封裝內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!