Java OOP封裝繼承

2021-09-25 04:18:12 字數 2568 閱讀 3767

開發中少用繼承多用組合:

1、為什麼要有物件導向

可以用類組織一批不同型別的資料

現實世界的物件–>計算機中的類–>計算機記憶體中的物件

2、實現物件導向的手段和途徑-類

類:是一種模型,是資料結構,也是資料型別,可以在記憶體中例項化若干物件

3、類和物件在記憶體中是怎麼儲存的

4、保證陣列在棧區中儲存室正確且安全的

屬性資料是私有的,方法是公有的,用setter和構造方法給物件存資料,用getter取資料

把人解決問題的思維過程轉換成程式能理解的過程

封裝實現了模組化和資訊隱藏,使得在物件外部不能隨意訪問物件的屬性和方法,提高了程式的可維護性和安全性

乙個類可以建立多個物件,提高了重用性

能夠把現實世界的物或事轉到計算機中

物件:用來描述客觀事物的乙個實體,由一組屬性和方法構成

屬性是物件具有的某些特徵

工廠方法:

public class personal else if("sale".equals(type))else if("manager".equals(type))else if("intern".equals(type))

return ie;

}}

工廠方法測試類:

public static void main(string args)
builder方法類:

public class person 

public newbuilder setid(string id)

public newbuilder(string name, string gender)

public person build()

} private person(newbuilder builder)

}

builder方法測試類:

public static void main(string args)
類是乙個抽象的概念,是物件的模板

物件是類的例項化,是可以觸控的實體

一、類中只有私有屬性,和共有的getter and setter,或構造方法,這種類適合用來儲存資料

二、類中只有方法,沒有屬性,這種類適合做功能,方法需要的資料,可以通過方法的引數傳遞進入方法。

jvm把記憶體分為三塊。方法區,堆區,棧區

方法區:放累的定義,靜態的,常量池等等,由jvm控制管理

堆區:放的是物件申請的空間,總之是new出來的,儲存的是物件的資料,陣列的資料,可以通過程式進行操作,堆中的物件空間儲存的是屬性資料,沒有方法

棧區:放的是八種基本資料型別的資料,物件在堆中的位址,陣列在堆中的位址

資料如何儲存:

定義類中的屬性為私有資料,通過公有方法進行呼叫。

資料的安全性問題:

在公有方法中寫邏輯限制,來保證私有資料的正確性和安全性。

1、this. 訪問當前物件的屬性或方法

2、this(引數列表); 呼叫本類的其他構造方法

類中的屬性資料,作用域整個類,

成員變數會給預設初值,具體的值根據資料型別決定

類中的方法中定義的變數就是區域性變數,作用域用宣告變數開始,到第乙個右大括號結束

使用區域性變數必須給初值,如果不使用就不用給

區域性變數不能用類成員變數修飾符(public 、private、protected)

形參實在方法定義的時候宣告

實參是在方法呼叫時填寫,實參的型別、數量、順序都要與形參一致

過載:在同乙個類內,有相同的方法的名稱,引數的個數和型別不相同,跟返回值無關

重寫:跨類且繼承,子類把長輩類的方法體覆蓋

將類的某些資訊隱藏在類內部,不允許外部程式直接訪問,而是通過該類提供的方法來實現對隱藏資訊的操作和訪問

繼承必須以封裝為基礎,實現繼承就是為了**的重用,缺點是類之間的關係變複雜。

equals 和 == 的區別:

== :是乙個判斷相等的運算子

兩邊如果是基本資料型別,判斷的是基本資料型別的值是否相等

兩邊如果是某個類型別的物件,判斷的是兩個物件是否是同一位址(位址相同,內容一定相同)

equals方法:不能判斷基本資料型別的資料,只能判斷物件是否相等,如果沒有重寫equals方法,那麼equals方法判斷的是位址(object的方法)

public boolean equals(object obj)
如果某個類重寫了equals方法,那麼就看equals方法中實現的判斷是什麼

方式一:在類中組合屬性

public class xx

}

方式二:在類的方法中組合資料
public class yy

}

什麼時候用繼承:

什麼時候用組合:

python封裝繼承 python繼承 封裝

python繼承 封裝 1 為什麼要封裝 封裝資料的主要原因是 保護隱私 封裝方法的主要原因是 隔離複雜度 2 封裝分為兩個層面 第乙個層面的封裝 什麼都不用做 建立類和物件會分別建立二者的命名空間,我們只能用類名.或者obj.的方式去訪問裡面的名字,這本身就是一種封裝 r1.nickname 草叢...

封裝,繼承,多型

一 1 封裝 該隱藏隱藏,該公開的公開 屬性隱藏,同時提供get set方法 有些方法應該隱藏 方法宣告公開,實現隱藏。實現的改變對架構的影響最小 2 繼承 一般 特殊 單繼承 乙個類最多只能有乙個直接父類。類之間可以形成樹狀關係 根據訪問許可權,子類如果可以訪問父類的屬性和方法,就能繼承 priv...

繼承 封裝 多型

一 封裝 封裝是實現物件導向程式設計的第一步,封裝就是將資料或函式等集合在乙個個的單元中 我們稱之為類 被封裝的物件通常被稱為抽象資料型別。封裝的意義 封裝的意義在於保護或者防止 資料 被我們無意中破壞。在物件導向程式設計中資料被看作是乙個中心的元素並且和使用它的函式結合的很密切,從而保護它不被其它...