05 封裝,static,insteadOf關鍵字

2021-09-25 23:27:45 字數 1274 閱讀 8557

什麼是封裝:

在類中,對於不想被類外直接訪問的成員變數,進行私有化,同時對外提供乙個公有的方法訪問私有的成員。

封裝成員變數兩個步驟:

第一步: 新增private 修飾符

第二步: 新增get和set方法

這麼做有什麼好處?最後還是將屬性暴露了出去。

答案是這麼做可以給屬性新增判斷條件,只有滿足條件才可以修改,如age>0 && age<120,構造方法也可以呼叫set方法,使物件在初始化的時候就新增一重判斷。

static關鍵字

static關鍵字只能修飾類成員:修飾成員變數和方法

1.成員變數(1 靜態成員變數(類變數、靜態屬性)

2.非靜態成員變數(例項變數),但是在某些情況下,成員變數特指例項變數。

**塊
**塊分為:區域性**塊、動態**塊、靜態**塊

**動態**塊:**又稱構造**塊或例項**塊,宣告在類體中的**塊,建立物件時自動執行一次,每建立乙個物件就執行一次動態**塊。初始化工作。(了解)

**靜態**塊:**使用static關鍵字修飾的動態**塊,在類載入時自動執行,並只執行一次。(記住)

變數可以先宣告,然後在**塊中初始化

class

a}

當兩個類的關係是繼承關係,且如果將equals方法改寫為如下結構時,由於insteadof可能導致奇怪的錯誤。

@override

public

boolean

equals

(object obj)

return

false

;}

person p =

newperson()

;student s =

newstudent()

;p.equals

(s);

s.equals

(p);

結果為true和false,這是因為student也是person的乙個物件,這是由繼承決定的,這種情況下要使用使用s.getclass() == person.class 來代替 instanceof

3 11 封裝集合

封裝集合 範例 1 include 2 define max student count 2034 class student512 13int getid const 1417 void setid int nid 1821 qstring getname const 2225 void setn...

203 07 05 封裝 繼承 多型

繼承 1 oc是單一繼承 2 封裝 隱藏內部 m檔案 實現 穩定外部 h檔案 介面。屬性封裝了例項變數 方法封裝了具體實現 類封裝了方法和屬性 封裝的好處 使用更加簡單,變數更加安全,可以隱藏內部實現細節,開發速度快 3 私有變數 private,私有方法 在.m中實現,在.h中沒有宣告,私有成員變...

JAVA SE基礎 28 封裝

黑馬程式設計師blog.物件導向三大特徵 1.封裝 2.繼承 3 多型。今天我們先學習第一大特徵,封裝。封裝 是指隱藏物件的屬性和實現細節,僅對外提供公共訪問方式。好處 1.將變化隔離。2.便於使用。3.提高復用性。4.提高安全性。封裝原則 1.將不需要對外提供的內容都隱藏起來。2.把屬性都隱藏,提...