java 封裝
什麼是封裝?
封裝就是將屬性私有化,提供公有的方法訪問私有屬性。封裝的好處
1、可以徹底隱藏方法的內部實現,僅僅提供一個呼叫的方法給其他人,讓其他使用這個類的人不需要關心是如何實現的,只要知道該如何呼叫就行。2、隱藏方法的內部實現的好處,可以讓保留呼叫方法不變的同時,隨意修改類的結構,而不影響其他人執行結果。
3、封裝還會分開類的屬性,將類的屬性分成私有屬性和公共屬性。私有屬性僅供類自身呼叫,和公共屬性也僅提供一個供外部呼叫的方法。
如何實現封裝
使用private來對變數或者方法進行修飾,變為私有的,無法訪問。this關鍵字
this是在物件內部指代自身的引用。呼叫成員變數,可以解決成員變數和區域性變數之間發生的任何同名的衝突。如何訪問
修改屬性的可見性來限制對屬性的訪問,併為每個屬性建立一對取值(getter)方法和賦值(setter)方法,用於對這些屬性的訪問。 private String name;
public String getName(){
return;
}
public void setName(String name){
this.name=name;
}
成員變數和區域性變數的區別
1)在類中位置不同成員變數:類中,方法外
區域性變數:方法宣告上,或者再方法定義中
2)在記憶體中的位置不同:
成員變數:堆記憶體
區域性變數:棧記憶體
3)生命週期不同:
成員變數:成員變數是隨著類的載入而載入,隨著類的消失而消失
區域性變數:隨著方法的呼叫而存在,隨著方法呼叫完畢而消失
4)初始化值不同
成員變數:初始化由系統預設初始化,
對於成員變數,可以不給初始化值,由系統給,然後顯示初始化
區域性變數:定義一個區域性變數,必須進行初始化,如果不初始化,無法使用(在使用之前進行初始化)
成員方法
成員方法的分類1)按照返回值劃分
void的形式:沒有具體的返回值
非void形式:有具體返回值
2)按照引數進行劃分
空參
有參
public String show() {
}
//沒有返回值,有引數的情況
public void method(String s) {
System.out.println(s);
}
//沒有返回值,沒有引數的情況
public void function() {
System.out.println("function student...");
}
//有返回值,有引數的情況
public String function2(String s1,String s2) {
return s1+ s2;
}
}
構造方法
構造方法負責物件成員的初始化工作,為例項變數賦予合適的初始值。構造方法的語法規則:方法名與類名相同。沒有返回型別。
使用new關鍵字例項化物件的過程實際上就是呼叫構造方法的過程。或者說例項化一個物件實際上就是去呼叫這個物件的構造方法。
class Student{
public Student() {
System.out.println("................................");
}
}
成員方法與構造方法的區別
作用不同:構造方法用於建立類的例項並對例項的成員變數進行初始化;成員方法實現對類中成員變數的操作,提供某些功能。
呼叫方式不同:
構造方法通過new運算子呼叫,成員方法通過物件呼叫。
書寫規範
1、定義成員變數
2、書寫無參構造方法(系統預設給出,建議自己書寫)
3、書寫有參構造方法(初始化成員變數)
4、書寫setXXX方法與getXXX方法(對成員變數的操作)
相關文章
- Java(三)封裝Java封裝
- Java學習-封裝Java封裝
- Java 封裝 SDK 以及使用Java封裝
- Java封裝(Encapsulation)-詳解Java封裝
- java三大特性-封裝Java封裝
- Chapter10 Java封裝APTJava封裝
- java基礎private/封裝篇Java封裝
- 物件導向之封裝(Java)物件封裝Java
- Java 位元組的常用封裝Java封裝
- Java基礎04 封裝與介面Java封裝
- java自己封裝檔案處理Java封裝
- # 095 01 Android 零基礎入門 02 Java物件導向 02 Java封裝 01 封裝的實現 03 # 088 01 Android 零基礎入門 02 Java物件導向 02 Java封裝 03 封裝總結 01 封裝知識點總結AndroidJava物件封裝
- Java基礎知識篇02——封裝Java封裝
- 【封裝那些事】 缺失封裝封裝
- 封裝封裝
- 【封裝小技巧】is 系列方法的封裝封裝
- 【JavaScript框架封裝】公共框架的封裝JavaScript框架封裝
- Dapper的封裝、二次封裝、官方擴充套件包封裝,以及ADO.NET原生封裝APP封裝套件
- [JAVA] Java物件導向三大特徵:封裝、繼承、多型Java物件特徵封裝繼承多型
- Java學習day09—-封裝和繼承Java封裝繼承
- java物件導向的三大特徵之封裝Java物件特徵封裝
- Java的三大特性:封裝、繼承、多型Java封裝繼承多型
- Java入門教程九(封裝繼承多型)Java封裝繼承多型
- java封裝繼承以及多型(含程式碼)Java封裝繼承多型
- Flutter 封裝:富文字 RichText 極簡封裝Flutter封裝
- 09 #### 封裝封裝
- 封裝OCX封裝
- axios封裝iOS封裝
- 封裝axios封裝iOS
- sqlite封裝SQLite封裝
- 封裝介面封裝
- ajax 封裝封裝
- AVPlayer封裝封裝
- JAVA物件導向基礎--封裝 繼承 多型Java物件封裝繼承多型
- 封裝、許可權修飾符、封裝的案例封裝
- 【封裝小技巧】列表處理函式的封裝封裝函式
- 何為封裝封裝
- 聊天chat封裝封裝