Java:类的对象作为同一个类中的实例变量

时间:2014-10-18 02:34:21

标签: java member-variables

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

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 个答案:

答案 0 :(得分:2)

这用于singleton pattern

class MyClass {
    private static final MyClass INSTANCE = new MyClass();
    private MyClass() {}
    public static MyClass getInstance() {
        return INSTANCE;
    }
    // instance methods omitted
}

答案 1 :(得分:0)

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

答案 2 :(得分: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");
}
}

答案 3 :(得分:0)

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