使用 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
。这允许程序员创建可访问且可修改但他们希望的变量,从而防止客户端类不必要地编辑变量。