更新時(shí)間:2021年04月29日17時(shí)27分 來(lái)源:傳智教育 瀏覽次數(shù):
圖1 靜態(tài)變量?jī)?nèi)存分配圖
從圖1可以看出,所有學(xué)生對(duì)象共享一個(gè)名稱為schoolName的變量。在一個(gè)Java類中,要實(shí)現(xiàn)這種功能可以使用static關(guān)鍵字來(lái)修飾成員變量,該變量被稱作靜態(tài)變量,它可以被所有實(shí)例所共享。
靜態(tài)變量可以使用如下語(yǔ)法來(lái)訪問:
類名.變量名
了解了靜態(tài)變量的聲明和訪問方式后,接下來(lái)通過(guò)一個(gè)案例來(lái)實(shí)現(xiàn)圖3-18所描述的情況,如文件1所示。
文件1 Example12.java
class Student {
static String schoolName; // 聲明靜態(tài)變量schoolName
}
public class Example12 {
public static void main(String[] args) {
Student stu1 = new Student(); // 創(chuàng)建第1個(gè)學(xué)生對(duì)象
Student stu2 = new Student(); // 創(chuàng)建第2個(gè)學(xué)生對(duì)象
Student.schoolName = "清華大學(xué)"; // 為靜態(tài)變量賦值
// 分別輸出兩個(gè)學(xué)生對(duì)象的信息
System.out.println("我是" + stu1.schoolName+"的學(xué)生");
System.out.println("我是" + stu2.schoolName+"的學(xué)生");
}
}
運(yùn)行結(jié)果如圖2所示。
圖2 運(yùn)行結(jié)果
文件2中,Student類中定義了一個(gè)靜態(tài)變量schoolName,用于表示學(xué)生所在的學(xué)校,它被所有的實(shí)例對(duì)象所共享。由于schoolName是靜態(tài)變量,因此可以直接使用Student.schoolName的方式進(jìn)行調(diào)用,也可以通過(guò)Student的實(shí)例對(duì)象進(jìn)行調(diào)用,如stu2.schoolName。在第8行代碼將變量schoolName賦值為“清華大學(xué)”后,學(xué)生對(duì)象stu1和stu2的schoolName屬性值均為“清華大學(xué)”。
注意:static關(guān)鍵字注意事項(xiàng)
static關(guān)鍵字只能用于修飾成員變量,不能用于修飾局部變量,否則編譯會(huì)報(bào)錯(cuò),例如下面的代碼是非法的。
猜你喜歡:
北京校區(qū)