java中该类内部类的实例

时间:2011-11-05 19:36:50

标签: java

这里我在同一个班级宣布一个类动物的实例。 在c中它被认为是一个错误:

struct demo{
        int anyvar;
        struct demo anyvar1;
};

因为它应该是一个无限循环的声明。

然后,为什么Java中允许使用此代码?

class Animal{
    Animal object1 = new Animal();

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

    public void dostuff()
    {
           System.out.println("Compiles");
           object1.dostuff();
    }

    public void keepdoingstuff()
    {
             System.out.println("Doing Stuff...");

             object1.keepdoingstuff();
    }
}

1 个答案:

答案 0 :(得分:11)

因为在Java中你声明一个包含引用值的变量;一个指针。

就像在做:

struct demo{

    int anyvar;
    struct demo *anyvar1;
};

java中的所有对象都是在堆上创建的,并且使用new关键字显式创建它们。

public class Node
{
   Node next;
   String value;

   public Node() { ... }

   ...
}
next对象被实例化时,

valuenull会自动初始化为Node,并且会一直保持这种状态,直到为它们分配参考值。