之前我们介绍过,引用类的成员变量为car.color,但事实上 Java 程序员并不会这么干。原因在于,类中的属性必须私有化进行保护,从而防止任意实例都能够直接修改成员变量的值。

    一般情况下,采取的做法是将成员变量访问权限设置为private,并通过settergetter方法来设置和获取值。

    1. public class Girl {
    2. private int age;
    3. public void setAge(int age) {
    4. this.age = Math.min(age, 18);
    5. }
    6. public int getAge() {
    7. return this.age;
    8. }
    9. public static void main(String[] args) {
    10. Girl girl = new Girl();
    11. girl.setAge(17);
    12. System.out.println(girl.getAge());
    13. }
    14. }

    总结一下settergetter方法的优点:

    • getter方法可以返回结构化的数据
    • setter方法可以限制和检验传入的参数,隐藏对象内部的数据结构
    • 属性不具备多态