gpt4 book ai didi

Java 静态实例 VS get 方法

转载 作者:行者123 更新时间:2023-12-02 08:56:24 25 4
gpt4 key购买 nike

我一直在思考这些代码片段之间的区别。我知道如果您使用 getInstance (下面的第二个选项),则无法设置实例字段,但是还有其他区别吗?

public class MainClass {
public static MainClass instance;

public static void main(String[] args) {
instance = new MainClass();
}

public void HelloWorld() {
System.out.println("This is a test!");
}
}

VS

public class MainClass {
private static MainClass instance;

public static void main(String[] args) {
instance = new MainClass();
}

public MainClass getInstance() {
return instance;
}

public void HelloWorld() {
System.out.println("This is a test!");
}
}

使用“MainClass.instance.HelloWorld();”有什么区别(第一个)或“MainClass.getInstance().HelloWorld();” (二)

TLDR:哪一个,为什么?有什么区别?

谢谢! :)

最佳答案

在第一个示例中,您已将 instance 声明为 public,使其容易受到意外更改的影响,因此不建议这样做。

在第二个示例中,您已将 instance 声明为 private,使其在类外部不可见,从而确保如果需要,只能通过 更改它>public mutator/setter,您可以在其中按照您希望的方式更改所需的逻辑。

关于Java 静态实例 VS get 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60459721/

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