一篇文章帶你深入了解Java封裝
如何實現(xiàn)封裝
可以分為兩步:
第一步:將類的變量聲明為private。
第二步:提供公共set和get方法來修改和獲取變量的值。
代碼展示
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());
}
}
上面就是一個寫好的封裝啦 但是有很多用戶,很多屬性,寫起來就很麻煩,下面提供一種一行代碼搞定的方法
構造方法
public User{
// 方法名與類名同名 沒有返回值結構 其他與普通方法無異
}
注意點:
對于每個類而言,都默認具有一個隱式的空參數(shù)構造方法 如果顯式寫了任意一個構造方法,空參數(shù)構造方法都會被覆蓋
代碼展示
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());
}
}
總結
封裝的優(yōu)點
- 良好的封裝能夠減少耦合。
- 類內(nèi)部的結構可以自由修改。
- 可以對成員變量進行更精確的控制。
- 隱藏信息,實現(xiàn)細節(jié)。
本篇文章就到這里了,希望能給你帶來幫助,也希望您關注腳本之家的更多內(nèi)容!
相關文章
SpringBoot AOP控制Redis自動緩存和更新的示例
今天小編就為大家分享一篇關于SpringBoot AOP控制Redis自動緩存和更新的示例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-01-01
在?Spring?Boot?中使用?Quartz?調(diào)度作業(yè)的示例詳解
這篇文章主要介紹了在?Spring?Boot?中使用?Quartz?調(diào)度作業(yè)的示例詳解,在本文中,我們將看看如何使用Quartz框架來調(diào)度任務,Quartz支持在特定時間運行作業(yè)、重復作業(yè)執(zhí)行、將作業(yè)存儲在數(shù)據(jù)庫中以及Spring集成,需要的朋友可以參考下2022-07-07
如何為Spring Cloud Gateway加上全局過濾器
這篇文章主要介紹了如何為Spring Cloud Gateway加上全局過濾器,幫助大家更好得理解和學習使用Gateway,感興趣的朋友可以了解下2021-03-03
mybatis使用collection嵌套查詢的實現(xiàn)
本文主要介紹了mybatis使用collection嵌套查詢的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-05-05
springboot集成opencv實現(xiàn)人臉識別功能的詳細步驟
大家都知道OpenCV是一個基于BSD許可(開源)發(fā)行的跨平臺計算機視覺和機器學習軟件庫,可以運行在Linux、Windows、Android和Mac OS操作系統(tǒng)上今天通過本文給大家分享springboot集成opencv實現(xiàn)人臉識別,感興趣的朋友一起看看吧2021-06-06
Jpa?Specification如何實現(xiàn)and和or同時使用查詢
這篇文章主要介紹了Jpa?Specification如何實現(xiàn)and和or同時使用查詢,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
java多線程通過CompletableFuture組裝異步計算單元
這篇文章主要為大家介紹了java多線程通過CompletableFuture組裝異步計算單元,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-04-04

