03-06组合与聚合_编程

编程

请使用组合或聚合模式解决如下问题:

已知有如下类:

// 可以把公历转换为中国农历的日期表达。

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

03-06组合与聚合_编程的相关文章

重新认识java(四) — 组合、聚合与继承的爱恨情仇

有人学了继承,认为他是面向对象特点之一,就在所有能用到继承的地方使用继承,而不考虑究竟该不该使用,无疑,这是错误的.那么,究竟该如何使用继承呢? java中类与类之间的关系 大部分的初学者只知道java中两个类之间可以是继承与被继承的关系,可是事实上,类之间的关系大体上存在五种-继承(实现).依赖.关联.聚合.组合. 接下来,简单的分析一下这些关系. 继承(实现) 对于类来说,这种关系叫做继承,对于接口来说,这种关系叫做实现.继承上一篇文章已经详细的讲解过了,至于实现,我想大家也都知道是怎么回事

UML依赖,关联,组合,聚合,继承,实现的关系

这几天在看netty的源码想根据源码把netty的UML架构图跟时序图画出来,所以就复习了一下大学时代的一些UML基础知识,首先,我们要搞清楚以下几个概念: 继承:这个就不要多说了,写过java代码的人一般都很容易理解继承这个概念. 实现:这个可能有些初学者有些模糊,因为大家一般会认为实现跟继承是一样的概念,在java里面 继承使用的关键字是extends而实现使用的关键字是implements.说到这里我想大家都明白了吧. 依赖:在理解这个概念之前我们先去百度百科里面看一下依赖的中文解释:依靠

组合与聚合

一直以来对组合与聚合理解较为模糊,现做记录. [转]http://www.blogjava.net/lukangping/archive/2010/08/01/327693.html 聚合:表示两个对象之间是整体和部分的[弱关系],部分的生命周期可以超越整体.如电脑和鼠标,就可以用一下图形表示: 组合:表示两个对象之间是整体和部分的[强关系],部分的生命周期不能超越整体,或者说不能脱离整体而存在.组合关系的“部分”,是不能在整体之间进行共享的.如人和眼睛的关系: 另外两个比较重要的关系是关联和依

Java基础06 组合(转载)

在一个新类的定义中使用其他对象.这就是组合(composition).组合是在Java中实现程序复用(reusibility)的基本手段之一. 组合与"has-a" 一个对象是另一个对象的数据成员.比如我们看之前提到的充电电筒的例子: 一个充电电筒中的电池.LED灯.按钮…… 都可以是一个对象.我们可以定义一个Battery类来定义和产生电池对象.而在充电电筒的类定义中,可以用一个电池对象作为其数据成员,来代表电池部分的状态. 我们下面定义一个Battery类,并用power来表示其电

03-01自顶向下风格_编程

设计程序 在中文Windows环境下,控制台窗口中也可以用特殊符号拼出漂亮的表格来. 比如: ┌─┬─┐ │   │  │ ├─┼─┤ │   │  │ └─┴─┘ 其实,它是由如下的符号拼接的: 左上 = ┌ 上 = ┬ 右上 = ┐ 左 = ├ 中心 = ┼ 右 = ┤ 左下= └ 下 = ┴ 右下 = ┘ 垂直 = │ 水平 = ─ 本题目要求编写一个程序,根据用户输入的行.列数画出相应的表格来. 例如用户输入: 3 2 则程序输出: ┌─┬─┐ │   │  │ ├─┼─┤ │   │ 

组合,聚合,关联,依赖,实现,泛化 ---UML关系

关于设计模式,有兴趣的朋友一起探讨下.我的bitbucket的地址 https://bitbucket.org/hinson0/pattern 组合,聚合,关联,依赖,实现,泛化 ---UML关系

UML中常见关系详解(泛化、实现、依赖、关联、组合、聚合)

UML中类与类,已经类与接口,接口与接口的关系有:泛化(generalization),关联(association),依赖(dependency),实现(realization)这几种. 泛化(generalization)关系时指一个类(子类.子接口)继承另外一个类(称为父类.父接口)的功能,并可以增加它自己新功能的能力,继承是类与类或者接口与接口最常见的关系,在Java中通过关键字extends来表示. 实现(realization)是指一个class实现interface接口(一个或者多

关联与依赖以及组合与聚合之间的区别

最近在准备面试题,看到个问题是关联与依赖之间的关系,脑海里有印象,但还是比较模糊,百度了一番,将结果记录一下,以便后用. 聚合是表示两个对象之间是整体和部分的弱关系,部分的生命周期可以超越整体,比如电脑与鼠标就是典型的聚合关系,用UML图表示如下: 组合是表示两个对象之间是整体与部分的强关系,部分的生命周期不能超越整体,或者说部分不能脱离整体而单独存在,组合关系中的"部分"是不能共享的.人和眼睛就是典型的组合关系,用UML图表示如下: 组合和聚合都是在一个类中包含另一个类的对象,形式上

03 Python 基础 - 《Python 核心编程》

?? 语句和语法 ?? 变量赋值 ?? 标识符和关键字 ?? 基本风格指南 ?? 内存管理 ?? 第一个 Python 程序 3.1语句和语法 Python 语句中有一些基本规则和特殊字符:    ?? 井号(#)表示之后的字符为 Python 注释    ?? 换行 (\n) 是标准的行分隔符(通常一个语句一行)    ?? 反斜线 ( \ ) 继续上一行    ?? 分号 ( ; )将两个语句连接在一行中    ?? 冒号 ( : ) 将代码块的头和体分开    ?? 语句(代码块)用缩进块