我们都熟悉Java的“getter & setter”方法。它们是创建数据封装的好方法;确保只有通过这些特定方法才能访问类代码之外的任何私有字段。然后,这些方法可包括检查,开销,同步等get和set方法的替代样式
public class Person(){
private String name;
private int birthYear;
// traditional getter/setter syntax
public String getName(){ return name; }
public int getBirthYear(){ return birthYear; }
public void setName(String name){ this.name = name; }
public void setBirthYear(int birthYear){ this.birthYear = birthYear; }
// proposed overloading getter/setter syntax
public String name(){ return name; }
public int birthYear(){ return birthYear; }
public void name(String name){ this.name = name; }
public void birthYear(int birthYear){ this.birthYear = birthYear; }
}
我的问题是,如果有什么错误使用方法重载有上面的getter/setter方法“建议”的语法?对我来说,似乎更具可读性和直观:
Person p = new Person();
p.name("Bob");
System.out.println(p.name());
最大的缺点我能想到的是,每个人都这样用了get/set语法,这会让事情的可读性。无论如何,这不是一个大问题,我不介意使用getters/setters,但我只是想到了这种替代方式,看起来更漂亮,想知道别人怎么看?
谢谢
虽然我了解Java Bean和自我反省,但我还没有真正应用它们。尽管如此,我现在仍然认为,如果你已经提出了一些重要的依赖关系(我相信还有更多),偏离get/set约定是一个坏主意。谢谢回复。 – javauser