java面向物件-類與物件、封裝
阿新 • • 發佈:2021-07-26
物件在需求和程式碼中的體現:
現實生活中的事物都有特點(屬性)和功能,那麼這個事物就可以描述為一個物件,它的特點和屬性就是物件的變數,它的功能就是物件的方法,可以編寫n個方法。
public class 類名 { //n個屬性 資料型別 變數名: 資料型別 變數名: 資料型別 變數名: //n個方法 修飾符 返回值型別 方法名(引數){ 執行語句; } }
事物的成員屬性在程式碼中的體現就是成員變數。
成員功能在程式碼中的體現就是成員方法。
建立物件的格式: 類名 物件名 = new 類名();
類與物件的區別:
類是對事物的抽象描述,物件用於表示該事物的個體,類用於描述多個物件的共同特徵,他是物件的模板,物件用於描述個體,是類的例項。
區域性變數和成員變數的區別:
一:定義的位置不同
定義在類中的是成員變數
定義在方法或者{}中的是區域性變數
二:在記憶體中的位置不同
成員變數儲存在堆記憶體的物件中
區域性變數儲存在棧記憶體的方法中
三:生命週期不同
成員變數隨著物件的出現而出現在堆中,隨著物件消失而消失
區域性變數隨著方法執行出現在棧中,隨著方法彈棧而消失
四:初始化不同
成員變數在堆記憶體中,有預設的初始化值
區域性變數沒有預設的初始化值,必須手動賦值才能使用
面向物件共有三個特徵:封裝、繼承、多型
封裝表現:
方法和類都是封裝體。
封裝的優點:
提高了程式碼的複用性
隱藏了實現細節,對外還提供了可以訪問的方式,便於呼叫者使用
提高了安全性。
Private私有
當我們在一個類中描述事物的時候,事物的屬性可以被任意訪問和使用,明顯不符合需求,這時候可以新增private修飾詞,這樣就無法直接訪問。
當屬性前新增privatte修飾詞後被私有的成員屬性無法直接賦值,只能通過成員屬性的賦值Set和取值Get方法。
類中不需要對外提供的內容都私有化,包括屬性和方法。