第二次上机含基本题目的参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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类:实例化以上各个类。 各个类的具体说明如下: