java 需要标识符

classScope{staticintx,y;x=20;publicstaticvoidmain(Stringarg[]){//开始一个作用域intz=x+10;Sys... class Scope{
static int x,y;
x=20;
public static void main(String arg[])
{ //开始一个作用域
int z=x+10;
System.out.println("The value of z is "+z);
}
}
为什么把上面改成static int x=20,y;就可以运行了。C语言中好像这个是合法的。
麻烦知道的告诉下,本人新手,
static int x=20,y;这个不也是放在类空间的吗,为什么这样就可以,还有如果程序改成
class Scope{
int x,y;
x=20;
public static void main(String arg[])
{ //开始一个作用域
int z=x+10;
System.out.println("The value of z is "+z);
}
}
书上的源程序,一点都没改,显示缺少标识符,这又是为什么

明天来选最佳答案,先谢谢各位

我看了各位的回答,感觉受益匪浅,谢谢了。
展开
 我来答
曹晓山11
推荐于2017-09-14 · 知道合伙人互联网行家
曹晓山11
知道合伙人互联网行家
采纳数:3033 获赞数:52068
毕业南阳理工学院计算机科学与技术专业,本科学位。互联网行业从业3年工作经验,读过编程类相关书籍多本。

向TA提问 私信TA
展开全部

写java时经常因为大意总是出现“需要标识符”这个错误,下面进行一个代码案例分析如果避免这个错误:

1、提示“需要标识符”错误如图:

2、当前Java代码,如图:

3、分析错误原因,就是在写完class后直接写了应该写在main函数里的代码了。

4、解决方法就是在写入其它代码之间,别忘了加入 public static void main(String[] args){}

慕课网
2023-07-05 · 聚焦IT资讯干货,让你成为更好的程序员!
慕课网
向TA提问
展开全部
Java是一门面向对象的编程语言,具有很高的可读性和易用性,而标识符则是Java语言中非常重要的概念之一。标识符是指在Java源文件中用来标识变量、方法、类等程序实体的名称,是对这些实体进行具体命名的方式。点击学习大厂名师精品课
在Java中,标识符必须符合一定的命名规则。首先,标识符可以由大小写字母、数字、下划线、美元符号组成,但开头必须是字母、下划线或美元符号。其次,标识符的长度没有限制,但应该控制在合理范围内,以便于代码的可读性和维护性。
Java中的标识符还有一些特殊规定。比如,Java是一门区分大小写的编程语言,所以大小写的标识符是不同的。另外,Java中已经被保留的关键字不能作为标识符,比如public、class、if等等。
学习IT推荐慕课网。慕课网聘请一线技术牛人,传授真正有用的企业级实战技能。技术与业务深度融合,实用性强,让用户少走弯路,开阔视野,实现弯道超车。慕课网多年来坚持分享免费课程,帮助用户0成本体验学习,收获超千万用户好评。恪守良心责任,专注纯粹教育,匠心打造精品课程,赢得了海量用户信任及口碑推荐。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chengrenbo
推荐于2017-10-11 · TA获得超过524个赞
知道小有建树答主
回答量:402
采纳率:0%
帮助的人:641万
展开全部
我这个汗~~~啊,兄弟,x=20; 放在类空间了,用该放在方法里才对。至少放在构造函数里吧。
兄弟挣你这点儿分还真挺难的!!!!!!!!!!!!!!!!!!!
static int x=20;//在语法上严格来说属于带初值的变量声明。不是赋值语句。

不能简单地把他们理解成:
static int x; //变量声明
x=20; //变量赋值
两个语句的组合。

类结构的特点不允许在类空间中使用赋值语句(无论c++还是java),所以你分开使用会抱错。而放在一起就正常!

你后面添加的问题,就麻烦了,你该再开一个新的问题,这回就便宜你了!~
这个错误提示说的是由于你上面的声明把static去掉了,造成下面的语句int z=x+10;
也出错了。
这是因为static 声明变量的特性造成的。 static你可以理解成一个C语言里的全局变量。它是程序里唯一的。
而你去掉static, 则把x声明为一个类的属性变量。 你使用时需要通过类Scope实例来访问它的属性。
例如:
public static void main(String arg[])
{ //开始一个作用域
Scope s;
int z=s.x+10; //注意这里
System.out.println("The value of z is "+z);
}
}
所以编译器在解析源程序时,认为你少了 "s." 这么个标识符。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pieryon
2015-06-09 · 知道合伙人数码行家
pieryon
知道合伙人数码行家
采纳数:14410 获赞数:166869
获取软件设计师高级职称 万达金融最佳创新奖

向TA提问 私信TA
展开全部
类里的语句只能是定义变量或方法!
可执行的语句只能在方法里或者{}(代码块)里。
上面的语句不是变量定义语句,不是方法定义,不在代码块{}里,
所以报错“需要标示符”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
信天炜5W
2011-01-23 · TA获得超过421个赞
知道小有建树答主
回答量:164
采纳率:100%
帮助的人:130万
展开全部
在你的问题补充那段代码中,变量x和y是类scope的成员变量,但是非静态的,因此它们两个不能在静态的main方法里面调用,这是Java中语法的重点,就是非静态的变量或方法都不能在静态的方法中调用,而静态的方法或变量可以在静态或非静态的方法中使用!
讲到这里你也就应该会明白第一段代码为什么改成static int x=20为什么就可以运行了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式