2011-07-17 49 views
-1

在C#中,我可以在類中聲明一個靜態變量。例如:計算類「foo」的創建實例。像這樣Java中C#「靜態變量」的等效代碼

class foo 
{ 
    static int countFoo =0; 

    public foo() 
    { 
     countFoo++; 
    } 
} 

現在 - 用於創建我可以用一個getFooCount方法知道有多少實例被創建的每個FOO。 你如何在Java中做到這一點? 我試圖做同樣的事情,它不起作用。 請解釋爲什麼和如何。謝謝!

+0

請閱讀http://tinyurl.com/so-hints - 只要你的代碼不起作用,你應該把它包含在你的問題中。 –

+1

您的代碼應修正爲 class foo static int countFoo = 0; public foo() { countFoo ++; } } //關閉部分丟失這可能是你的問題 希望這會對你有用 – Prabhakantha

+0

這個計數器實現顯然不是線程安全的。 – CodesInChaos

回答

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

Java中的以下作品(儘管它不是線程安全的)

class Foo { 
    static int countFoo =0; 

    public Foo() { 
     countFoo++; 
    } 
} 

你的問題到底是什麼?