Java中的setter和getter是基本的面向對象編程特性之一,它們被用來封裝和保護對象的私有實例變量。setter和getter提供了一種間接訪問對象屬性的方法,以實現更好的代碼封裝和可維護性。
Setter和getter方法的命名規則很簡單:setter方法用于設置對象屬性,以set開頭加上屬性名,在方法中對屬性進行賦值;getter方法用于獲取對象屬性,以get開頭加上屬性名,在方法中返回屬性值。
public class Person { private int age; public void setAge(int age) { this.age = age; } public int getAge() { return age; } }
可以看到,setter和getter方法是為私有實例變量提供了公共的接口,使得外部類可以通過調用這些方法來訪問這些私有實例變量,而不是直接通過對象訪問,從而保護了對象的數據。
除了基本的setter和getter方法,還有一些其他的變種方法,例如:is開頭的方法,表示用于返回boolean類型的變量值。例如,對于boolean類型的變量isMarried
,getter方法應為isMarried()
而不是getMarried()
。
需要注意的是,setter和getter方法不應該直接改變對象的狀態,而應該僅僅提供訪問對象狀態的接口,更改狀態的邏輯應該在方法之外處理。與此類似,getter方法也應該是無副作用的,即不應影響對象狀態。