Java中C#“静态变量”的等价物

时间:2011-07-17 08:07:48

标签: c# java static

在C#中,我可以在类中声明一个静态var。例如:计算类“foo”的创建实例。像这样

class foo
{
    static int countFoo =0;

    public foo()
    {
        countFoo++;
    }
}

现在 - 对于创建的每个foo,我可以使用getFooCount方法来了解创建了多少个实例。 你是如何用Java做到的? 我试图做同样的事情,它不起作用。 请解释原因和方法。谢谢!

2 个答案:

答案 0 :(得分:5)

不,你可以完全一样,工作。示例代码:

class Foo
{
    private static int count;

    Foo()
    {
        count++;
    }

    static void printCount()
    {
        System.out.println(count);
    }
}

public class Test
{
    public static void main(String[] args)
    {
        Foo.printCount(); // 0
        Foo foo1 = new Foo();
        Foo foo2 = new Foo();
        Foo.printCount(); // 2        
    }
}

(如果你展示了你尝试过的东西会有所帮助......)

答案 1 :(得分:1)

以下适用于Java(虽然它不是线程安全的)

class Foo { 
    static int countFoo =0;

    public Foo() {
        countFoo++;
    }
}

你到底遇到了什么问题?