C# 相当于“C”;静态变量";在爪哇

C# 相当于“C”;静态变量";在爪哇,c#,java,static,C#,Java,Static,在C#中,我可以在类中声明静态变量。例如:计算类“foo”的创建实例。像这样 现在-对于创建的每个foo,我可以使用getFooCount方法来了解创建了多少个实例。 在Java中如何做到这一点? 我也试过这么做,但没用。 请解释原因和方式。谢谢 不,你也可以做同样的事情,它会起作用的。示例代码: class Foo { private static int count; Foo() { count++; } static void p

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

现在-对于创建的每个foo,我可以使用
getFooCount
方法来了解创建了多少个实例。 在Java中如何做到这一点? 我也试过这么做,但没用。
请解释原因和方式。谢谢

不,你也可以做同样的事情,它会起作用的。示例代码:

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        
    }
}

(如果您展示了您所尝试的内容,这会有所帮助…

以下内容在Java中可用(尽管它不是线程安全的)


您到底遇到了什么问题?

请阅读-每当您遇到无法工作的代码时,应将其包含在问题中。您的代码应更正为类foo{static int countFoo=0;public foo(){countFoo++;}//关闭部分缺失这可能是您的问题希望这对您有效此计数器实现显然不是线程安全的。“不起作用”如何?这是合法的Java代码。
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        
    }
}
class Foo { 
    static int countFoo =0;

    public Foo() {
        countFoo++;
    }
}