黑马程序员技术交流社区
标题:
分享下刚才打代码中遇到的一些低级错误,希望大家多学习,以后打代码时多注意
[打印本页]
作者:
疲劳的小马
时间:
2014-2-20 13:17
标题:
分享下刚才打代码中遇到的一些低级错误,希望大家多学习,以后打代码时多注意
首先提供一下刚才回答别人帖子的网址:
http://bbs.itheima.com/forum.php ... peid%26typeid%3D332
,我把楼主的代码补齐,想运行一下,却发生了很多莫名其妙的错误。发下补全后正确的代码:
class A
{
int x = 1;
class B
{
int x = 2;
void func()
{
int x = 3;
System.out.println("A的X为:"+A.this.x+" B的X 为:"+B.this.x+" func的X为:"+this.x);
}
}
void show()
{
new B().func();
//B b=new B();
//b.func();
}
}
class Demo
{
public static void main(String[] args)
{
new A().show();
//A a=new A();
//a.show();
}
}
//[运行结果]A的X为:1 B的X为:2 func的X为:2
复制代码
说下错误:①asd.java:17: 需要 <标识符>
pubolic static void main()
^
1 错误,这个很低级,public写错了
②改完后编译,asd.java:19: 找不到符号
符号: 方法 func()
位置: 类 A
new A().func();
^
1 错误,这个我找了半天,原来是粗心,没看见func()是类B里的方法,由于内部类必须得创建内部类本类对象进行调用,改成new B().func();
③asd.java:29: 需要 <标识符>
}s
^
asd.java:30 进行语法解析时已达到文件结尾
}→
^
2 错误
这个更低级,主函数括号外多写了个S
④剩下的就是让我郁闷了很久的,编译时没错误,运行时总是出现这一句:
Exception in thread "main" java.lang.NoSuchMethodError:main
我知道这个错误是说“没有相匹配的方法错误”但是以前没遇到过,怎么都找不出来,对着代码看了n久,发现我的主函数所在的类的类名也是B,与A中的内部类名相同,以为终于找到错误的源头,赶紧把B改成Demo,结果一运行还是出现这讨厌的语言:Exception in thread "main" java.lang.NoSuchMethodError:main,我于是继续看啊看,过了n久。。终于发现一个让我郁闷不能再郁闷的问题,大家看我上面的错误第一个:pubolic static void main()是这个对吧,main()里面什么都没写!!应该是main(String[] args),终于找到!!赶紧编译运行,终于成功,泪奔啊。。。后来成功后,又无聊把主函数所在的Demo类的类名改成B,运行,照样成功,虽然与A类的内部类名相同,但是照样成功。。不知道为什么。。。
写了这么多,就是想让大家看到这三个低级错误,并且记住这三个异常,不要在犯我一样的错误。
作者:
kkopopo
时间:
2014-2-20 14:28
感谢!感谢!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2