1. 程式人生 > 其它 >假期java自學-----類8(類特性)

假期java自學-----類8(類特性)

類的三大特性包括:封裝、繼承、多型
一、封裝
**1.含義:**封裝就是把同一類事物的共性(包括屬性和方法)歸到同一類中,方便使用。
封裝和繼承幾乎都是為多型而準備的。
封裝也稱資訊隱藏,是指利用抽象資料型別把資料和基於資料的操作封裝起來,使其成為一個不可分割的整體,資料隱藏在抽象資料內部,儘可能的隱藏資料細節,只保留一些介面使其與外界發生聯絡。也就是說使用者無需知道內部的資料和方法的具體實現細節,只需根據留在外部的介面進行操作就行。
2.封裝的實現
2.1需要修改屬性的訪問控制符(修改為private);
2.2建立getter/setter方法(用於屬性的讀寫);
2.3在getter/setter方法中加入屬性控制語句(用於判斷屬性值的合法性);
屬性(成員變數)隨物件存放在堆中
直接通過物件呼叫屬性,修改屬性值是不安全的,那怎麼辦?
為了實現良好的封裝,我們通常將類的成員變數宣告為private,為了能夠在外部使用,可以通過定義public方法來對這個變數來訪問。對一個變數的操作,一般有讀取和賦值2個操作,我們分別定義2個方法來實現這2個操作,一個是getXX(XX表示要訪問的成員變數的名字)用來讀取這個成員變數,另一個是setXX()用來對這個變數賦值
Boolean的get方法預設名為isXXX()
把成員變數設定為私有的,只能在本類中使用,所以屬性也叫全域性變數。
3.封裝的優點
3.1將變化隔離
3.2便於使用
3.3提高重用性
3.4提高安全性
4.封裝的缺點:
將變數等使用private修飾,或者封裝進方法內,使其不能直接被訪問,增加了訪問步驟與難度!
例項:
publicclassPeople{

/*

*對屬性的封裝一個人的姓名、年齡

*/

privateStringname;

privateintage;
/*

*setter()、getter()是該物件對外開發的介面

*/

publicStringgetName(){

returnname;

}

publicvoidsetName(Stringname){

this.name=name;

}

publicintgetAge(){

returnage;

}

publicvoidsetAge(intage){

this.age=age;

}

}