是t1
靜態還是非靜態?是t1靜態還是非靜態?
class Test {
void display() {
System.out.println("hello");
}
public static void main(String a[]) {
Test t1 = new Test(); //object created
t1.display();
}
}
是t1
靜態還是非靜態?是t1靜態還是非靜態?
class Test {
void display() {
System.out.println("hello");
}
public static void main(String a[]) {
Test t1 = new Test(); //object created
t1.display();
}
}
t1
是局部變量並且由於它們居住的方法的範圍內,同時一個靜態變量/場獨立地方法執行的存在局部變量不是一成不變的。
靜態變量/字段必須在方法外部聲明。
它本身並不是靜態的,儘管它僅存在於靜態上下文中。 static
描述符只適用於類級實體。考慮這個類(的簡化版本,內置的java.lang.Math類):
class EasyMath {
public static final double PI = 3.17;
public static int quadruple(int i) {
int num = i * 4;
return num;
}
}
您將引用的PI
值直接,使用EasyMath.PI
。這是一個類變量。它直接屬於EasyMath
類,而不屬於類的實例。
同樣,您也可以參考該課程的quadruple
方法:EasyMath.quadruple(6)
。這是因爲該方法是靜態的,它直接屬於類。
請注意,quadruple
方法定義了一個名爲num
的局部變量。但是,您無法參考使用EasyMath.num
。它不屬於這個班級。
它的本地範圍在靜態quadruple
方法中,所以只能在該方法中使用,並且無法在其他位置使用。另一個靜態方法將無法看到它或引用它。同樣,如果有任何實例方法,他們也將無法看到它。局部變量永遠不會是靜態的。
你覺得呢?什麼使靜態的東西? – assylias
[Java'static'](https://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html) - 瞭解類成員 – nbrooks
static關鍵字。 –