黑马程序员技术交流社区

标题: 请教这个java程序有什么错误? [打印本页]

作者: 张周飞    时间: 2014-6-13 10:16
标题: 请教这个java程序有什么错误?
本帖最后由 张周飞 于 2014-6-27 11:38 编辑

请问这个java程序有什么错误?
编译的话:参数N的修饰符不合法?.........为啥呢
public class Exam2_2 {
public static void main(String args[]){
  private final int N=15;
  private final double PI=3.14;
  private final boolean B=false;
  private final char CH='a';
  private final String S="string";
  System.out.println("int:"+N);
  System.out.println("double:"+PI);
  System.out.println("boolean:"+B);
  System.out.println("String:"+S);
}

}
作者: 黎志勇    时间: 2014-6-13 10:35
在方法体内,不能用private等关键字来定义局部变量。
要不把private关键字去掉
  1. public class Exam2_2 {
  2.         public static void main(String args[]) {
  3.                 final int N = 15;
  4.                 final double PI = 3.14;
  5.                 final boolean B = false;
  6.                 final char CH = 'a';
  7.                 final String S = "string";
  8.                 System.out.println("int:" + N);
  9.                 System.out.println("double:" + PI);
  10.                 System.out.println("boolean:" + B);
  11.                 System.out.println("String:" + S);
  12.         }

  13. }
复制代码

要不就把那堆变量提升为类变量,要添加“static”关键字
  1. public class Exam2_2 {
  2.         private static final int N = 15;
  3.         private static final double PI = 3.14;
  4.         private static final boolean B = false;
  5.         private static final char CH = 'a';
  6.         private static final String S = "string";

  7.         public static void main(String args[]) {
  8.                 System.out.println("int:" + N);
  9.                 System.out.println("double:" + PI);
  10.                 System.out.println("boolean:" + B);
  11.                 System.out.println("String:" + S);
  12.         }
  13. }
复制代码

作者: 张周飞    时间: 2014-6-13 10:42
黎志勇 发表于 2014-6-13 10:35
在方法体内,不能用private等关键字来定义局部变量。
要不把private关键字去掉

受教了 think you
作者: 2528870651    时间: 2014-6-13 10:57
private只能修饰成员变量和成员函数。。。
作者: peterbu    时间: 2014-6-13 17:05
黎志勇 发表于 2014-6-13 10:35
在方法体内,不能用private等关键字来定义局部变量。
要不把private关键字去掉

学习了!
作者: 姿_`态    时间: 2014-6-13 17:40
黎志勇 发表于 2014-6-13 10:35
在方法体内,不能用private等关键字来定义局部变量。
要不把private关键字去掉

学习了,还真没想过这事
作者: wangzhiyong515    时间: 2014-6-13 18:12
楼上的解析得很好,受益匪浅啊
作者: 123_yaya    时间: 2014-6-13 18:46
以前也犯过这个错,但解决后没认真总结,楼主细心~~
作者: 杨胜男    时间: 2014-6-13 19:38
private只能修饰类中的成员
作者: qincai    时间: 2014-6-13 19:48
黎志勇 发表于 2014-6-13 10:35
在方法体内,不能用private等关键字来定义局部变量。
要不把private关键字去掉

这个总结的好,支持!
作者: 梦里花落    时间: 2014-6-13 19:50
{:2_36:}每天逛一逛,会有收获的呦~
作者: 王广丛    时间: 2014-6-14 22:10
我是这样理解的:在方法中定义的变量是局部变量,既然是局部变量那么他只属于这个局部代码快,不能说属于这个类,既然不属于这个类那么就不能说是这个类的成员变量,因此他不能用private来修饰。希望能帮助你理解




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2