我學習了C++,現在正在學習Java。在C++中,我們可以在非靜態/實例成員函數中使用靜態成員。但是,在學習Java的我發現這一點:Java的靜態成員和C++的靜態成員之間的區別
我寫了一個程序,以檢查是否「非靜態函數可以訪問靜態成員或沒有」。還有在下面的程序沒有問題:
public class Animal
{
static int CountOfAnimal;
public Animal()
{
CountOfAnimal++;
}
public int showCount()
{
CountOfAnimal++;
return CountOfAnimal;
}
public static void main(String []args)
{
new Animal();
new Animal();
Animal C = new Animal();
System.out.println("Total animals are : " + C.showCount());
}
}
所以,我可以說,在Java也非靜態/實例成員函數可以訪問同一類的靜態成員?
另外,我想知道除了調用成員的方式之外,Java和C++中的靜態成員(方法和變量)是否有區別?
我知道的一個區別是在C++中調用靜態成員並在Java中調用靜態成員。任何其他?
'我可以說,在Java也非靜態/實例成員函數可以訪問同一類的靜態成員'是的,你可以嗎?。你所引用的這段話並不矛盾,所以目前還不清楚爲什麼你一開始就懷疑這個提議。 –
@IgorTandetnik:謝謝,所以java和C++的靜態成員之間沒有其他區別(接受調用的方式)? – Infinity
這個問題是基於對引用文本的誤解。投票結束。 – Galik