gpt4 book ai didi

java - 更改已实例化实例变量的值的正确方法是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:22:27 24 4
gpt4 key购买 nike

如果我有一个具有私有(private)可见性的实例变量,我应该使用 setter 来更改它的值,还是直接更改值?

这个例子中的实例变量只会在这个类中被改变,因此 setter 是私有(private)的。我认为使用 setter 是正确的方法,因为它本地化了更改的方式/时间,但出于某种原因,它只是让我烦恼!

请参阅下面的代码,这可能有助于更清楚地表达我的问题

public class A {

private int i;

public A() {
i = 5
}

private void doSomeCalculationsA() {
//work done here which results in the value of i being directly changed
i = 7
}

private void doSomeCalculationsB() {
//work done here which results in change value of i being changed via the setter
setI(5)
}

private void setI(int newValue) {
i = newValue;
}

}

最佳答案

大多数时候我倾向于认为越简单越清晰。如果你的 setI 永远只会成为二传手,我不会拥有它。如果你想暗示该方法有一天可以做更多的事情,你可能会考虑拥有一个,但对我来说 YAGNI是最好的方法。

"Always implement things when you actually need them, never when you just foresee that you need them."

关于java - 更改已实例化实例变量的值的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10488929/

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