1

作为初学者,我有一个概念上的疑问。类类型对象作为同一个类中的成员/实例变量有什么用?像这样的东西:

class MyClass {

static MyClass ref;
String[] arguments;

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

public void func(String[] args) {
    ref.arguments = args;
}

}

提前致谢!

4

4 回答 4

4

这用于单例模式

class MyClass {
    private static final MyClass INSTANCE = new MyClass();
    private MyClass() {}
    public static MyClass getInstance() {
        return INSTANCE;
    }
    // instance methods omitted
}
于 2014-10-18T02:43:57.633 回答
0

通常使用具有相同类的成员/属性的类的一般情况。一个例子是实现链表

于 2014-10-18T02:40:05.100 回答
0

我能看到的唯一用途是从静态方法调用同一类的任何实例方法,而无需一次又一次地重新创建对象。如下所示...

public class MyClass {

static MyClass ref;
String[] arguments;

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

public static void func1() {
    ref.func();
}

public static void func2() {
    ref.func();
}

public void func() {
    System.out.println("Invoking instance method func");
}
}
于 2014-10-18T02:44:51.127 回答
0

如果您指的是一般的自引用类,那么它们对于该类的一个瞬间需要指向该结构中的相邻瞬间的任何结构都非常有用,例如在图形(如树)、链表等中。对于存在与封闭类相同类型的静态字段的特定示例,这可以用于像单例模式这样的设计模式。

于 2014-10-18T02:53:17.453 回答