黑马程序员技术交流社区

标题: 考考大家的基本功 下面代码为什么编译时候报错 [打印本页]

作者: 沙漠里的小鱼    时间: 2013-11-30 18:21
标题: 考考大家的基本功 下面代码为什么编译时候报错

作者: 冯晓骏    时间: 2013-11-30 18:43
这怎么跟脑筋急转弯似的
楼主写的代码跟
int i;
i;
这种代码是一个效果
一个变量作为一个语句,完全没有意义
作者: 25343215    时间: 2013-11-30 18:47
本帖最后由 25343215 于 2013-11-30 19:43 编辑

报错提示:Syntax error, insert "AssignmentOperator Expression" to complete Expression。
翻译中文:语法错误,插入“AssignmentOperator表达”来完成表达。

解决的办法:在主函数里面,需要为之前定义的静态成员赋初值。
第一段错误:Test2.i=3;而另一段改为Test2.t;调用Object类的方法也能解决错误。Test2.t.toString();或者Test2 t2=Test2.t; 也能解决。
错误的原因:调用的静态成员变量,及对象,但是没有对其赋值、调用的操作。而这样的行为是没有意义的。所以IDE报错。



作者: 不抛弃不放弃    时间: 2013-11-30 19:29
static必须赋值     难道static还可以只声明不赋值吗   我说的是main函数中
作者: 枫儿    时间: 2013-11-30 19:39
赞一个!
作者: hurryup    时间: 2013-11-30 19:52
Syntax error, insert "AssignmentOperator Expression" to complete Expression两句都是这个错误
作者: 落木萧萧    时间: 2013-11-30 20:40
枫儿 发表于 2013-11-30 19:39
赞一个!

明明就是来拿金币的
作者: Raymond1011    时间: 2013-11-30 20:51
我作为初学者,谬论一下,不对的请多多指正
在你的Test1类的main里面只有执行语句,但是在Test1的类里面并未有Test2类的声明吧。
所以它编译不会通过。

分析的对与不对还请lz以及各位大佬多多指教。
作者: JACK......    时间: 2013-11-30 23:33

你懂得。。。

作者: qq379264347    时间: 2013-11-30 23:59
呵呵,这是编辑源码的初期,还没来得急进行赋值操作那,你就看为什么错误啊。
作者: HAnG    时间: 2013-12-1 00:18
版主都赞了,我能不赞么!!{:soso_e144:}
作者: 汪洋大海    时间: 2013-12-1 00:38
看到编译器的提示才明白。
Test2.t;  不是语句。拿到了对象t,但是你什么也没有做。
Test2.i;  不是语句。拿到了变量i,但是你什么也没有做。

Test3 t = Test2.t;
     int i =Test2.i;
这样写才能通过编译。

作者: 汪洋大海    时间: 2013-12-1 00:38
HAnG 发表于 2013-12-1 00:18
版主都赞了,我能不赞么!!

还不休息?
作者: 刘敏    时间: 2013-12-1 00:39
分号前面必须是表达式, 但Test.t 只是一个变量, Test.t ;  这是个非法语句。  





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