gpt4 book ai didi

Java - 制作对象时,它们应该放在代码的什么位置

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

我仍在学习,并且注意到编码方面的许多不一致之处。我认为 Java 与 Photoshop 非常相似,因为一个任务可以通过多种不同的方式完成,并且仍然可以完成工作。

我的主要问题之一是关于扫描仪和随机数的问题。

在一个来源中,他们在整个类的范围内都有 Scanner

public class test {
private static Scanner input = new Scanner(System.in);
}

在另一个来源他们是这样的

public class test {
private static Scanner input;

public static void main(String[] args) {
input = new Scanner(System.in);
}
}

这有什么区别?有正确的方法和错误的方法吗?

最佳答案

初始化 Scanner 的两种方式相似,但不完全相同。

第一个始终有效,因为您正在初始化 static创建时的变量。

第二个仅在 test 时有效是启动类,因为public static void main(String[] args)总是在应用程序的启动类中调用。

如果您尝试使用 test 的方法,就会出现问题。来自另一个类的类,像这样:

public class test {
private static Scanner input;

public static void main(String[] args) {
input = new Scanner(System.in);
}

public static void myMethod() {
input.hasNext();
}
}

在一个单独的文件中

public class AnotherTest {
public static void main(String[] args) {
test.myMethod();
}
}

只要你运行java AnotherTest , 它会用 NullPointerException 轰炸在 input.hasNext() 上因为testmain永远不会运行,因此 input从未被初始化。

编辑:旁注,Java 中的类名几乎总是大写。

关于Java - 制作对象时,它们应该放在代码的什么位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21007594/

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