Java类的组合
1 package 类的组合; 2 3 public class Clock { 4 private int hour,minute,second;//字段: 保存分秒数据 5 public void set(int h,int m,int s)//方法:设置钟表对象的时间 6 { 7 hour=h; 8 minute=m; 9 second=s; 10 } 11 public void show() //方法:显示时间,显示格式时:分:秒 12 { 13 System.out.println(hour+":"+minute+":"+second); 14 } 15 public Clock() //无参构造方法:将时分秒数据都设为0 16 { 17 hour=0;minute=0;second=0; 18 } 19 public Clock(int h,int m,int s) //有参构造方法:根据参数设置时间 20 { 21 hour=h; 22 minute=m; 23 second=s; 24 25 } 26 public Clock(Clock oldObj)//拷贝构造方法:复制已有对象的时分秒数据 27 { 28 hour=oldObj.hour; 29 minute=oldObj.minute; 30 second=oldObj.second; 31 } 32 public static void main(String[] args) { 33 // TODO Auto-generated method stub 34 Clock obj1=new Clock(); 35 Clock obj2=new Clock(9,30,15); 36 Clock obj3=new Clock(obj2); 37 obj1.set(8, 30, 15); 38 obj1.show(); 39 obj2.show(); 40 obj3.show(); 41 } 42 43 } 44 45 46 package 类的组合; 47 48 public class DualClock {//双时区钟表:含有对象字段,属于组合类 49 public Clock c1,c2; //对象字段:两个Clock类的钟表对象,设为公有成员 50 public void setDual(int h,int m,int s) //设置方法:按参数设置c1,c2的时间 51 { 52 c1.set(h, m, s);c2.set(h+1, m, s); //假设设为两个连续的时区 53 } 54 public DualClock()//组合类需要定义自己的构造方法 55 { 56 c1=new Clock();//组合类需要使用运算符new创建对象字段 57 c2=new Clock(); 58 } 59 public static void main(String[] args) { 60 // TODO Auto-generated method stub 61 DualClock obj=new DualClock(); 62 obj.c1.set(10, 15, 30); 63 obj.c1.show(); 64 } 65 66 } 67 68 package 类的组合; 69 70 public class DateClock {//包装类 71 private Clock c;//对象字段:被包装的原始钟表(clock)对象c 72 //以下代码都是为了对钟表对象c进行包装,为其增加日历功能 73 private int year,month,day;//增加字段:保存年月日数据 74 public void setDate(int y,int m,int d) 75 { 76 //方法:设置日期 77 year=y; 78 month=m; 79 day=d; 80 } 81 public void show() 82 { 83 //方法:显示日期时间 84 System.out.println(year+"-"+month+"-"+day);//先显示日期 85 c.show();//再显示时间 86 } 87 public Clock getClock() //方法:获得包装前的原始钟表对象c 88 { 89 return c; 90 } 91 public DateClock(Clock obj) //构造方法:传递被包装的钟表对象 92 { 93 c=obj; //对象字段c直接引用传递过来的钟表对象obj 94 } 95 } 96 97 package 类的组合; 98 99 public class DateClockTest {//主类 100 101 public static void main(String[] args) { 102 Clock cObj=new Clock(10,30,15);//定义一个钟表对象cobj 103 //对钟表对象cobj进行包装,得到一个带日历的钟表dcobj 104 DateClock dcObj=new DateClock(cObj); 105 dcObj.setDate(2020, 10, 25);//设置dcobj的日期 106 dcObj.show();//显示dcobj的日期和时间 107 } 108 109 }
道阻且长,行则将至

浙公网安备 33010602011771号