1. 程式人生 > >"靜態方法裏僅僅能調用靜態變量和靜態方法"具體解釋

"靜態方法裏僅僅能調用靜態變量和靜態方法"具體解釋

release java 調用 fix temp lin 方法 -s ews

靜態方法裏能夠調用靜態方法和靜態變量,同一時候也能調用非靜態方法和非靜態變量。

public class Test {

public Test() {};
public Test(int i) {this.n = i;}

public static int m = 5;
public int n = 10;

public void fun1() {System.out.println("非靜態方法fun1");}
public static void fun2() {System.out.println("靜態方法fun2");}

//測試“靜態方法裏僅僅能調用靜態變量和靜態方法”詳細是什麽意思
public static void main(String[] args) {
 //調用靜態方法不會報錯
 //fun2();

 //調用靜態變量不會報錯
 System.out.println(m);

 //無法從靜態上下文中引用非靜態方法fun1()
 //fun1();

 //無法從靜態上下文中引用非靜態變量n
 //System.out.println(n);

 //能夠在靜態方法中new對象,調用到了非靜態方法的構造方法。無論是否默認構造方法。下列代碼均能正確運行。故覺得:“編譯階段,編譯器不會檢查靜態方法中牽扯到 詳細對象以及對象的相關操作”。如此,也提供了靜態方法中訪問非靜態方法和非靜態屬性的解決方式。
 //Test t = new Test(8);
 //t.fun2();
 //t.fun1();
 //System.out.println(t.m);	
 //System.out.println(t.n);
 
}
}


"靜態方法裏僅僅能調用靜態變量和靜態方法"具體解釋