·您的位置: 首页 » 资源教程 » 编程开发 » JAVA、JSP » [JAVA]变量作用域的问题

[JAVA]变量作用域的问题

类别: JAVA教程  评论数:0 总得分:0

变量作用域的问题: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;     }



-= 资 源 教 程 =-
文 章 搜 索
关键词:
类型:
范围:
纯粹空间 softpure.com
Copyright © 2006-2008 暖阳制作 版权所有
QQ: 15242663 (拒绝闲聊)  Email: faisun@sina.com
 纯粹空间 - 韩国酷站|酷站欣赏|教程大全|资源下载|免费博客|美女壁纸|设计素材|技术论坛   Valid XHTML 1.0 Transitional
百度搜索 谷歌搜索 Alexa搜索 | 粤ICP备19116064号-1