JAVA中在main函式中呼叫變數時注意事項
阿新 • • 發佈:2019-01-22
在下面這段程式碼中會報錯
[java] view plain copy print?- 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來講,這就是矛盾的,所以才會有這個報錯。
- package number;
- publicclass First {
- String s1 = ”nihao”;
- publicstaticvoid main(String[] args) {
- // TODO Auto-generated method stub
- System.out.println(s1);
- }
- }
package number; public class First { String s1 = "nihao"; public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(s1); } }