當(dāng)使用static關(guān)鍵字定義成員變量時(shí),該變量將成為靜態(tài)變量或類(lèi)變量。靜態(tài)變量與類(lèi)相關(guān)聯(lián)而不是與類(lèi)的每個(gè)對(duì)象實(shí)例相關(guān)聯(lián)。這意味著,只要類(lèi)被加載,靜態(tài)變量就會(huì)被初始化,且只會(huì)初始化一次,而且可以被所有該類(lèi)的對(duì)象實(shí)例所共享。
以下是使用static關(guān)鍵字定義靜態(tài)變量的示例:
public class MyClass { static int count = 0; String name; public MyClass(String name) { this.name = name; count++; }}
在上面的示例中,count變量是一個(gè)靜態(tài)變量,用于計(jì)算MyClass類(lèi)的實(shí)例數(shù)量。每次創(chuàng)建MyClass類(lèi)的新實(shí)例時(shí),都會(huì)自增count變量的值。因?yàn)閏ount變量是靜態(tài)變量,所以它在所有MyClass類(lèi)的實(shí)例中都是相同的。
以下是如何訪問(wèn)靜態(tài)變量的示例:
MyClass obj1 = new MyClass("Object 1");MyClass obj2 = new MyClass("Object 2");System.out.println(MyClass.count); // 輸出:2
在上面的示例中,我們創(chuàng)建了兩個(gè)MyClass類(lèi)的實(shí)例,然后使用類(lèi)名訪問(wèn)count變量。因?yàn)閏ount變量是靜態(tài)變量,所以我們可以使用類(lèi)名來(lái)訪問(wèn)它,而不需要?jiǎng)?chuàng)建類(lèi)的對(duì)象實(shí)例。輸出結(jié)果是2,因?yàn)槲覀儎?chuàng)建了兩個(gè)MyClass類(lèi)的實(shí)例。