2 回答
TA貢獻1909條經驗 獲得超7個贊
靜態變量是一個變量:
public static int whatever = 0;
靜態方法是一種方法:
public static void whatever() {}
靜態類是一個類:
public static class SomeInnerClass {}
(一個類只有在static嵌套在另一個類中時才能有修飾符)
靜態變量和方法可以從任何其他類訪問,并且不綁定到該類的實例。例如,假設您有以下類:
public class SomeClass {
public static int myInt = 0;
public static int add(int one, int two) {
return one + two;
}
}
從任何其他類,您可以直接訪問變量和方法,而無需創建 的實例SomeClass:
SomeClass.myInt = 23;
int sum = SomeClass.add(SomeClass.myInt, 2); //this will equal 25
如果變量和方法不是靜態的,則必須首先實例化 SomeClass 然后引用該實例:
SomeClass someClass = new SomeClass();
someClass.myInt = 23;
int sum = someClass.add(someClass.myInt, 2); //this will equal 25
靜態類用于將嵌套類與其父類分開,并消除對父類實例的依賴。取以下代碼:
public class ParentClass {
public class ChildClass {}
}
從另一個(父類的非子類)類中,您將能夠使用:
ParentCLass parent = new ParentClass();
但是你不能這樣做:
ChildClass child = new ChildClass(); //this won't compile if it's not in ParentClass
但是,如果 ChildClass 變為靜態:
public class ParentClass {
public static class ChildClass {}
}
您將能夠從另一個(父類的非子類)類實例化它:
ChildClass child = new ChildClass(); //this will compile when put in any class
我建議閱讀一些關于類如何工作的 Java 基礎知識:https : //www.geeksforgeeks.org/classes-objects-java/
TA貢獻1865條經驗 獲得超7個贊
在 Java 中,static 是一個關鍵字,用于描述對象在內存中的管理方式。這意味著靜態對象專門屬于該類,而不是該類的實例。變量、方法、類可以是靜態的。它們之間的區別和往常一樣(變量、方法和類之間的區別)。一個靜態變量(例如int或String等容器),靜態方法(一個存在于內存中并且是類的一部分的方法(可以在沒有Hello.staticMethod()類的實例的情況下調用),一個靜態類有點在 Java 中獨一無二,看看這個Java 中的靜態類
添加回答
舉報
