为什么在java中使用setter而不是构造函数?

时间:2017-12-04 09:36:01

标签: java constructor getter-setter setter

Setters只为java中的构造函数提供单个函数,即为实例变量赋值。我们为什么需要它们?你能用一个例子解释一下吗? 我理解我提出的问题很简陋,我很抱歉。我是编程新手,一旦发现stackoverflow,我就问这个问题,这个问题一直困扰着我。我尝试删除,但这是不允许的。

1 个答案:

答案 0 :(得分:1)

因为您可以稍后为同一实例更改值。例如,让我们假设一个人具有以下类别:

public class Person {
  String firstName;
  String lastName;

  public Person(String firstName, String lastName) {
    this.firstName = firstName;
    this.lastName = lastName;
  }

  public void setLastName(String lastName) {
    this.lastName = lastName;
  }
}

想象一下,有一位名叫"琳达克罗夫特" 的女子现在单身。

Person linda = new Person("Linda", "Croft");

然后,几年后,他嫁给了一个名叫" John Wick" 的男人。那么"琳达"结婚后想把她的名字改成丈夫的名字。如果我们没有安装者,我们需要创建另一个" Linda",这显然是另一个人:

Person anotherLinda = new Person("Linda", "Wick");

使用setter,我们可以用:

更新她的名字
linda.setLastName("Wick");

现在Linda的名字是" Linda Wick"