使用 setter 或 getter 實現約束
Setters 和 Getters 允許物件包含可以通過限制訪問和更改的私有變數。例如,
public class Person {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
if(name!=null && name.length()>2)
this.name = name;
}
}
在這個 Person
類中,有一個變數:name
。可以使用 getName()
方法訪問此變數並使用 setName(String)
方法更改,但是,設定名稱要求新名稱的長度大於 2 個字元且不為 null。使用 setter 方法而不是將變數 name
公開允許其他人設定 name
的值具有某些限制。這同樣適用於 getter 方法:
public String getName(){
if(name.length()>16)
return "Name is too large!";
else
return name;
}
在上面修改的 getName()
方法中,只有當 name
的長度小於或等於 16 時才返回 name
。否則,返回 Name is too large
。這允許程式設計師建立可訪問且可修改但他們希望的變數,從而防止客戶端類不必要地編輯變數。