📜  Java中 getter 和 setter 相对于公共字段的优势示例

📅  最后修改于: 2022-05-13 01:54:23.942000             🧑  作者: Mango

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