一、封裝的概述
a:封裝概述:是指隱藏物件的屬性和實現細節,僅對外提供公共訪問方式。
b:封裝好處:1.隱藏實現細節,提供公共的訪問方式
2.提高**的復用性
3.提高安全性。
c:封裝原則:1.將不需要對外提供的內容都隱藏起來。
2.把屬性隱藏,提供公共方法對其訪問。
二、關鍵字private
a:private關鍵字特點:
1.是乙個許可權修飾符
2.可以修飾成員變數和成員方法
3.被修飾的成員只能在本類中訪問
b:注意事項
1.private僅僅是封裝的一種體現形式,不能說封裝就是私有
三、關鍵字this
a:this關鍵字特點
1.代表當前物件的引用:this代表其所在函式所屬物件的引用,或者說是this代本類物件的引用說的更明白一點,哪個物件呼叫了this所在的函式,this就代表這個物件。
2.this的用途:解決區域性變數隱藏成員變數的問題。
四、構造方法constructor
a:構造方法概述和作用
#給物件的資料(屬性)進行初始化
b:構造方法格式特點
1.方法名與類名相同(大小也要與類名一致)
2.沒有返回值型別,連void都沒有
3.沒有具體的返回值return
c:構造方法注意事項:
1.任何乙個類都有至少乙個構造方法
2.如果我們沒有給出構造方法,那麼系統將自動提供乙個無參構造方法
3.如果給出構造方法,系統將不再提供預設的無參構造方法
【這個時候,如果我沒問還想要使用無參構造方法,就必須自己給出】
d:關於給成員變數賦值的兩種方式:set***()方法和構造方法
五、關鍵字static
a:特點
1.隨著類的載入而載入
2.優先於物件存在:隨著位元組碼檔案的載入而載入,那時候還沒有物件呢!
3.被類中的所有物件共享
4.可以通過類名呼叫
b:static的注意事項
1.在靜態方法中沒有this關鍵字的(因為this所指的是乙個物件,而靜態在載入到記憶體是還沒有具體的物件)
【靜態是隨著類的載入而載入,this是隨著物件的建立而存在】
【靜態比物件先存在】
2.靜態方法只能訪問靜態的成員變數和靜態的成員屬性
靜態方法:
成員變數:只能訪問靜態變數
成員方法:只能訪問靜態成員方法
非靜態方法:
成員變數:可以是靜態的,也可以是非靜態的
成員方法:可以是靜態的成員方法,也可以是非靜態的
c:靜態變數和成員變數的區別
靜態變數也叫類變數 成員變數也叫物件變數a:所屬不同
靜態變數屬於類,所以也稱為為類變數
成員變數屬於物件,所以也稱為例項變數(物件變數)
b:記憶體中位置不同
靜態變數儲存於方法區的靜態區
成員變數儲存於堆記憶體
c:記憶體出現時間不同
靜態變數隨著類的載入而載入,隨著類的消失而消失
成員變數隨著物件的建立而存在,隨著物件的消失而消失
d:呼叫不同
靜態變數可以通過類名呼叫,也可以通過物件呼叫
成員變數只能通過對 象名呼叫
物件導向之封裝
定義 影藏事物的屬性和實現的細節,僅對外提供公共的訪問方式 封裝的好處 1.隱藏了事物的細節 2.提高了 的復用性 3.提高了安全性 封裝的實現 使用private關鍵字進行修飾,被private修飾的成員只能在本類中使用 setter和getter 封裝需要搭配set和get方法 set 設定器 ...
物件導向之封裝
封裝之如何隱藏屬性 在變數名和方法名之前加雙下劃線 外部就訪問不到 classa x 1def init self,name self.name name def bar self print self.name a.x 外部無法訪問這其實是在類定義的時候,將變數名和函式名進行了變形,我們可以列印類...
物件導向之 封裝
封裝 就是把屬性或者方法裝起來 廣義 把屬性和方法裝起來,外面不能直接呼叫了,要通過類的名字來呼叫 狹義 把屬性和方法藏起來,外面不能呼叫,只能在內部偷偷呼叫 class user def init self,name,passwd self.usr name self.pwd passwd 私有的...