《程序设计实践I》
题目: 实现Comparable接口的Circle类
实践二 面向对象程序设计实践
一、实践目的
1.掌握类的定义,对象的创建。
2.掌握实现封装、继承、多态的方法,掌握各种修饰符的使用。 3.掌握将对象数组作为方法的参数和返回值。
4.掌握抽象类与接口的概念及实现,理解动态绑定机制。 5.掌握通过组合与继承,实现代码可复用。
二、实践要求
综合使用封装、继承、多态、抽象类与接口、组合及继承等面向对象知识,给出所选项目的面向对象设计与实现。
三、项目需求
所选项目名称:实现Comparable接口的Circle类 可以访问该圆的颜色,是否填充颜色及创建的日期,同时还可以查询半径为任意值的周长与面积。 四、项目设计方案
实现Comparable接口的Circle类
几何对象有许多共同的属性和行为,都可以是用某种颜色画出
来的、填充的或不填充的。这样,一个通用类GeometricObject可以用来建该对象,这个类包括属性color和filled,以及适用于这些属性的get和set方法。由于圆是一个特殊类型的几何对象,所以它和其他几何对象共享共同的属性和方法,因此,通过扩展GeometricObject
2
类来定义Circle类,同理,Rectangle也可以声明为GeometricObject的子类。
a. 运用继承和多态
GeometricObject -filled: boolean -color: String -dateCreated: java.util.Date +GeometricObject() +GeometricObject(color:String, filled:Boolean) +getColor():String +setColor(color: String):void +isFilled():Boolean -radius:double
b. 或者是运用抽象类和接口
3
+setFilled(filled:boolean):void +getDateCreated():java,util.Date +toString():String Circle -width:double -height:double +Rectangle() Rectangle +Circle() +Circle(radius:double) +Circle(radius:double,color:String, filled:boolean) +getRadius():double +setRadius(radius:double):void +getArea():double +getPerimeter():double +getDiameter():double +printCircle():void +Rectangle(width:double,height:double) +Rectangle(width:double,height:double color:String,filled:Boolean) +getWidth():double +setWidth(width:double):void +getHeight():double +setHeight(height:double):void +getArea():double +getPerimeter():double GeometricObject -filled: boolean -dateCreated: java.util.Date #GeometricObject() filled:Boolean) -color: String #GeometricObject(color:String, +getColor():String +setColor(color: String):void +isFilled():Boolean +setFilled(filled:boolean):void +toString():String +getDateCreated():java,util.Date +getArea():double +getPerimeter():double -radius:double Circle -width:double -height:double +Rectangle() +Rectangle(width:double,height:double) +Rectangle(width:double,height:double color:String,filled:Boolean) +getWidth():double +setWidth(width:double):void +getHeight():double +setHeight(height:double):void +getArea():double +getPerimeter():double Rectangle +Circle() +Circle(radius:double) +Circle(radius:double,color:String, filled:boolean) +getRadius():double +setRadius(radius:double):void +getArea():double +getPerimeter():double +getDiameter():double +printCircle():void 五、核心算法详细设计 实现Comparable接口的Circle类
a、运用继承和多态
1、GeometricObject类 1)成员变量
? color是string型变量,filled是boolean型变量,dateCreated 是Date型变量。它们的值分别确定颜色、是否填充颜色、创建日
4
期
2)构造方法
GeometricObject()和GeometricObject(String, boolean) 3)方法
? getColor()返回颜色的值
? setColor(String)设置返回颜色,并且数值类型为String型 ? isFilled()返回是否填充颜色的值
? setFilled(boolean)设置是否填充颜色,并且数值类型为boolean ? getDateCreated()返回日期的值
? toString()返回颜色、是否填充颜色和日期的值 2、Circle类
1)成员变量
? radius是double型变量,是确定半径。 2)构造方法
Circle()、Circle(double)和Circle(double, String, boolean) 3)方法
? getRadius()返回半径的值
? setRandius(double)设置半径,并且值的类型为double ? getArea()返回面积的值 ? getDiameter()返回直径的值 ? getPerimeter()返回周长的值 ? printCircle()显示日期的半径的值
5