程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 變量作用域的問題

變量作用域的問題

編輯:關於JAVA

變量作用域的問題:public String getAnswer() { String myAnswer; try { BufferedReader bfReader=new BufferedReader(new InputStreamReader(System.in)); myAnswer=new String(bfReader.readLine().toString()); System.out.println("你輸入的是:"+myAnswer); } catch(Exception e){} return myAnswer; } }

這個方法總是報錯,按以前的思路,myAnawer應已賦值了,怎會是還沒賦值?

原來,這就是變量的作用域的問題,我把它改為:

public String getAnswer() { String myAnswer=new String(""); //注意這裡 /*總結:定義在某個區域內的變量,必須在這個區域中NEW,象本方法,就不能用 String myAnswer;然後再下一層括號中NEW*/ try { BufferedReader bfReader=new BufferedReader(new InputStreamReader(System.in)); myAnswer=bfReader.readLine().toString(); //System.out.println("你輸入的是:"+myAnswer); } catch(Exception e){} //System.out.println(myAnswer); return myAnswer; }

因為變量的作用域不能跳出它分配空間的那一對大括號 。

當然,也可以把String myAnswer跳出方法體,直接作為類中的一個變量,那麼在方法中也可以直接使用這個變量。如

String myAnswer; public String getAnswer2() { try { BufferedReader bfReader=new BufferedReader(new InputStreamReader(System.in)); myAnswer=new String(bfReader.readLine().toString()); System.out.println("你輸入的是:"+myAnswer); } catch(Exception e){} return myAnswer; }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved