苹者演大孝 South China Agr icultur al Uni versity 第六章面向对象设计
第六章 面向对象设计
主要内容: ■61软件开发活动 62识别类和对象 ■63静态类成员 64类间关系 ■6.5接口 68方法重载 ■66枚举型类 69测试 ■6.7方法设计 610GU设计 611布局管理器 ■612边框 613容器层次结构
主要内容: ◼6.8 方法重载 ◼6.9 测试 ◼6.10 GUI设计 ◼6.11 布局管理器 ◼6.12 边框 ◼6.13 容器层次结构 ◼ 6.1 软件开发活动 ◼ 6.2 识别类和对象 ◼ 6.3 静态类成员 ◼ 6.4 类间关系 ◼ 6.5 接口 ◼ 6.6 枚举型类 ◼ 6.7 方法设计
61软件开发活动 ■一个软件开发项目包含四个基本开发过程 ◆建立软件需求 ◆软件设计 ◆实现软件设计 ◆软件测试 软件需求 软件需求规定了一个程序必须完成的功能,指明了程 序应当执行的任务,而不是描述如何执行所规定的任 务,通常用一个称为功能说明的文档来描述
◼ 一个软件开发项目包含四个基本开发过程 ◆ 建立软件需求 ◆ 软件设计 ◆ 实现软件设计 ◆ 软件测试 软件需求: 软件需求规定了一个程序必须完成的功能,指明了程 序应当执行的任务,而不是描述如何执行所规定的任 务,通常用一个称为功能说明的文档来描述。 6.1 软件开发活动
苹者演大孝 South China Agr icultur al Uni versity 软件设计:描述了程序将如何完成需求所指定的任务 并定义了程序中的类和对象、类间关系及类之间如何 交互。底层的详细设计将解决各个类的方法如何完成 自己的任务。 软件设计的实现:是编写解决实际问题的源代码的过程。 是将设计转换成某种程序设计语言的行为。 软件测试:是保证软件能解决预定问题,并能够再满足 性能要求的条件下执行任务。测试工作包括针对不同 的输入数据多次运行程序和精确分析程序执行结果
软件设计: 描述了程序将如何完成需求所指定的任务, 并定义了程序中的类和对象、类间关系及类之间如何 交互。底层的详细设计将解决各个类的方法如何完成 自己的任务。 软件设计的实现: 是编写解决实际问题的源代码的过程。 是将设计转换成某种程序设计语言的行为。 软件测试: 是保证软件能解决预定问题,并能够再满足 性能要求的条件下执行任务。测试工作包括针对不同 的输入数据多次运行程序和精确分析程序执行结果
62识别类的和对象 ■面向对象软件设计的基本内容就是确定类,类决 定软件的结构。 ■类可能是java标准类库中的类,也可能是新编写 的类。 ■识别可能的类的方法之一:识别软件需求中所讨 论的实体对象。 ■对象一般是名词。对象提供的服务一般是动词
6.2 识别类的和对象 ◼面向对象软件设计的基本内容就是确定类,类决 定软件的结构。 ◼类可能是java标准类库中的类,也可能是新编写 的类。 ◼识别可能的类的方法之一:识别软件需求中所讨 论的实体对象。 ◼对象一般是名词。对象提供的服务一般是动词
621类的识别方法 A partial requirements document: The user must be allowed to specify each product byl its primary characteristics, including its name an product number If the bar code does not match the product, then an error should be generated to the message window and entered into the error log. The summary report of all transactions must be structured as specified in section 7.A 并非每一个名词都对应这程 序中的一个类
6.2.1 类的识别方法 ◼ A partial requirements document: The user must be allowed to specify each product by its primary characteristics, including its name and product number. If the bar code does not match the product, then an error should be generated to the message window and entered into the error log. The summary report of all transactions must be structured as specified in section 7.A. 并非每一个名词都对应这程 序中的一个类
苹者演大孝 South China Agr icultur al Uni versity ■类代表了一组有类似行为的对象。 ■通常用一个名词给代表对象的类命名。如:学 生、硬币 一个类代表一个实体,根据类可以建立程序所 需要的多个实例。 类识别时候还要处理一个问题:是将某一事物表 示为一个对象还是另一个对象的基本属性。 例如:一个员工的地址表示为一组实例变量还 是保存为一个地址对象
◼类代表了一组有类似行为的对象。 ◼通常用一个名词给代表对象的类命名。如:学 生、硬币 ◼一个类代表一个实体,根据类可以建立程序所 需要的多个实例。 ◼类识别时候还要处理一个问题: 是将某一事物表 示为一个对象还是另一个对象的基本属性。 例如:一个员工的地址表示为一组实例变量还 是保存为一个地址对象
识别类和对象 ■对给定的程序需要,应建立一般类和特殊类之间的一种 合理的解决方案。 ■例如:将房间里面的每一个家用电器都建立一个类,会 给软件设计带来不需要的复杂性。 ■当一个类比较复杂的时候,通常将他分解为多个较小的 类来完成相应的功能
识别类和对象 ◼ 对给定的程序需要,应建立一般类和特殊类之间的一种 合理的解决方案。 ◼ 例如:将房间里面的每一个家用电器都建立一个类,会 给软件设计带来不需要的复杂性。 ◼ 当一个类比较复杂的时候,通常将他分解为多个较小的 类来完成相应的功能
622类职责的分派 ■类职责的分派是软件设计工作的一部分。 ■每个类代表一个具有某些行为的对象,对象的行 为由这个类的方法定义。 ■类的行为所执行的动作体现了程序的功能,通常 使用动词来给行为和完成行为的方法命名
6.2.2 类职责的分派 ◼类职责的分派是软件设计工作的一部分。 ◼每个类代表一个具有某些行为的对象,对象的行 为由这个类的方法定义。 ◼类的行为所执行的动作体现了程序的功能,通常 使用动词来给行为和完成行为的方法命名
63静态类成员变量 静态方法可以通过类名而不是对象来调用。 ■例如:Math类的方法是静态的 result Math sgrt(25) ■变量都可以具有具有静态属性。 ■类设计中的一个关键环节,就是决定是否将一个 方法或者变量声明为静态属性。 ■声明静态成员使用 static修饰符
6.3 静态类成员变量 ◼静态方法可以通过类名而不是对象来调用。 ◼ 例如: Math 类的方法是静态的 result = Math.sqrt(25) ◼变量都可以具有具有静态属性。 ◼类设计中的一个关键环节,就是决定是否将一个 方法或者变量声明为静态属性。 ◼声明静态成员使用 static 修饰符