为了账号安全,请及时绑定邮箱和手机立即绑定

求问为什么编译错误了

582889700001352c05000226.jpg

582889700001ad6f05000278.jpg

第一张是老师的,第二张图是我自己做的。为什么我的就有错了。

错误显示No enclosing instance of type MethodDemo1 is accessible. Must qualify the allocation with an enclosing instance of type MethodDemo1 (e.g. x.new A() where x is an instance of MethodDemo1).       办法是在class A前面加一个static就可以解决报错

但为什么老师就可以直接 A a1 = new A();不报错呢


正在回答

1 回答

main方法是静态方法,静态方法不能直接调用动态方法,class A需要是静态的.

老师的是两个不同的类,你这个A是MethodDemo1的内部类.

0 回复 有任何疑惑可以回复我~
#1

慕粉1474367326 提问者

了解了,非常感谢!
2016-11-14 回复 有任何疑惑可以回复我~
#2

慕粉1474367326 提问者

放在外面作为外部类,就默认是静态了吗?
2016-11-14 回复 有任何疑惑可以回复我~
#3

超级省电侠4405474 回复 慕粉1474367326 提问者

不是的,建议你去理解一下这部分基础:内部类对象的外围类引用被设置为创建内部类对象的方法中的this引用,你在main()方法中创建的对象A a1= new A();由于main()方法是静态方法,静态方法是没有this引用的,因此报错.
2016-11-15 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

求问为什么编译错误了

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信