注意事項
靜態成員函式的聲明除了在類體的函式聲明前加上關鍵字static,以及不能聲明為const或者volatile之外,與非靜態成員函式相同。出現在類體之外的函式定義不能制定關鍵字static。
靜態成員函式沒有this指針。
Static關鍵字
在類中,用static聲明的成員變數為靜態成員變數,它為該類的公用變數,在第一次使用時被初始化,對於該類的所有對象來說,static成員變數只有一份。
用static聲明的方法是靜態方法,在調用該方法時,不會將對象的引用傳遞給它,所以在static方法中不可訪問非static的成員
##靜態方法不再是針對於某個對象調用,所以不能訪問非靜態成員
可以通過對象引用或類名(不需要實例化)訪問靜態成員
java:::
public class Cat
{
private static int sid = 0;
private String name;
int id;
Cat(String name)
{
= name;
id = sid++;
}
public void info()
{
System.out.println
("My name is "+name+" No."+id);
}
public static void main(String arg[])
{
Cat.sid = 100;
Cat mimi = new Cat("mimi");
mimi.sid = 2000;
Cat pipi = new Cat("pipi");
}
}
如果某些成員函式只訪問靜態數據成員,那么最好把他們聲明為靜態的成員函式,因為這樣不需要特定的對象就可以訪問這些成員變數了。