我有這兩類解釋執行java代碼的順序或優先級?
public class B {
int mB = 5;
public int getBValue(){
return mB;
}
}
public class A {
int mA = b.getBValue();
public static void main(String [] args){
B b = new B();
System.out.println(mA);
}
}
編譯器顯示「無法找到符號B」。我理解代碼首先從主要方法執行,然後按順序執行。因此,當編譯器讀取代碼時,它首先進入「B b = new B();
」,然後b被定義。這是真的嗎?範圍有誤嗎?
第二狀態我的理解:
public class B {
static int mB = 5;
public static int getBValue(){
return mB;
}
}
public class A {
static int mA = B.getBValue();
public static void main(String [] args){
System.out.println(mA);
}
}
這種狀態正常工作。靜態屬於類本身,不屬於任何對象。所以所有的靜態加載和程序運行時初始化。
那麼,這兩個國家之間的關鍵點?
'B b = new B();'不創建類'A'可以使用的變量。它不在課堂範圍內。它只是'main'方法的一個「本地」變量。 –
所以我們處理主要方法像任何其他方法沒有任何隱私這種方法? –
'b'不具有全局範圍。它只能用於'main'方法,而_only_只能用於'main'方法的末尾。即使你有一些不是'main'方法的方法,並且它在'main'方法中聲明瞭'b',類'A'將不能訪問'b ',因爲'b'是方法內部的_local_變量。 –