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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张周飞 金牌黑马   /  2014-6-13 10:16  /  1211 人查看  /  12 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张周飞 于 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);
}

}

评分

参与人数 1技术分 +1 收起 理由
轻语。 + 1

查看全部评分

12 个回复

倒序浏览
在方法体内,不能用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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
轻语。 + 1

查看全部评分

回复 使用道具 举报 1 0
黎志勇 发表于 2014-6-13 10:35
在方法体内,不能用private等关键字来定义局部变量。
要不把private关键字去掉

受教了 think you
回复 使用道具 举报
private只能修饰成员变量和成员函数。。。

点评

受教了,以前我只是知道不能再main方法使用private,但是并不是太了解为什么,这个给了明确答案。  发表于 2014-6-13 19:24
回复 使用道具 举报 1 0
黎志勇 发表于 2014-6-13 10:35
在方法体内,不能用private等关键字来定义局部变量。
要不把private关键字去掉

学习了!
回复 使用道具 举报
黎志勇 发表于 2014-6-13 10:35
在方法体内,不能用private等关键字来定义局部变量。
要不把private关键字去掉

学习了,还真没想过这事
回复 使用道具 举报
楼上的解析得很好,受益匪浅啊
回复 使用道具 举报
以前也犯过这个错,但解决后没认真总结,楼主细心~~
回复 使用道具 举报
private只能修饰类中的成员
回复 使用道具 举报
黎志勇 发表于 2014-6-13 10:35
在方法体内,不能用private等关键字来定义局部变量。
要不把private关键字去掉

这个总结的好,支持!
回复 使用道具 举报
{:2_36:}每天逛一逛,会有收获的呦~
回复 使用道具 举报
我是这样理解的:在方法中定义的变量是局部变量,既然是局部变量那么他只属于这个局部代码快,不能说属于这个类,既然不属于这个类那么就不能说是这个类的成员变量,因此他不能用private来修饰。希望能帮助你理解
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马