山西大学计算机与信息技术学院
实姓 名 弓彩霞 验报告 专业班级 2013级软件工程四班 实验日期 王红菊 批改日期 2015/6/18 学 号 2013242032 课程名称 Java实验 成 绩 实验名称 一、实验目的 1、掌握java 继承中父类及其子类的定义方法。 2、掌握子类重写父类同名方法的方法。Super 3、掌握接口的用法。 4、 理解 Java 包的组织结构 ; 5、 学会编写带有包结构的程序 ; 6、 掌握包结构下的成员访问控制。 指导教师 实验 3 继承、接口、包的使用与访问控制 二、实验内容 编程题. (一) 定义一个数组,它可以存储一个矩形、一个圆,一个双精度数或一个整数 程序代码: package java第三次实验; public class Object { public static void main(String[] args) { Object shape[] = new Object[10]; shape[0] = new Rectangle(2,3); shape[1] = new Circle2(2); //创建一个Circle类型。 shape[2] = new Integer(3); shape[3] = new Double(1.0); for(int i =0;i<4;i++) { if((shape[i]) instanceof Circle2) ((Circle2)shape[i]).show(); else if((shape[i]) instanceof Rectangle) ((Rectangle)shape[i]).show();//这里恢复原来的对象类型,用强制类型转换。
else if((shape[i]) instanceof Integer) System.out.println(\整数为:\ + shape[i]); else if((shape[i]) instanceof Double) System.out.println(\浮点数为:\ + shape[i]); } } } //定义长方形 class Rectangle{ protected double length,width; Rectangle(double l, double w) { this.length = l; this.width = w; } void show() { System.out.print(\长方形的长为:\ + length); System.out.println(\长方形的宽为:\ + width); } } //定义圆 class Circle2{ protected double r; Circle2(double r) { this.r = r; } void show() { System.out.println(\圆形的半径为:\ + r); } }
运行结果贴图: (二)设计一个名为Triangle的类来扩展GeometricObject类,该类包括: ? 三个名为side1、side2和side3的double数据域表示这个三角形的三条边,它们的默认值是1.0。 ?一个无参构造方法创建默认的三角形。 ?一个能创建带制定side1、side2和side3的三角形的构造方法。 ?所有三个数据域的访问器方法。 ?一个名为getArea()的方法返回这个三角形的面积。 ?一个名为getPerimeter()方法返回三角形的周长。 ?一个名为toString()的方法返回这个三角形的字符串描述,包括三条边的长、面积和周长。 画出这些类的UML图。实现这些类,编写一个测试程序,创建边长为1、1.5和1.颜色为yellow,filled为true的Triangle对象,然后显示它的面积、周长、颜色以及是否被填充。 程序代码: package Java第三次实验; public class GeometricObject {
private String color = \; private boolean filled; private java.util.Date dateCreated; public GeometricObject(){ dateCreated = new java.util.Date(); } public GeometricObject(String color,boolean filled){ dateCreated = new java.util.Date(); this.color = color; this.filled = filled; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public boolean isFilled() { return filled; } public void setFilled(boolean filled) { this.filled = filled;
} public java.util.Date getDateCreated() { return dateCreated; } public void setDateCreated(java.util.Date dateCreated) { this.dateCreated = dateCreated; } @Override public String toString() { return \ + color + \ + filled + \ + dateCreated ; } } package Java第三次实验; public class Triangle extends GeometricObject{ private double side1; private double side2; private double side3; Triangle(){