gpt4 book ai didi

java - 使用 setter 方法或直接引用构造函数中的变量?

转载 作者:搜寻专家 更新时间:2023-11-01 01:07:56 24 4
gpt4 key购买 nike

这两种方法都有效,但是哪种方法才是正确的呢?

方法一:

public class Object {
private String name;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public Object(String name){
this.name = name;
}
}

方法二:

public class Object {
private String name;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

//Changed this.name = name to setName(name)
public Object(String name){
setName(name);
}
}

我四处搜索但找不到与此相关的确切问题。如果有,请随意发布链接,我会删除问题

最佳答案

我的第一个想法是在构造函数中使用 setter。因此,如果您想更改名称的存储方式,或者如果您想在设置名称时添加任何其他行为,您只需更改一次即可。

但再仔细考虑一下,我认为如果类不是final 并且方法不是private,则直接访问变量会更好。否则,有人可能会扩展您的方法,重写该方法,导致您的构造函数以不可预知的行为调用他们的方法。

经验法则: 如果类不是最终类,您应该只在构造函数中调用私有(private)方法。

关于java - 使用 setter 方法或直接引用构造函数中的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25316411/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com