gpt4 book ai didi

java - 在类中使用私有(private)变量或公共(public)方法哪个更好?

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

例子:

private int x = 4;

public TestClass(int x) {
this.x = x;
}

public TestClass(int x) {
setX(x);
}

public void setX(int x) {
this.x = x;
}

第一个构造函数更好还是第二个?我问这个是因为当我将我的类封装在 IntelliJ IDEA 中时,如果我之前使用过 this.x = x ,它会将其更改为 setX(int newX) ;

最佳答案

在大多数情况下,这都是个人喜好。如果它的值不依赖于其他变量,我会使用第一个构造函数。但是,setter 方法允许在修改变量值之前满足某些条件。例如:

private int x;

public TestClass(int x) {
setX(x);
}

public void setX(int x) {
// Some random condition depending on other variables.
if (System.currentTimeMillis() & 1 == 0) {
this.x = 5;
} else {
this.x = x;
}
}

如果有许多条件无法用三元语句轻松表示,则使用 setter 方法是有意义的。

如果类是抽象的,那么扩展它的具体类可能会覆盖 setter 方法,从而修改变量的值。如果您计划使用自封装并且不希望任何子类覆盖 setter 方法,只需将 final 关键字添加到方法声明中即可。

关于java - 在类中使用私有(private)变量或公共(public)方法哪个更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43668456/

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