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,菜鸟。 展开
{
private class MachineHeart implements Machine
{
public void run()
{
System.out.println("heart run");
}
}
Machine getMachine()
{
return new MachineHeart();
}
}
在定义Machine getMachine()的时候,已经不在定义MachineHeart类的大括号里了。这是问什么啊。ps:刚学java,菜鸟。 展开
展开全部
该类为内部类
想要外部直接调用应该使用如下代码:
Robot robot = new Robot();
Robot.MachineHeart machine = robot.new MachineHeart();
machine.getMachine();
注意的是这个成员不能为private
楼上的回答让人一阵郁闷呀
(这样写存在一点问题的 new MachineHeart()返回的是MachineHeart
对象,而你的返回值是Machine 对象,类型不正确的。)
MachineHeart 类实现了Machine 接口为什么不能返回.....
怀疑知不知到接口知不知道多态........
想要外部直接调用应该使用如下代码:
Robot robot = new Robot();
Robot.MachineHeart machine = robot.new MachineHeart();
machine.getMachine();
注意的是这个成员不能为private
楼上的回答让人一阵郁闷呀
(这样写存在一点问题的 new MachineHeart()返回的是MachineHeart
对象,而你的返回值是Machine 对象,类型不正确的。)
MachineHeart 类实现了Machine 接口为什么不能返回.....
怀疑知不知到接口知不知道多态........
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那是内部类 你可以把它抽出来写2个类
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
MachineHeart 是Robot 类的内部类
追问
如果不是内部类,可以吗,如下
private class MachineHeart
{
public void run()
{
System.out.println("heart run");
}
}
Machine getMachine()
{
return new MachineHeart();
}
追答
这样写存在一点问题的 new MachineHeart()返回的是MachineHeart
对象,而你的返回值是Machine 对象,类型不正确的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询