- 基本格式
java
1.setter
public set(Object sth){
...
}
2.getter
public get(Object sth){
...
}
kotlin
1.var <propertyName>[:<PropertyType>] [=<property_initializer]
[<getter>]
[<setter>]
- 作用
- set:在程序當(dāng)中為了保護(hù)數(shù)據(jù)拢操,變量類型最好都是private 卸亮,可以防止被誤操作蔼水。那么如何修改private變量呢窖贤?這時(shí)可以調(diào)用set函數(shù)來(lái)修改這個(gè)變量的值
- set還可用于對(duì)讀取和設(shè)置來(lái)做出限制孵运,當(dāng)你滿足條件或者擁有權(quán)限時(shí)才可以訪問(wèn)get和set方法來(lái)對(duì)變量進(jìn)行讀取和設(shè)置
- get和set是 兩種常規(guī)的用來(lái)檢索和更新變量值的方法孤个,因此get和set可以減少代碼的重復(fù)性陋率,
例如:想在調(diào)用student類的其他幾個(gè)地方對(duì)學(xué)生的grade屬性進(jìn)行+10操作。若grade是public member逮刨,每個(gè)類中都要對(duì)grade加10呕缭,而如果用setter則只需在Student類中對(duì)grade進(jìn)行加10操作,其他地方只需調(diào)用getGrade方法 - “封裝”修己,Java中引入getter和setter的主要目的在于遵循面向?qū)ο缶幊痰囊淮筇匦浴庋b恢总。
例如:學(xué)生中的name和grade都是學(xué)生本身的屬性,對(duì)其進(jìn)行修改睬愤,賦予邏輯都應(yīng)該在Student類里進(jìn)行片仿,而不該由外界控制 - 減少內(nèi)存占用 ,根據(jù)一個(gè)變量的作用設(shè)置其權(quán)限修飾符(public尤辱,private砂豌,protected)。如果設(shè)為public光督,將在整個(gè)程序運(yùn)行周期存在阳距,設(shè)為private則只會(huì)在調(diào)用的Student類時(shí)存在,因此最好設(shè)為private
- 實(shí)例
-
java
通過(guò)get和set可以讀取student類中的私有屬性并給其賦值
-
kotlin
通過(guò)set方法對(duì)變量值實(shí)現(xiàn)實(shí)時(shí)監(jiān)聽(tīng)结借,并對(duì)特定變量值完成某些操作
-