1. 程式人生 > >JAVA中在main函式中呼叫變數時注意事項

JAVA中在main函式中呼叫變數時注意事項

在下面這段程式碼中會報錯

[java] view plain copy print?
  1. System.out.println(s1);  
System.out.println(s1);
Cannot make a static reference to the non-static field s1

只要把s1的申明加上static,就不會報錯了,這有點讓奇怪,看報錯是說不能在非靜態域進行靜態引用,查詢了一下原因,由於該方法是靜態方法,s1變數非靜態變數,所以s1是依賴於物件的存在而存在的,也就是說First物件必須例項化後記憶體中才存在s1,那麼對於靜態方法main來講,這就是矛盾的,所以才會有這個報錯。

[java] view plain copy print?
  1. package number;  
  2. publicclass First {  
  3.      String s1 = ”nihao”;  
  4.     publicstaticvoid main(String[] args) {  
  5.         // TODO Auto-generated method stub          
  6.         System.out.println(s1);       
  7.     }  
  8. }  
package number;

public class First {
     String s1 = "nihao";
    public static void main(String[] args) {
        // TODO Auto-generated method stub          
        System.out.println(s1);     
    }
}