1

我知道这是一个初学者的问题。我是 Java 新手,也是一般编程的新手。

假设我有一个只有静态数据的类,例如:

class Foo {
private static int x;  }

我想在不实例化任何对象的情况下使用该类。所以我希望能够做到:

Foo.setX(5);
Foo.getX();

什么是实现这个类的最佳方法,我现在对接口和其他东西有点困惑。

谢谢。

4

4 回答 4

3

我认为单身人士是您要寻找的:

单例类:

public class Singleton {

    private static final Singleton INSTANCE = new Singleton();

    private int x;

    // Private constructor prevents instantiation from other classes
    private Singleton() {
    }

    public static Singleton getInstance() {
        return INSTANCE;
    }

    public int getX() {
        return x;
    }

    public void setX(int x) {
        this.x = x;
    }

}

并从代码中的任何位置访问:

int x = Singleton.getInstance().getX();
Singleton.getInstance().setX(10);
于 2010-10-19T09:15:11.180 回答
3

为什么不只定义两个修改/返回静态字段的静态方法?

Java中的静态方法

于 2010-10-19T09:16:28.977 回答
2

您可以将getXsetX方法定义为静态:

class Foo
{
    private static int x; 

    public static int getX()
    {
        return x;
    }

    public static void setX(int x)
    {
        Foo.x = x;
    }
}

然后你可以在不实例化任何对象的情况下使用它:

Foo.setX(5);
int val = Foo.getX();

正如其他人所建议的那样, aSingleton是一种更清洁的方法,尽管它不能满足您不实例化任何对象的要求。

http://en.wikipedia.org/wiki/Singleton_pattern

于 2010-10-19T09:24:38.973 回答
0

您始终可以使用静态公共方法 Get 和 Set 来做您想做的事情。但是再看看,单例模式可能就是你想要的。

于 2010-10-19T09:17:01.300 回答