何时在java中使用get/set方法

2022-09-01 17:58:44

我想知道何时在我的类中使用get和set方法(getName,setName),什么时候使用简单classVariable.name = ""а = classVariable.getName()

下面是使用 set 和 get 方法的类的示例

public class ClassExampe {

    String name;
    String course;

    public String getName ( )
    {
        return name;
    }

    public void setName (String studentName)
    {
        name = studentName;           
    }

    public String getCourse ( )
    {
        return course;
    }

    public void setCourse (String studentCourse)
    {
        course = studentCourse;
    }
}

谢谢


答案 1

使用 Getters/Setters 与使用字段

根据经验:

直接使用来自同一类的变量(实际上来自同一.java文件,所以内部类也可以),使用其他类中的 Getters /Setters。


答案 2

简单的规则是:永远不要使用直接访问(当然,除非从类内部引用它们)。

  • 无法代理字段访问
  • 您可能希望有一些事件通知
  • 您可能希望防范竞争条件
  • 表达式语言支持 setter 和 getter
  • 从理论上讲,这打破了封装。(如果我们是迂腐的,那么所有字段的setter和getter也会破坏封装)
  • 您可能希望在 setter 或 getter 中执行一些额外的逻辑,但这很少是可取的,因为消费者希望这遵循惯例 - 即成为一个简单的 getter/setter。
  • 您可以仅指定一个 setter 或仅指定一个 getter,从而实现只读或只写访问。

即使这种情况没有发生,您也需要其中任何一个,也不太可能。如果您从现场访问开始,将更难改变。


推荐