gpt4 book ai didi

java - 出于什么目的,人们想要在同一类的 main 中创建一个类的实例?

转载 作者:行者123 更新时间:2023-11-30 07:14:56 25 4
gpt4 key购买 nike

我遇到过这种示例,但很难理解它的实际用途:

class YieldDemo extends Thread
{
static boolean finished = false;
static int sum = 0;
public static void main (String [] args)
{
new YieldDemo ().start ();
for (int i = 1; i <= 50000; i++)
{
sum++;
if (args.length == 0)
Thread.yield ();
}
finished = true;
}
public void run ()
{
while (!finished)
System.out.println ("sum = " + sum);
}
}

我从未见过这种实现 - 为什么要在同一个类对象内部启动新类,而不是在类外部启动新类?有什么特别的原因吗?

最佳答案

事实上,您位于类对象本身的外部main方法是一个静态方法,因此它不依赖于任何对象实例。

您还可以将main 方法移动到任何其他java 文件。一般来说,它也会起作用。但是,您需要将静态方法放入某个文件中。由于每个 java 文件 都需要是一个类,因此您可以将方法放在它所适用的类中。例如,java中的类Math是一个纯粹的实用类,它没有非静态方法。

但是,如果您创建这样的内容:

public final class Value {
private final int mValue;

public Value(int value) {
mValue = value;
}

public int getValue() {
return mValue;
}

public Value increase() {
return new Value(mValue + 1);
}
}

如果您希望 Value 不可变(不更改其内部值),那么它实际上是有意义的。因此,调用 increase() 不会增加值本身,而是创建该对象的一个​​新实例,并增加值。

关于java - 出于什么目的,人们想要在同一类的 main 中创建一个类的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38571268/

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