07 物件導向之封裝和構造器

2021-08-21 00:10:28 字數 1688 閱讀 7610

一、封裝的概述

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 私有的...