Java 关于大括号的一个问题

classRobotextendsPerson{privateclassMachineHeartimplementsMachine{publicvoidrun(){Sys... class Robot extends Person
{
private class MachineHeart implements Machine
{
public void run()
{
System.out.println("heart run");
}
}
Machine getMachine()
{
return new MachineHeart();
}
}

在定义Machine getMachine()的时候,已经不在定义MachineHeart类的大括号里了。这是问什么啊。ps:刚学java,菜鸟。
展开
 我来答
搞个号真难
2011-03-05 · TA获得超过131个赞
知道小有建树答主
回答量:82
采纳率:0%
帮助的人:80.9万
展开全部
该类为内部类
想要外部直接调用应该使用如下代码:
Robot robot = new Robot();
Robot.MachineHeart machine = robot.new MachineHeart();
machine.getMachine();
注意的是这个成员不能为private
楼上的回答让人一阵郁闷呀
(这样写存在一点问题的 new MachineHeart()返回的是MachineHeart
对象,而你的返回值是Machine 对象,类型不正确的。)
MachineHeart 类实现了Machine 接口为什么不能返回.....
怀疑知不知到接口知不知道多态........
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangchaochao57
2011-03-06
知道答主
回答量:61
采纳率:0%
帮助的人:17.8万
展开全部
那是内部类 你可以把它抽出来写2个类
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nagioswork
2011-03-05 · TA获得超过304个赞
知道小有建树答主
回答量:249
采纳率:0%
帮助的人:213万
展开全部
MachineHeart 是Robot 类的内部类
追问
如果不是内部类,可以吗,如下
private class MachineHeart
{
public void run()
{
System.out.println("heart run");
}
}

Machine getMachine()
{
return new MachineHeart();
}
追答
这样写存在一点问题的 new MachineHeart()返回的是MachineHeart 
对象,而你的返回值是Machine 对象,类型不正确的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式