|NO.Z.00070|——————————|BigDataEnd|——|Java&集合類庫.V06|----------------------------------------------|Java.v06|異常機制.v06|自定義異常|使用|
阿新 • • 發佈:2022-04-04
宣告靜態成員使用static修飾符。
所謂靜態就是指在編譯後分配的記憶體會一直存在,直到程式退出時才會釋放記憶體空間。
一個類中的靜態成員可以是靜態欄位,也可以有靜態方法,靜態成員不需要建立物件後使用,可以直接使用類名來引用,例如:
有一個學生類,如下:
public class Student {
//靜態方法
public static void printHello()
{
Console.WriteLine("全體學生歡迎您!");
}
}
在main方法中呼叫printHello方法不需要例項化物件,而可以直接用類名來呼叫。
Student.printHello(); //此時可以列印"全體學生歡迎您!"
靜態成員是類級別的,是所有物件共享的資料,如果在學生類中,有一個欄位來記錄學生人數,此時不使用靜態成員將無法記錄學生人數,例如:
public class Student {
public string no; //學號
public string name; //姓名
public int count; //學生人數
}
在main方法中建立學生,並且每建立一個學生,給學生人數+1
Student stu1 = new Student(); stu1.no = "001"; stu1.name = "劉備"; stu1.count++; Student stu2 = new Student(); stu2.no = "001"; stu2.name = "劉備"; stu2.count++; Student stu3 = new Student(); stu3.no = "001"; stu3.name = "劉備"; stu3.count++; Console.WriteLine("學生人數:" + stu3.count); //此時有三個學生,但是列印的學生人數仍然是1.
通過以上程式碼我們可以看出,學生人數並沒有增加,實際上三個物件都單獨擁有學生人數的欄位,並且毫無關聯。
此時我們可以使用靜態成員解決此問題,程式碼如下,例如:
public class Student {
public string no; //學號
public string name; //姓名
public static int count; //學生人數
}
在main方法中建立學生,並且每建立一個學生,給學生人數+1
Student stu1 = new Student(); stu1.no = "001"; stu1.name = "劉備"; Student.count++; Student stu2 = new Student(); stu2.no = "001"; stu2.name = "劉備"; Student.count++; Student stu3 = new Student(); stu3.no = "001"; stu3.name = "劉備"; Student.count++; Console.WriteLine("學生人數:" + Student.count); //此時可以列印學生人數為3