Java:对象创建导致运行时错误

安德烈亚斯

我是Java的新手,我正在尝试一些示例来了解它的工作原理。

我在理解以下代码为何失败时遇到问题。我知道导致错误的行,但我不知道为什么。我制作了两个类,Class1Main,其代码是用两个单独的.java文件编写的:

public class Class1
{
    int var;
    public void method1 ()
    {
        System.out.println(var);
    }
    Class1 obj1 = new Class1(); // this is the line that causes the error
}

public class Main
{
    public static void main (String[] args)
    {
        Class1 obj = new Class1();
        obj.method1();
    }
}

它可以很好地编译,但是当我运行java Main时,它只会打印数百次错误

at Class1.<init>(Class1.java:8)

我尝试运行java Main | more(我正在使用Unix Bash),但是管道以某种方式被忽略了,并且我看不到错误消息的第一行。也不java Main > log.txt输出重定向到一个文本文件的工作。如果删除该行,即如果不在类主体中创建Class1对象obj1,则Class1一切正常。谁能告诉我那条线怎么了?

谢谢

穆罕默德(Mehmet Sedat Gungor)

问题是您正在无限循环中创建Class1对象。

在main方法中创建Class1对象时,它将初始化您在Class1主体中定义的所有变量。但是,由于您还在Class1主体内创建了一个新的Class1对象,因此它将继续创建Class1对象,并且在某些时候,它将导致堆栈溢出错误。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章