第二次上机含基本题目的参考答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验2 类编程练习

2.1实验目的

通过编程和上机实验理解Java 语言是如何体现面向对象编程基本思想,了解类的封装方法,以及如何创建类和对象,了解成员变量和成员方法的特性,掌握OOP 方式进行程序设计的方法,了解类的继承性和多态性的作用。

2.2实验要求

1.编写一个体现面向对象思想的程序。。

2.编写体现类的继承性的程序。

3.编写体现类的多态性的程序。

2.3实验内容

2.3.1用户自定义类

import java.util.*;

public class EmployeeTest

{

public static void main(String[] args)

{

// fill the staff array with three Employee objects

Employee[] staff = new Employee[3];

staff[0] = new Employee("Carl Cracker", 75000, 1987, 12, 15);

staff[1] = new Employee("Harry Hacker", 50000, 1989, 10, 1);

staff[2] = new Employee("Tony Tester", 40000, 1990, 3, 15);

// raise everyone's salary by 5%

for (int i=0;i

{

staff[i].raiseSalary(5);

}

// print out information about all Employee objects

for (int i=0;i

{

System.out.println("name=" + staff[i].getName()

+ ",salary=" + staff[i].getSalary()

+ ",hireDay=" + staff[i].getHireDay());

}

}

}

class Employee

{

public Employee(String n, double s, int year, int month, int day)

{

name = n;

salary = s;

GregorianCalendar calendar = new GregorianCalendar(year, month - 1, day); // GregorianCalendar uses 0 for January

hireDay = calendar.getTime();

}

public String getName()

{

return name;

}

public double getSalary()

{

return salary;

}

public Date getHireDay()

{

return hireDay;

}

public void raiseSalary(double byPercent)

{

double raise = salary * byPercent / 100;

salary += raise;

}

private String name;

private double salary;

private Date hireDay;

}

2.3.2类的继承性

class Employee {

String name ;

int salary;

public Employee(String name,int salary){

= name;

this.salary = salary;

}

public String getDetails( ){

return "Name: "+name+"\nSalary: "+salary;

}

}

class Manager extends Employee {

private String department ;

public Manager(String name,int salary,String department){

super(name,salary);

this.department = department;

}

public String getDetails( ){

return "Name: "+name+"\nSalary: "+salary+"\nDepartment: "+ department;

}

}

class Secretary extends Employee{

public Secretary(String name,int salary){

super(name,salary);

}

}

public class TestOverriding{

public static void main(String[] srgs){

Manager m = new Manager("Tom",2000,"Finance");

Secretary s = new Secretary("Mary",1500);

System.out.println(m.getDetails());

System.out.println(s.getDetails());

}

}

2.3.2编程题

1.(基本题)本题目要求实现的各个类,按照其继承的顺序,分别是:

Circle类:用来描述圆的状态和行为;

Ellipse类:描述椭圆的状态和行为,该类继承Circle类;

Cylinder类:描述圆柱体,该类的属性bottom是Circle类对象;

Test类:实例化以上各个类。

各个类的具体说明如下:

相关文档
最新文档