Java中 getter 和 setter 相对于公共字段的优势示例
提供 getter 和 setter 方法来访问Java的任何类字段,乍一看似乎毫无意义和意义,因为您可以将字段设为公开,并且它可以在任何地方的Java程序中使用。实际上,许多程序员在早期都是这样做的,但是一旦您开始考虑企业应用程序或生产代码,您就会开始看到它会带来多少维护麻烦。
根据 SDLC 流程,由于软件在维护上花费的时间多于开发,因此将易于维护作为开发目标之一是值得的。 Java编码最佳实践之一就是简单地使用Java的 getter 和 setter 方法。
以下是 getter 和 setter 相对于公共字段的一些优势
1. getter 和 setter 方法让您可以集中控制某个字段如何初始化并提供给客户端,这使得验证和调试更加容易。要查看哪个线程正在访问以及哪些值正在输出,您可以轻松放置断点或打印语句。
2. 通过包含 getter 和 setter 并遵循Java bean 命名约定将字段设为私有,您可以使用许多开源库和模块(例如显示标签)访问该类。它结合使用反射和Java bean 命名约定来动态加载和访问字段。
3. 你给子类一个机会,用 getter 和 setter 覆盖这个方法,并返回在子类的上下文中更有意义的东西。
4. 通过使用替代表示来公开属性来隐藏属性的内部表示。
5. 允许继承者通过覆盖 getter/setter 方法来更改属性行为和公开方式的语义。
Java
class Person {
// private = restricted access
private String name;
// Getter
public String getName() { return name; }
// Setter
public void setName(String newName)
{
this.name = newName;
}
}
class Main {
public static void main(String[] args)
{
Person person = new Person();
// Set the value of the name variable to "kapil"
person.setName("kapil");
System.out.println(person.getName());
}
}
输出
kapil