繁体   English   中英

等效于 Java 中的 C# “静态变量”

[英]Equivalent of C# “static variable” in Java

在 C# 中,我可以在 class 中声明 static var。 例如:计算 class "foo" 的创建实例。 像这样

class foo
{
    static int countFoo =0;

    public foo()
    {
        countFoo++;
    }
}

现在 - 对于创建的每个 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(尽管它不是线程安全的)

class Foo { 
    static int countFoo =0;

    public Foo() {
        countFoo++;
    }
}

你到底有什么问题?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM