複製鏈接
請複製以下鏈接發送給好友

靜態函數

鎖定
函數調用的結果不會訪問或者修改任何對象(非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");
}
}
如果某些成員函數只訪問靜態數據成員,那麼最好把他們聲明為靜態的成員函數,因為這樣不需要特定的對象就可以訪問這些成員變量了。