我对java代码感到困惑?

时间:2016-03-08 09:34:23

标签: java oop

此代码对我来说没有意义

class MyClass{
    MyClass obj = new MyClass();

    public static void main(String[] args){
        MyClass obj = new MyClass();
    }
}

所以问题是类定义如何包含自己的对象创建? 例如,像上面的代码MyClass实例变量obj创建自己的对象。在这里,我想了解它是否有效,然后它如何在幕后实际工作,以及这样做的好处是什么.. 需要详细解释..提前感谢

2 个答案:

答案 0 :(得分:0)

问题在于,无论您是创建自己的对象还是其他任何对象,该课程都无法区分。 在幕后它的工作方式与任何其他对象构造相同,因此从字段初始化开始,在这种特殊情况下,使用以下行:

MyClass obj = new MyClass();

之后,正如人们在评论中提到的那样,它一遍又一遍地开始这样做,导致堆栈溢出。

答案 1 :(得分:-2)

您不能在Myclass定义中启动MyClass。

查看来自Bill Venners的这篇文章,构造函数基础知识: http://www.javaworld.com/article/2076614/core-java/object-initialization-in-java.html

class MyClass{
    private int value;
    public MyClass() {
        value = 1234;
    }

    public MyClass(int setValue) {
        value = setValue;
    }
}

class Example3 {
    public static void main(String[] args) {
        // Create a MyClass object with default value
        MyClass example1 = new MyClass();
        // Create a MyClass with value 355
        MyClass example2 = new MyClass(355);
    }
}

我希望这会有所帮助。