【发布时间】:2014-08-06 20:13:28
【问题描述】:
我正在做一个过去的学校作业,它是关于一个带有子类时钟的微波应用程序。不知何故,我对自己的代码感到困惑,完全迷失了方向。有人可以帮我解决这些吗?谢谢!
首先是时钟类。
class Clock extends Microwave {
private int hour;
private int minute;
private int second;
Clock()
{
hour = 0;
minute = 0;
second = 0;
}
Clock(int h, int m, int s)
{
hour = h;
minute = m;
second = s;
}
public int getHour()
{
return hour;
}
public int getMin()
{
return minute;
}
public int getSec()
{
return second;
}
public String toString()
{
return (String.valueOf(second));
}
protected void tick()
{
second++;
if(hour == 23 && minute == 59 && second == 59)
{
hour = 0;
minute = 0;
second = 0;
} else if(minute == 59 && second == 59)
{
hour++;
minute = 0;
second = 0;
} else if(second == 59)
{
minute++;
second = 0;
}
}
}
接下来是父类 Microwave。
class Microwave {
private int maxPower;
private int currentPower;
private Clock theClock;
Microwave()
{
maxPower = 500;
currentPower = 500;
theClock = new Clock();
}
Microwave(int maxp, Clock theClock)
{
maxPower = maxp;
currentPower = maxPower;
theClock = new Clock();
}
public int getCurrentPower()
{
return currentPower;
}
public int getMaxPower()
{
return maxPower;
}
public String getTime()
{
return "The time is " + theClock.getHour() + ":" + theClock.getMin() + ":" + theClock.getSec();
}
protected void cook(int p, int t)
{
if(p < maxPower)
{
currentPower = p;
} else
{
System.exit(0);
}
for(int i = 0; i < t; i++)
{
theClock.tick();
}
}
}
最后是main方法类。
class TestMicrowave
{
public static void main(String []args)
{
Clock c = new Clock(14, 30,30);
Microwave m = new Microwave(750, c);
System.out.println("The microwave is currently at " +
m.getCurrentPower() + " watts and "+ m.getTime());
m.cook(600,45); // should advance time to 14:31:15
System.out.println(m.getTime());
m.cook(800,45); // shoudln't cook as power > maxPower
System.out.println(m.getTime());
}
}
我认为,我在 Microwave 类中的 getTime() 方法有问题,但我不知道它有什么问题。 提前致谢!
【问题讨论】:
-
不是相反吗?我的意思是,微波炉有时钟,但时钟不能做饭:-)
-
时钟不应延长微波。时钟是微波炉的组成部分。
-
这是一个糟糕的任务。绝对没有理由
Clock应该扩展Microwave。一个 Microwave 可能包含一个时钟(它将“组合”它,即包含一个成员。),或者实现一些时钟功能。 -
是的,你们有一个很好的观点,我刚刚意识到。 :S 这项工作是几年前的。
标签: java inheritance extends