Java中靜態變數、常量、方法
阿新 • • 發佈:2019-01-06
- 由static修飾的變數、常量和方法被稱做靜態變數、常量和方法。
靜態成員屬於類所有,區別與個別物件,可以在本類或其他類使用類名和“.”運算子呼叫靜態成員。
語法
類名.靜態類成員
public class StaticTest {
static double PI = 3.14; //在類中定義靜態常量
static int id; //在類中定義靜態變數
public static void method1() {
//dongSomething
}
public void method2 () {
System.out.println(StaticTest.PI); //呼叫靜態常量
System.out.println(StaticTest.id); //呼叫靜態變數
StaticyTest.method1(); //呼叫靜態方法
}
}
- 靜態成員與靜態方法的作用通常是為了提供共享資料或方法。
public class StaticTest {
static double PI = 3.1415;
static int id;
public static void method1() {
//doingSomethring
}
public void method2() {
System.out.println(StaticTest.PI);
System.out.println(StaticTest.id);
StaticTest.method1();
}
public static StaticTest method3() {
method2(); //錯誤,靜態方法不能呼叫非靜態方法或屬性
return this; //錯誤,靜態方法中不可以使用this關鍵字
}
}
- 靜態方法中不可以使用this關鍵字
- 在靜態方法中不可以直接呼叫非靜態方法
- 在Java中不能講方法體內的區域性變數宣告為static
- 靜態程式碼塊優先於主方法執行,而在類中定義的靜態程式碼塊會優先於構造塊執行,而且不管有多少個物件產生,靜態程式碼快直執行一次。
- 靜態變數處於虛擬機器記憶體的方法區中,只有一份。