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);
}
}
书上的源程序,一点都没改,显示缺少标识符,这又是为什么
明天来选最佳答案,先谢谢各位
我看了各位的回答,感觉受益匪浅,谢谢了。 展开
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);
}
}
书上的源程序,一点都没改,显示缺少标识符,这又是为什么
明天来选最佳答案,先谢谢各位
我看了各位的回答,感觉受益匪浅,谢谢了。 展开
8个回答
推荐于2017-09-14 · 知道合伙人互联网行家
关注
展开全部
Java是一门面向对象的编程语言,具有很高的可读性和易用性,而标识符则是Java语言中非常重要的概念之一。标识符是指在Java源文件中用来标识变量、方法、类等程序实体的名称,是对这些实体进行具体命名的方式。点击学习大厂名师精品课
在Java中,标识符必须符合一定的命名规则。首先,标识符可以由大小写字母、数字、下划线、美元符号组成,但开头必须是字母、下划线或美元符号。其次,标识符的长度没有限制,但应该控制在合理范围内,以便于代码的可读性和维护性。
Java中的标识符还有一些特殊规定。比如,Java是一门区分大小写的编程语言,所以大小写的标识符是不同的。另外,Java中已经被保留的关键字不能作为标识符,比如public、class、if等等。
学习IT推荐慕课网。慕课网聘请一线技术牛人,传授真正有用的企业级实战技能。技术与业务深度融合,实用性强,让用户少走弯路,开阔视野,实现弯道超车。慕课网多年来坚持分享免费课程,帮助用户0成本体验学习,收获超千万用户好评。恪守良心责任,专注纯粹教育,匠心打造精品课程,赢得了海量用户信任及口碑推荐。
在Java中,标识符必须符合一定的命名规则。首先,标识符可以由大小写字母、数字、下划线、美元符号组成,但开头必须是字母、下划线或美元符号。其次,标识符的长度没有限制,但应该控制在合理范围内,以便于代码的可读性和维护性。
Java中的标识符还有一些特殊规定。比如,Java是一门区分大小写的编程语言,所以大小写的标识符是不同的。另外,Java中已经被保留的关键字不能作为标识符,比如public、class、if等等。
学习IT推荐慕课网。慕课网聘请一线技术牛人,传授真正有用的企业级实战技能。技术与业务深度融合,实用性强,让用户少走弯路,开阔视野,实现弯道超车。慕课网多年来坚持分享免费课程,帮助用户0成本体验学习,收获超千万用户好评。恪守良心责任,专注纯粹教育,匠心打造精品课程,赢得了海量用户信任及口碑推荐。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我这个汗~~~啊,兄弟,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." 这么个标识符。
兄弟挣你这点儿分还真挺难的!!!!!!!!!!!!!!!!!!!
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." 这么个标识符。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
类里的语句只能是定义变量或方法!
可执行的语句只能在方法里或者{}(代码块)里。
上面的语句不是变量定义语句,不是方法定义,不在代码块{}里,
所以报错“需要标示符”
可执行的语句只能在方法里或者{}(代码块)里。
上面的语句不是变量定义语句,不是方法定义,不在代码块{}里,
所以报错“需要标示符”
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在你的问题补充那段代码中,变量x和y是类scope的成员变量,但是非静态的,因此它们两个不能在静态的main方法里面调用,这是Java中语法的重点,就是非静态的变量或方法都不能在静态的方法中调用,而静态的方法或变量可以在静态或非静态的方法中使用!
讲到这里你也就应该会明白第一段代码为什么改成static int x=20为什么就可以运行了!
讲到这里你也就应该会明白第一段代码为什么改成static int x=20为什么就可以运行了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询