gpt4 book ai didi

java - 什么时候可以在该类的方法中创建该类的对象?

转载 作者:IT老高 更新时间:2023-10-28 20:46:08 25 4
gpt4 key购买 nike

public class TestClass(){
public static void main(String []args) {
TestClass t1 = new TestClass();
t1.anything();
}
}

在同一个类的定义中创建对象不奇怪吗?因为作为响应——这个对象创建一个新对象,然后这个新对象创建另一个对象,无限循环开始直到内存满为止。

最佳答案

Is it not strange to create an object in the definition of the same class than in response the object create a new object then this new object create another and the infinite loop begins

不,main 方法仅在您运行程序时运行一次。它不会再次执行。所以,对象只会被创建一次。

想想你的主要方法是在你的类(class)之外。它创建您的类的实例,并使用创建的实例。因此,当你从 main 方法创建实例时,会调用构造函数来初始化实例的状态,然后当构造函数返回时,执行 main 方法的下一条语句。

实际上,您可以将 main 方法视为类实例状态的一部分。

但是,如果您在构造函数中创建了类的实例(比如 0-arg),并将引用作为实例引用变量,那么这将变成无限递归。

public class A {
private A obj;
public A() {
obj = new A(); // This will become recursive creation of object.
// Thus resulting in StackOverflow
}
}

关于java - 什么时候可以在该类的方法中创建该类的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13044983/

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