java語(yǔ)言中封裝類(lèi)代碼示例
在面向?qū)ο蟪绦蛟O(shè)計(jì)方法中,封裝(Encapsulation)是指一種將抽象性函式接口的實(shí)現(xiàn)細(xì)節(jié)部分包裝‘隱藏起來(lái)的方法。數(shù)據(jù)被保護(hù)在內(nèi)部,隱藏內(nèi)部實(shí)現(xiàn)細(xì)節(jié),對(duì)外提供接口與外部交互。
使用封裝的步驟
將類(lèi)的所有屬性使用關(guān)鍵字private去修飾,把它們變成私有的,不允許外部類(lèi)直接訪問(wèn)
生成或者提供公共的setter/getter方法去操作這些被隱藏起來(lái)的屬性
在類(lèi)自己的 setter/getter方法中加入邏輯控制,以確保數(shù)據(jù)訪問(wèn)的有效性和安全性實(shí)例
讓我們來(lái)看一個(gè)java封裝類(lèi)的例子:
/* 文件名: EncapTest.java */
public class EncapTest{
private String name;
private String idNum;
private int age;
public int getAge(){
return age;
}
public String getName(){
return name;
}
public String getIdNum(){
return idNum;
}
public void setAge( int newAge){
age = newAge;
}
public void setName(String newName){
name = newName;
}
public void setIdNum( String newId){
idNum = newId;
}
}
以上實(shí)例中public方法是外部類(lèi)訪問(wèn)該類(lèi)成員變量的入口。
通常情況下,這些方法被稱(chēng)為getter和setter方法。
因此,任何要訪問(wèn)類(lèi)中私有成員變量的類(lèi)都要通過(guò)這些getter和setter方法。
通過(guò)如下的例子說(shuō)明EncapTest類(lèi)的變量怎樣被訪問(wèn):
/* F文件名 : RunEncap.java */
public class RunEncap{
public static void main(String args[]){
EncapTest encap = new EncapTest();
encap.setName("James");
encap.setAge(20);
encap.setIdNum("12343ms");
System.out.print("Name : " + encap.getName()+
" Age : "+ encap.getAge());
}
}
以上代碼編譯運(yùn)行結(jié)果如下:
Name : James Age : 20
使用封裝的好處
1、良好的封裝能夠減少耦合
2、類(lèi)內(nèi)部的結(jié)構(gòu)可以自由修改。
3、可以對(duì)成員進(jìn)行更精確的控制。
4、隱藏信息,實(shí)現(xiàn)細(xì)節(jié)
總結(jié)
以上就是本文關(guān)于java語(yǔ)言中封裝類(lèi)代碼示例的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專(zhuān)題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
相關(guān)文章
Elasticsearch寫(xiě)入瓶頸導(dǎo)致skywalking大盤(pán)空白
這篇文章主要為大家介紹了Elasticsearch寫(xiě)入瓶頸導(dǎo)致skywalking大盤(pán)空白的解決方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-02-02
springBoot詳細(xì)講解使用mybaties案例
MyBatis本是apache的一個(gè)開(kāi)源項(xiàng)目iBatis,2010年這個(gè)項(xiàng)目由apache software foundation遷移到了google code,并且改名為MyBatis。2013年11月遷移到Github。iBATIS一詞來(lái)源于“internet”和“abatis”的組合,是一個(gè)基于Java的持久層框架2022-05-05
全解析Spring Cloud之負(fù)載均衡之LoadBalance
這篇文章主要介紹了全解析Spring Cloud之負(fù)載均衡之LoadBalance的相關(guān)資料,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2025-05-05
淺談MyBatis循環(huán)Map(高級(jí)用法)
這篇文章主要介紹了淺談MyBatis循環(huán)Map(高級(jí)用法),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
java使用xfire搭建webservice服務(wù)的過(guò)程詳解
這篇文章主要介紹了java使用xfire搭建webservice服務(wù)的過(guò)程。使用xfire搭建webService的服務(wù),可以在瀏覽器訪問(wèn)。對(duì)此感興趣的可以了解一下2020-07-07
Mybatis執(zhí)行Update返回行數(shù)為負(fù)數(shù)的問(wèn)題
這篇文章主要介紹了Mybatis執(zhí)行Update返回行數(shù)為負(fù)數(shù)的問(wèn)題,具有很好的參考價(jià)值,希望大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12

