.
(2)按照要求编写Java Application程序。
三、实验内容
1.阅读如下所示的3个Java类的定义,分析它们之间的关系,写出运行结果。
1: class SuperClass { 2: int x;
3: SuperClass() { 4: x=3;
5: System.out.println(\6: }
7: void doSomething() {
8: System.out.println(\9: } 11:}
1: class SubClass extends SuperClass { 2: int x;
3: SubClass() {
4: super(); //调用父类的构造方法
5: x=5; //super( ) 要放在方法中的第一句 6: System.out.println(\7: }
8: void doSomething( ) {
9: super.doSomething( ); //调用父类的方法 10: System.out.println(\11: System.out.println(\12: } 14:}
1: public class Inheritance {
2: public static void main(String args[]) { 3: SubClass subC=new SubClass(); 4: subC.doSomething(); 5: } 6: }
运行结果:
2.假定根据学生的3门学位课程的分数决定其是否可以拿到学位,对于本科生,如果3门课程的平均分数超过60分即表示通过,而对于研究生,则需要平均超过80分才能够通过。根据上述要求,请完成以下Java类的设计:
word范文
.
(1)设计一个基类Student描述学生的共同特征。
(2)设计一个描述本科生的类Undergraduate,该类继承并扩展Student类。 (3)设计一个描述研究生的类Graduate,该类继承并扩展Student类。
(4)设计一个测试类StudentDemo,分别创建本科生和研究生这两个类的对象,并输出相关信息。 class Student{
private String name;
private int classA,classB,classC;
public Student(String name,int classA,int classB,int classC){ this.name=name; this.classA=classA; this.classB=classB; this.classC=classC; }
public String getName(){ return name; }
public int getAverage(){
return (classA+classB+classC)/3; } }
class UnderGraduate extends Student{
public UnderGraduate(String name,int classA,int classB,int classC){ super(name,classA,classB,classC); }
public void isPass(){ if(getAverage()>=60)
System.out.println(\本科生\的三科平均分为:\可以拿到学士学位。\ else
System.out.println(\本科生\的三科平均分为:\不能拿到学士学位。\ } }
class Graduate extends Student{
public Graduate(String name,int classA,int classB,int classC){ super(name,classA,classB,classC); }
public void isPass(){ if(getAverage()>=80)
System.out.println(\研究生\的三科平均分为:\可以拿到硕士学位。\ else
System.out.println(\研究生\的三科平均分为:\不能拿到硕士学位。\ }
word范文
.
}
public class StudentDemo{
public static void main(String[] args){
UnderGraduate s1=new UnderGraduate(\ Graduate s2=new Graduate(\ s1.isPass(); s2.isPass(); } }
运行结果:
假定要为某个公司编写雇员工资支付程序,这个公司有各种类型的雇员(Employee),不同类型的雇员按不同的方式支付工资:
(1)经理(Manager)——每月获得一份固定的工资
(2)销售人员(Salesman)——在基本工资的基础上每月还有销售提成。 (3)一般工人(Worker)——则按他每月工作的天数计算工资。
根据上述要求试用类的继承和相关机制描述这些功能,并编写一个Java Application程序,演示这些类的用法。(提示:应设计一个雇员类(Employee)描述所有雇员的共图特性,这个类应该提供一个计算工资的抽象方法ComputeSalary( ),使得可以通过这个类计算所有雇员的工资。经理、销售人员和一般工人对应的类都应该继承这个类,并重新定义计算工资的方法,进而给出它的具体实现。)
abstract class Employee{ private String name;
public Employee(String name){ this.name=name; }
public String getName(){ return name; }
public abstract double computeSalary(); }
word范文
.
class Manager extends Employee{ private double monthSalary;
public Manager(String name,double monthSalary){ super(name);
this.monthSalary=monthSalary; }
public double computeSalary(){ return monthSalary; } }
class Salesman extends Employee{ private double baseSalary; private double commision; private int qualtities;
public Salesman(String name,double baseSalary,double commision,int qualtities){ super(name);
this.baseSalary=baseSalary; this.commision=commision; this.qualtities=qualtities; }
public double computeSalary(){
return baseSalary+commision*qualtities; } }
class Worker extends Employee{ private double dailySalary; private int days;
public Worker(String name,double dailySalary,int days){ super(name);
this.dailySalary=dailySalary; this.days=days; }
public double computeSalary(){ return dailySalary*days; } }
public class EmployeeDemo{
public static void main(String args[]){ Manager e1=new Manager(\张三\
Salesman e2=new Salesman(\李四\ Worker e3=new Worker(\王五\
System.out.println(\经理\的月工资为:\ System.out.println(\销售人员\的月工资为:\ System.out.println(\工人\的月工资为:\ } }
word范文