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

为什么这段使用静态内部类的程序会出错?求解答

http://img1.sycdn.imooc.com//54d8cefc0001538205740299.jpg

package com.imooc.second;

public class Telephone {
	int num = 100;
	public Telephone(){
		System.out.println("com.imooc.second.Telephone");
	}
	public static class SInner(){
		
		public void test(){
			System.out.println(new Telephone().num);
		}
	}
}
如图所示,图中错误有两处,为什么会出现错误呢,完全是按照教程中左侧的代码来写的,还有如何修改啊?


正在回答

4 回答

类名SInner后面的小括号是几个意思?

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

_天微凉_ 提问者

非常感谢!
2015-02-10 回复 有任何疑惑可以回复我~
#2

_天微凉_ 提问者

我还想问一下,上面的代码改正过后,如何调用内部类的test()方法呢?哥能不能帮忙敲下代码
2015-02-10 回复 有任何疑惑可以回复我~
#3

ENCOUTER 回复 _天微凉_ 提问者

直接创建 SInner 的一个对象 然后调用test 方法啊
2015-04-03 回复 有任何疑惑可以回复我~
在外部类中定义一个主方法即可 静态内部类不需要外部类对象就可以直接创建 

public class TelePhone {
int num = 100;
public TelePhone()
{
System.out.println("telephone!");
}
public static class SInner{
public void test()
{
System.out.println(new TelePhone().num);
}
}
public static void main(String[] args) {
SInner sInner = new SInner();
sInner.test();
}
}


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

_天微凉_ 提问者

受教了,非常感谢
2015-02-10 回复 有任何疑惑可以回复我~

楼上已经解决了你的问题.  定义类需要加()吗?

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

_天微凉_ 提问者

同样也非常感谢,只不过最佳答案只能有一个,所以... 我还想问一下,上面的代码改正过后,如何调用内部类的test()方法呢?哥能不能帮忙敲下代码
2015-02-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530559    人
  • 解答问题       6091    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

为什么这段使用静态内部类的程序会出错?求解答

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