没有合适的资源?快使用搜索试试~ 我知道了~
Java实验3Java实验3.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
![star](https://csdnimg.cn/release/downloadcmsfe/public/img/star.98a08eaa.png)
温馨提示
![preview](https://dl-preview.csdnimg.cn/85596829/0001-221f14ca070964d2a19b84eeba0c8aa3_thumbnail-wide.jpeg)
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
试读
18页
Java实验3Java实验3
资源推荐
资源详情
资源评论
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![](https://csdnimg.cn/release/download_crawler_static/85596829/bg1.jpg)
实验 3
继承和多态
一、 实验目的:
1、 学习和使用类的继承。
2、 掌握关键字 super 的意义和用法。
3、 学习掌握类的方法覆盖技术。
4、 熟悉 Object 类,以及它提供给子类的方法 equals、toString、clone。
5、 学习掌握修饰符 protected 和 final 的用法。
6、 学习掌握抽象类的概念和使用方法。
7、 学习掌握多态性和动态绑定的概念,学习使用多态进行程序设计。
8、 学习掌握接口的概念和定义接口的方法。
9、 学习使用 Cloneable 接口和 clone 方法进行对象内容的复制。
10、 理解浅复制和深复制的概念,掌握覆盖 clone 方法进行对象内容深
复制的技术。
二、 实验任务:
1、 使用 Java SDK 建立一个非图形化的标准 Java 程序学习和使用类的继承、
掌握关键字 super 的意义和用法、掌握类的方法覆盖技术、熟悉 Object
类,以及它提供给子类的方法 equals、toString、clone、学习掌握抽象类
的概念和使用方法、学习掌握多态性和动态绑定的概念,学习使用多态
进行程序设计。程序要求:
(1) 首先创建一个类家族,其中抽象类几何图形类 GeometricObject 为
父 类 , 圆 类 Circle 和 矩 形 类 Rectangle 为 子 类 。 几 何 图 形 类
GeometricObject 中定义保护型字符串变量 color,表示图形的颜色;
该类要具备构造方法和两个抽象方法 findArea 和 findPerimeter,
抽象方法 findArea 求图形面积,抽象方法 findPerimeter 求图形周
长。
(2) Circle 类和 Rectangle 类是 GeometricObject 类的子类,其中应实现
父类的抽象方法。
(3) 创建静态方法 equalArea,用来比较图形的面积(不是以上三个类
的成员方法)。方法名称如下:
static boolean equalArea(GeometricObject object1, GeometricObject
object2)
(4) 创建静态方法 displayGeometricObject,用来显示几何对象的信息
(不是以上三个类的成员方法)。方法名称如下:
static void displayGeometricObject(GeometricObject object)
(5) 程序主方法中创建两个几何对象,一个圆和一个矩形,并用
GeometricObject 类的引用变量引用它们,调用 equalArea 比较两
个对象的面积是否相等,并调用 displayGeometricObject 方法显示
对象信息。
2、 使用 Java SDK 建立一个非图形化的标准 Java 程序,进一步学习多态特
性以及接口的概念和利用接口实现多态的方法。程序要求如下:
(1) 首先创建圆类 Circle 和圆柱体类 Cylinder,其中 Circle 类是父类,
![](https://csdnimg.cn/release/download_crawler_static/85596829/bg2.jpg)
Cylinder 类是子类;
(2) 创建接口 Comparable,其中包含一个抽象方法 compareTo,用来
比较对象的大小。抽象方法 compareTo 的形式如下:
public int compareTo(Object o);
(3) 创 建 类 ComparableCircle , 该 类 为 Circle 类 的 子 类 , 并 实 现
Comparable 接口。
(4) 创建类 ComparableCylinder,该类为 Cylinder 类的子类,并实现
Comparable 接口。
(5) 创建通用类 Max,其中包含通用方法 max,只要月一个类实现了
Comparable 接口,就可以使用 max 方法返回两个对象中较大的一
个。Max 方法的方法名称为:
public static Comparable max(Comparable o1, Comparable o2)
(6) 程序的主方法中分别创建两个 ComparableCircle 类对象和两个
ComparableCylinder 类对象,并分别以它们为参数调用 max 方法,
返回两个对象中面积较大的一个。
3、 使用 Java SDK 建立一个非图形化的标准 Java 程序,进一步深入学习多
态特性以及利用 Cloneable 接口和 clone 方法实现对象内容的拷贝,并学
习消除浅拷贝(浅复制)的方法。程序要求如下:
(1) 创建 Circle 类,表示圆;
(2) 创建 Name 类,表示人名,其中包含三个 String 类型的数据成员:
firstName,middlName 和 lastName。
(3) 创建 CloneableCircle 类,CloneableCircle 类是 Circle 类的子类,
并实现了 Cloneable 接口。要求 CloneableCircle 类中有一个 Name
类型的数据成员 creator,代表圆对象的创建者姓名。
(4) 在 CloneableCircle 类 中 实 现 clone 方 法 , 以 实 现 两 个
CloneableCircle 类对象内容的克隆。要求实现对象内容深拷贝(深
复制)。
(5) 为了实现 CloneableCircle 类对象的深拷贝,Name 类也应该实现
Cloneable 接口,并实现 clone 方法。
(6) 程序的主方法中使用 clone 方法完成两个 CloneableCircle 类对象
的深拷贝。
三、 实验步骤:
1、 使用 Windows 写字板编辑类 GeometricObject,源程序如下:
public abstract class GeometricObject
{
protected String color;
protected double weight;
// Default construct
protected GeometricObject()
{
color = "white";
weight = 1.0;
}
![](https://csdnimg.cn/release/download_crawler_static/85596829/bg3.jpg)
// Construct a geometric object
protected GeometricObject(String color, double weight)
{
this.color = color;
this.weight = weight;
}
// Getter method for color
public String getColor()
{
return color;
}
// Setter method for color
public void setColor(String color)
{
this.color = color;
}
// Getter method for weight
public double getWeight()
{
return weight;
}
// Setter method for weight
public void setWeight(double weight)
{
this.weight = weight;
}
// Abstract method
public abstract double findArea();
// Abstract method
public abstract double findPerimeter();
}
2、 使用 Windows 写字板编辑抽象类 GeometricObject 的派生类 Circle,源程
序如下:
public class Circle extends GeometricObject
{
protected double radius;
剩余17页未读,继续阅读
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
- m0_641492712023-11-23感谢资源主的分享,很值得参考学习,资源价值较高,支持!
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
omyligaga
- 粉丝: 54
- 资源: 2万+
![benefits](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-1.c8e153b4.png)
下载权益
![privilege](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-2.ec46750a.png)
C知道特权
![article](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-3.fc5e5fb6.png)
VIP文章
![course-privilege](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-4.320a6894.png)
课程特权
![rights](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-icon.fe0226a8.png)
开通VIP
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)