一篇文章帶你入門(mén)Java封裝
什么是封裝
Java中的封裝是將數(shù)據(jù)(變量)和作用于數(shù)據(jù)(方法)的代碼作為一個(gè)單元包裝在一起的機(jī)制。 在封裝中,類(lèi)的變量將從其他類(lèi)隱藏,并且只能通過(guò)當(dāng)前類(lèi)的方法訪(fǎng)問(wèn)。
如何實(shí)現(xiàn)封裝
可以分為兩步:
第一步:將類(lèi)的變量聲明為private。
第二步:提供公共set和get方法來(lái)修改和獲取變量的值。
代碼展示
public class User { private String name; private int age; private int id; private String address; public int getAge(){ return age; } public String getName(){ return name; } public int getId(){ return id; } public String getAddress(){ return address; } public void setName(String Newname){ name = Newname; } public void setAge(int Newage){ age = Newage; } public void setAddress(String Newaddress){ address= Newaddress; } } class Mainclass{ public static void main(String[] args) { User user = new User(); user.setAge(18); user.setName("Kevin"); user.setAddress("江蘇"); System.out.println("Name:"+user.getName()+",Age:"+user.getAge()); } }
上面就是一個(gè)寫(xiě)好的封裝啦 但是有很多用戶(hù),很多屬性,寫(xiě)起來(lái)就很麻煩,下面提供一種一行代碼搞定的方法
構(gòu)造方法
public User{ // 方法名與類(lèi)名同名 沒(méi)有返回值結(jié)構(gòu) 其他與普通方法無(wú)異 }
注意點(diǎn):
對(duì)于每個(gè)類(lèi)而言,都默認(rèn)具有一個(gè)隱式的空參數(shù)構(gòu)造方法 如果顯式寫(xiě)了任意一個(gè)構(gòu)造方法,空參數(shù)構(gòu)造方法都會(huì)被覆蓋
代碼展示
public class User { private String name; private int age; private int id; private String address; public User(String name, int age, int id, String address) { this.name = name; this.age = age; this.id = id; this.address = address; } public int getAge(){ return age; } public String getName(){ return name; } public int getId(){ return id; } public String getAddress(){ return address; } public void setName(String Newname){ name = Newname; } public void setAge(int Newage){ age = Newage; } public void setAddress(String Newaddress){ address= Newaddress; } public void setId(int Newid){ id = Newid;} } class Mainclass{ public static void main(String[] args) { User user = new User("kevin",18,001,"江蘇");//一行代碼就能賦值啦 System.out.println("Name:"+user.getName()+",Age:"+user.getAge()); } }
總結(jié)
封裝的優(yōu)點(diǎn)
- 良好的封裝能夠減少耦合。
- 類(lèi)內(nèi)部的結(jié)構(gòu)可以自由修改。
- 可以對(duì)成員變量進(jìn)行更精確的控制。
- 隱藏信息,實(shí)現(xiàn)細(xì)節(jié)。
本篇文章就到這里了,希望能給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
SpringBoot文件訪(fǎng)問(wèn)映射如何實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot文件訪(fǎng)問(wèn)映射如何實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02IDEA下SpringBoot指定配置文件啟動(dòng)項(xiàng)目的全過(guò)程
我們?cè)谑褂胹pringboot項(xiàng)目開(kāi)發(fā)的時(shí)候,每次切換環(huán)境跑項(xiàng)目的時(shí)候,都得修改配置文件的數(shù)據(jù)庫(kù)地址,這樣來(lái)回修改感覺(jué)很麻煩,這篇文章主要給大家介紹了關(guān)于IDEA下SpringBoot指定配置文件啟動(dòng)項(xiàng)目的相關(guān)資料,需要的朋友可以參考下2023-06-06Java項(xiàng)目部署的完整流程(超詳細(xì)!)
我相信很多Java新手都會(huì)遇到這樣一個(gè)問(wèn)題,跟著教材敲代碼,很容易,但是讓他完整的實(shí)現(xiàn)一個(gè)應(yīng)用項(xiàng)目卻不會(huì),下面這篇文章主要給大家介紹了關(guān)于Java項(xiàng)目部署的完整流程,需要的朋友可以參考下2022-07-07Java中的NoSuchMethodException異常原因以及解決方案詳解
這篇文章主要介紹了Java中的NoSuchMethodException異常原因以及解決方案詳解,NoSuchMethodException是Java反射機(jī)制中的異常,在嘗試通過(guò)反射獲取方法時(shí),找不到指定的方法,通常發(fā)生在調(diào)用?Class?對(duì)象的方法時(shí),當(dāng)方法名或方法參數(shù)不匹配時(shí)拋出該異常,需要的朋友可以參考下2024-02-02java使用CompletableFuture分批處理任務(wù)實(shí)現(xiàn)
本文主要介紹了java使用CompletableFuture分批處理任務(wù)實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07