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