当前位置:文档之家› Java程序设计基础课程ch11 - 面向对象设计

Java程序设计基础课程ch11 - 面向对象设计


- numberOfYears : int
- loanAmount
: double
- loanDate
: java.util.Date
+ getAnnualInterestRate ()
: double
+ setAnnualInterestRate (double annualInterestRate) : void
AirPlane
+ takeOff () + land () + fly ()
Bird
+ takeOff () + land () + fly () + buildNest () + layEggs () + eat ()
Superman
+ takeOff () + land () + fly () + leapBuilding () + stopBullet () + eat ()
- street : String - city : String - state : String - zip : String
1
1
+ getStreet ()
: String
+ setStreet (String street) : void
+ getCity ()
: String
+ setCity (String city) : void
Java程序设计
YANGLIN@BNUITC
第11章 面向对象设计
学习目标
了解软件开发过程 掌握类之间的关系:关联、聚合、组合、继承、实现 学习如何分析类和类之间的关系 了解类的设计原则 了解如何使用顺序图和状态图描述动态行为
软件的开发过程
瀑布模型
需求分析 理解问题域,编写需求规格说明书 架构设计 将系统分解成子系统和部件,并标识它们之间的关系 将子系统和部件分解成类,并标识类之间的关系 详细设计
: double
+ totalPayment ()
: double
+ getLoanDate ()
: java.util.Date
Borrower
1
1 - loan : Loan
+ ห้องสมุดไป่ตู้etLoan ()
: Loan
+ setLoan (Loan loan) : void
+ toString ()
使用编程语言将设计转换成代码 编码实现 测试代码是否符合要求 测试
将程序安装在到实际工作环境中运行 部署 修改和改进程序 维护
关系
类与类之间的关系
关联关系 聚合关系 组合关系 继承关系
类与接口之间的关系
实现关系
关联关系
关联关系(association)是一种通用的二元关系,描 述两个类之间的活动。关联关系通常表现为类的数据 字段。
+ getNumberOfYears ()
: int
+ setNumberOfYears (int numberOfYears)
: void
+ getLoanAmount ()
: double
+ setLoanAmount (double loanAmount)
: void
+ monthlyPayment ()
Person
- name : Name
1 + getName ()
: Name
+ setName (Name name)
: void
+ getAddress ()
: Address
+ setAddress (Address address) : void
+ toString ()
: String
Address
+ getState ()
: String
+ setState (String state) : void
+ getZip ()
: String
+ setZip (String zip) : void
+ getFullAddress ()
: String
Loan
- annualInterestRate : double
Course
- classList : Student[] - faculty : Faculty
0..* 学习
0..3 教授
5..60 Student
1 Faculty
自关联
同一个类的对象间存在关联,称自关联。例如,一个 人有一个领导。
0..*
Person - supervior : Person
1
组合
Publiser
Consultant * *
聚合
继承关系
继承关系(inheritance)表示is-a的关系。
Person
Student
Faculty
实现关系
实现关系(realization)表示类和接口之间的关系。
Flyer
+ takeOff () + land () + fly ()
类的设计
标识系统中的类 描述每个类的属性和方法 建立类之间的关系 编写类的代码
例 设计贷款的类模型
Name
- firstName : String - middleName : char - lastName : String
+ getFirstName ()
: String
1
+ setFirstName (String firstName) : void
领导 1
聚合和组合
聚合关系(aggregation)是一种特殊的关联关系,表 示整体与部分之间的关系,即has-a的关系。
组合关系(composition)是聚合关系的一种特殊形式, 表示部分强烈依赖于整体,一个对象在某一时刻只能 属于一个整体的一部分,整体负责部分的创建和销毁。
Magazine 0..*
Course
- classList : Student[] - faculty : Faculty
0..* 学习
0..3 教授
5..60 Student - courseList : Course[]
1 Faculty - courseList : Course[]
单向关联
如果学生或教师不需要知道课程的信息,可以去掉 courseList域,形成单向关联。
+ getMiddleName ()
: char
+ setMiddleName (char middleName) : void
+ getLastname ()
: String
+ setLastName (String lastName) : void
+ getFullName ()
: String
相关主题