西 安 邮 电 大 学 (计算机学院)
面向对象程序设计JAVA
课内实验报告
实验名称: 继承与多态(一)
专业名称: 软件工程 班 级: 软件1501 学生姓名:冀潘婷
学号(8位):04153026 指导教师:张德慧
实验时间:2016.10.21
一. 实验目的及实验环境
1理解子类、父类的概念,掌握子类继承父类的方法。 2理解成员变量的隐藏和方法重写。
3会使用super关键字操作被隐藏的成员变量和方法。 4了解final类和final方法的作用。 5理解protected修饰符的作用和用法。 二. 实验内容
1 基本内容(实验前请及时熟悉如下相关内容)
1)类的继承:定义子类
2)使用super关键字调用父类方法
3)方法覆盖overriding:覆盖Object类的toString( )方法 4)练习使用ArrayList类的方法
5)练习覆盖Object类的equals( )方法
2 综合实验:
2.1 (Y. Daniel Liang英文版八版P403:11.1) (The Triangle class) Design a class named Triangle that extendsGeometricObject. The class contains:
■ Three double data fields named side1, side2, and side3 with default values1.0 to denote three sides of the triangle.
■ A no-arg constructor that creates a default triangle.
■ A constructor that creates a triangle with the specified side1, side2, andside3. ■ The accessor methods for all three data fields.
■ A method named getArea() that returns the area of this triangle.
■ A method named getPerimeter() that returns the perimeter of this triangle. ■ A method named toString() that returns a string description for the triangle. For the formula to compute the area of a triangle, see Exercise 2.21. The toString()method is implemented as follows:
return \Draw the UML diagram for the classes Triangle and GeometricObject. Implement the class. Write a test program that creates a Tri
angle object withsides 1, 1.5, 1, color yellow and filled true, and displays the area,perimeter, color, and whether filled or not. (不要求画出UML图)
2.2 (Y. Daniel Liang英文版八版P403:11.2) (The Person, Student, Employee, Faculty, and Staff classes) Design aclass named Person and its two subclasses named Student and Employee.
Make Faculty and Staff subclasses of Employee. A person has a name,address, phone number, and email address. A student has a class status (freshman,sophomore, junior, or senior). Define the status as a constant. An employee has anoffice, salary, and
date hired. Define a class named MyDate that contains the fieldsyear, month, and day. A faculty member has office hours and a rank. A staffmember has a title. Override the toString method in each class to display theclass name and the person’s name. Draw the UML diagram for the classes. Implement the classes. Write a test program that creates a Person, Student, Employee, Faculty, and Staff, andinvokes their toString() methods. (不要求画出UML图)
2.3 (Y. Daniel Liang英文版八版P404:11.5) (The Course class) Rewrite the Course class in Listing 10.6. Use anArrayList to replace an array to store students. You should not change theoriginal contract of the Course class (i.e., the definition of the constructors andmethods should not be changed).
三.测试数据及运行结果
四.源代码
五.(1).package eightWeek;
public class dfg {
public static void main(String[] args) { // TODO Auto-generated method stub
Triangle triangle = new Triangle(1,1.5,1,\System.out.println(\System.out.println(\perimeter:\
System.out.println(\
System.out.println(\ } }
class Triangle extends GeometricObject{ double side1=1.0; double side2=1.0; double side3=1.0;
public Triangle(double side1,double side2,double side3){ this.side1=side1; this.side2=side2;
this.side3=side3; }
public double Getside1(){ return side1; }
public double Getside2(){ return side2; }
public double Getside3(){ return side3; }
public double getPerimeter() {
return this.side1 + this.side2 + this.side3; }
public double getArea() {
double p = this.getPerimeter() / 2;
double ss = p * (p - this.side1) * (p - this.side2) * (p - this.side3);
double s = Math.sqrt(ss); return s; }
public Triangle(double side1, double side2,double side3,String color, boolean filled){ this.side1=side1; this.side2=side2; this.side3=side3; this.color=color;
super.setFilled(filled); }
public String getString() {
return \:\this.side3; } }
class GeometricObject{
public String color=\ public boolean filled;
public java.util.Date dateCreated; GeometricObject(){ }
public GeometricObject(String color,boolean filled){ dateCreated = new java.util.Date(); this.color=color; this.filled=filled;