java-更改已实例化的实例变量的值的正确方法是什么?
作者:互联网
如果我有一个具有私有可见性的实例变量,我应该使用setter来更改其值,还是直接更改该值?
此示例中的实例变量将仅在该类中进行更改,因此设置器将是私有的.我认为使用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只会成为setter,那么我就不会拥有它.如果您想暗示该方法有一天可以做更多的事情,则可以考虑拥有一天,但对我而言,YAGNI是最好的方法.
“Always implement things when you actually need them, never when you just foresee that you need them.”
标签:instance-variables,java 来源: https://codeday.me/bug/20191101/1983025.html