编程
请使用组合或聚合模式解决如下问题:
已知有如下类:
// 可以把公历转换为中国农历的日期表达。
class ChinaDate
{
public ChinaDate(java.util.Date d)
{
//...
}
public toString()
{
// 复杂算法
return "五月初三"; //仅仅是模拟,实际上需要复杂计算过程
}
}
请写一个 MyDate类,要求具有Date类的全部能力(已废弃功能不计),并且在打印时,输出类似如下格式:
1998年6月8日(五月初三)
注意:要求不能使用继承的方式。
import java.util.Date; class ChinaDate { public ChinaDate(Date d) { // .... } public String toString() { // ... 复杂逻辑 return "五月初三"; // 仅仅是模拟,应该通过复杂逻辑计算 } } class MyDate { private Date date; private ChinaDate ch_date; public MyDate() { date = new Date(); ch_date = new ChinaDate(date); } public String toString() { return new java.text.SimpleDateFormat("yyyy年MM月dd日").format(date) + "(" + ch_date + ")"; } public long getTime() { return date.getTime(); } // 其它任何方法都可仿照完成。 } public class MyA { public static void main(String[] args) { MyDate a = new MyDate(); System.out.println(a); System.out.println(a.getTime()); } }
03-06组合与聚合_编程
时间: 2024-10-15 14:27:44