A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 呆呆呆 中级黑马   /  2013-12-18 10:46  /  1080 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 呆呆呆 于 2013-12-18 16:20 编辑

  1. <P>public class Something {

  2. void doSomething () </P>
  3. <P>{</P>
  4. <P>private String s = "";
  5. int l = s.length();

  6. }

  7. }
  8. </P>
复制代码

这段代码有什么错误啊?

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

4 个回复

倒序浏览
本帖最后由 公子-醉香 于 2013-12-18 11:02 编辑
  1. public class Something {
  2.         
  3.         void doSomething ()
  4.         {
  5.         private String s = "";//错误分析  局部变量不能用private来修饰,既然定义它为局部变量,就完全没有必要用
  6.                                                   //private来修饰它,因为它的整个作用范围就是doSomething()方法体中。java中这种识别机制是很强悍的。
  7.         int l = s.length();
  8.         System.out.println(l);
  9.         }
  10.         
  11.         //修改后
  12.         private String str = "";  //这样,它的作用范围就是在Something这个类中,出了这个类,它就作用不到了。
  13.         void doSomething1 ()
  14.         {
  15.         int len = str.length();
  16.         System.out.println(len);
  17.         }
  18. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
局部变量里不能用private修饰 ,默认的就是在这个方法体起作用!这编译是不通过的!会给你报个 参数的修饰符是非法的编译错误!
回复 使用道具 举报
其实就直接把private去了就行了,
回复 使用道具 举报
画蛇添足
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马