试题引出:建立一个时钟。
以下算不算是对象的交互?
算
package overload;
public class Clock {
int value;
int limit;
Clock(int limit)
{
this.limit=limit;
}
void increase()
{
if(value==limit)
{
value=0;
}
else
value++;
}
int getvalue()
{
return value;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Clock min=new Clock(60);
Clock hour=new Clock(24);
for(;;)
{min.increase();
if(min.getvalue()==min.limit)
{
min.value=0;
hour.increase();
if(hour.getvalue()==hour.limit)
hour.value=0;
}
System.out.println(hour.getvalue()+":"+min.getvalue());
}
}
}
以下算不算对象的交互
算
package overload;
public class Display {
private Clock min=new Clock(60);
private Clock hour=new Clock(24);
void clock_start()
{
while(true)
{
min.increase();
if(min.getvalue()==min.limit)
{ min.value=0;
hour.increase();
}
if(hour.getvalue()==hour.limit)
{
hour.value=0;
}
System.out.printf("%02d:%02d\n",hour.value,min.value);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Display cl=new Display();
cl.clock_start();
}
}
package overload;
public class Clock {
public int value;
public int limit;
public Clock(int limit)
{
this.limit=limit;
}
public void increase()
{
if(value==limit)
{
value=0;
}
else
value++;
}
public int getvalue()
{
return value;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
两种交互有什么不同?
1
第一种是在一个类中实现交互,第二种是在两个类中国实现交互,核心代码是一样的。
(第二种:clock类负责定义类的基本属性,diaplay负责创建两个对象并让这两个对象实现交互,使交互的动作和类属性的定义分离开来。)