我有一个简单的 Java 理论问题。如果我编写一个包含 main() 方法以及其他一些方法的类,并且在该 main 方法中调用该类的实例(例如 new Class()),我会有点困惑为什么不发生递归。假设我正在编写一个图形程序,其中类中的其他方法创建一个窗口并绘制数据;在 main 方法中,我调用类本身的一个实例,但只出现一个窗口。这很好,这就是我想要的,但直觉表明,如果我从类内部创建类的实例,则应该发生某种递归。是什么阻止了这一点?这是一个示例(在我看来,我想知道什么可以防止不必要的递归):
public class example{
method1(){create Jpane}
method2(){paint Jpane}
method 3(){do some computations}
public static void main(String[] args){
new example(); // or create Jblah(new example());
}
}
最佳答案
我认为您将 main
方法(它只是程序的入口点)与构造函数混淆了。
例如,如果您写道:
public class Example {
public Example() {
new Example(); // Recursive call
}
public static void main(String[] args) {
// Will call the constructor, which will call itself... but main
// won't get called again.
new Example();
}
}
然后就会爆炸。
关于java类实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14758515/