为什么要在自己的定义中创建一个类的实例?

时间:2012-08-21 02:22:40

标签: class recursion

我一直在研究在自己的定义中创建类实例的主题。像这样:

public class myClass
{
    public static myClass aObject = new myClass();
    public static myClass bObject = new myClass();
}

我很了解这是怎么可能的,但我很困惑为什么它会有用。

另外,我的逻辑说应该可以这样做:

aObject.bObject.someMethod();

aObject是myClass的一个实例,所以它应该包含bObject,对吗?我觉得我错过了对课程如何运作的基本理解,所以我真的想知道这里发生了什么,以及为什么有人想要这样做。

2 个答案:

答案 0 :(得分:0)

如果将someMethod()定义为myClass的一部分,

aObject.bObject.someMethod()肯定会有效。至于为什么会这样做,我将给出一个在java中使用的例子。

假设您有一个名为Color的类来表示颜色。您可以使用构造函数Color(byte r, byte g, byte b)创建其RGB值的新颜色。 Color类中还有常量表示常用颜色,如红色或绿色或粉红色。只需说Color.PINK即可快速访问粉红色,因为PINK是Color类中的Color变量。这样,每次要在方法中使用粉红色时,都不必构造新的颜色对象。

答案 1 :(得分:0)

aObject.bObject.someMethod();

这就像说“对象的对象b ......做某事”。所以就像一个球(叫做A)里面有一个球(叫做B),里面有一个球(叫做C)......等等。

链接列表就是这样的列表:

class Link {

public long data;                        // data item
public Link next;                        // next link in list
// =============================================================
    public Link(long value){             // constructor
        data = value;                    // assign parameter to data's data field   
    }
}

Link内部有一个指向另一个链接的指针,该链接执行相同的操作,直到你创建一个空对象。

我认为这就是你要问的......