靜態函式

靜態函式

函式調用的結果不會訪問或者修改任何對象(非static)數據成員,這樣的成員聲明為靜態成員函式比較好。且如果static int func(....)不是出現在類中,則它不是一個靜態成員函式,只是一個普通的全局函式,只不過由於 static 的限制,它只能在檔案所在的編譯單位內使用,不能在其它編譯單位內使用。

注意事項

靜態成員函式的聲明除了在類體的函式聲明前加上關鍵字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");

}

}

如果某些成員函式只訪問靜態數據成員,那么最好把他們聲明為靜態的成員函式,因為這樣不需要特定的對象就可以訪問這些成員變數了。

相關詞條

相關搜尋

熱門詞條

聯絡我們