Java超詳細介紹封裝與訪問控制修符
概念:我們在寫入一個類的時候,為了保護里邊的屬性不被隨意的調(diào)用這是我們可以使用特殊的修飾符進行相應(yīng)的保護,而這樣的話我們似乎只能在該類中調(diào)用使用了,出現(xiàn)某些特殊情況時就會無法發(fā)調(diào)用,雖然挺高了安全性但也降低了靈活性,這個時候我們的包裝類就出現(xiàn)了,我們通過對某個方法的進行特殊方法的包裝來對其進行相應(yīng)的調(diào)用與賦值。就相當(dāng)于銀行為了保護財產(chǎn)會選擇將金錢放進保險柜中來確保其的安全,但是當(dāng)我們要取錢時,銀行就要拿鑰匙打開保險柜。修飾符相當(dāng)于銀行的保險柜,封裝相當(dāng)于保險柜的鑰匙。
訪問修飾符如下:
1) public 公共控制修飾符
2) protected 保護訪問控制修飾符
3) default 缺省默認控制修飾符
4) private 私有訪問控制符
它們的訪問權(quán)限如下圖:

包裝的特點:
1)便于正確使用系統(tǒng),防止錯誤修改屬性
2)有助于系統(tǒng)之間的松耦合,提高系獨立性
3)提高軟件的重用性
4)降低了構(gòu)建大型系統(tǒng)的風(fēng)險
包裝的快捷鍵:
大部分的編譯軟件都有相應(yīng)的包裝快捷鍵就例如我用的開發(fā)工具idea就像相對應(yīng)的get()set()有參無參構(gòu)造方法如下圖
我們右鍵單擊后會出現(xiàn)相應(yīng)選項我們點擊Generate,也有相應(yīng)的快捷鍵Alt+Insert直接打開Generate

進入Generate后我們選擇Constructor

該選項是選擇無參和有參構(gòu)造的,我們?nèi)x點擊OK即可將所有的私有屬性進行有參構(gòu)造,點擊
Select None則是進行無參構(gòu)造

再次進入Generate后我們選擇Getter and Setter

該選項是構(gòu)造方法引入和修改私有屬性,Getter()表示獲屬性,Setter()表示修改屬性,進入后我們?nèi)x點擊OK,就可以進行構(gòu)造。

測試類代碼如下:
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());
//我們也可以通過相應(yīng)的構(gòu)造方法來改變風(fēng)種類中的私有屬性
encapsulation.setA(20);
encapsulation.setB("被是同相應(yīng)的構(gòu)造方法進行改變");
System.out.println("通過封裝方法獲取封裝類中的私有屬性==>"+encapsulation.getA());
System.out.println("通過封裝方法獲取封裝類中的私有屬性==>"+encapsulation.getB());
//我們也可以通過封裝方法來改變封裝類中的私有屬性
encapsulation encapsulation1 = new encapsulation(10,"被調(diào)用方法改變后");
System.out.println("通過調(diào)用方法類來改變封裝類中的私有屬性后==>"+encapsulation1.getA());
System.out.println("通過調(diào)用方法類來改變封裝類中的私有屬性后==>"+encapsulation1.getB());
}
}實體類代碼如下:
package com.ytzl.total;
public class encapsulation {
private int a=8;
private String b="私有屬性";
public encapsulation() {
}
//如果需要在調(diào)用方法中改變私有屬性需要調(diào)用該有參方法
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;
}
}運行結(jié)果如下:

到此這篇關(guān)于Java超詳細介紹封裝與訪問控制修符的文章就介紹到這了,更多相關(guān)Java封裝內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring中@Scheduled和HttpClient的連環(huán)坑
這篇文章主要給大家介紹了關(guān)于Spring中@Scheduled和HttpClient的連環(huán)坑,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-03-03
簡單談?wù)凷truts動態(tài)表單(DynamicForm)
下面小編就為大家?guī)硪黄唵握務(wù)凷truts動態(tài)表單(DynamicForm)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08
一分鐘入門Java Spring Boot徹底解決SSM配置問題
Spring Boot是由Pivotal團隊提供的全新框架,其設(shè)計目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進行配置,從而使開發(fā)人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力于在蓬勃發(fā)展的快速應(yīng)用開發(fā)領(lǐng)域成為領(lǐng)導(dǎo)者2021-10-10
詳解java爬蟲jsoup解析多空格class數(shù)據(jù)
在本篇內(nèi)容中小編給大家分享了java爬蟲jsoup怎么解析多空格class數(shù)據(jù)的方法和技巧,需要的朋友們跟著學(xué)習(xí)下。2018-12-12
Java如何調(diào)用wsdl的webservice接口
這篇文章主要介紹了Java如何調(diào)用wsdl的webservice接口問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05

