资源预览内容
第1页 / 共27页
第2页 / 共27页
第3页 / 共27页
第4页 / 共27页
第5页 / 共27页
第6页 / 共27页
第7页 / 共27页
第8页 / 共27页
第9页 / 共27页
第10页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
JAVA程序设计实验报告学 号:姓 名:班 级:指导老师:陈业斌实验一、面向对象编程实验一、 实验目的 掌握接口的编写及使用理解继承、多态掌握包的编写以及如何使用包中的类二、预习内容 java的基本语法知识三、实验设备与环境 装有JAVA语言工具软件 (JCreator )的微机若干四、实验内容 接口的编写(1) 编辑Interfaceclass.java,设保存在D:myjava目录下。interface Interfaceclass int i=4; int k=5; void func1(); int func2(int x);(2) 编辑UseInterface.java,设保存在D:myjava目录下。class UseInterface implements Interfaceclass int j;public void func1() /在使用接口的类中一定要实现接口中的所有抽象方法 System.out.println(func1=+1); public int func2(int i) System.out.println(func2=+1);return i; public static void main(String srgs ) /Interfaceclass.class x=new Interfaceclass.class();不能对接口进行实例化UseInterface x=new UseInterface();x.func1();x.func2(k);多态在工资系统中的应用下面给出一个根据雇员类型利用abstract方法和多态性完成工资单计算的程序。 Employee是抽象类,Employee的子类有Boss(每星期发给他固定工资,而不计工作时间)、 CommissionWorker(除基本工资外还根据销售额发放浮动工资)、PieceWorker(按其生产的产品数发放工资)、HourlyWorker(根据工作时间长短发放工资)。该例的Employee的每个子类都声明为final,因为不需要再继承它们生成子类。对所有雇员类型都使用earnings()方法,但每个人挣的工资按他所属的雇员类计算,所有雇员类都是从超类Earnings()派出生的。所有在超类中声明earnings()为抽象方法,并且对于每个子类都提供恰当的earnings()的实现方法。为了计算雇员的工资,程序仅仅使用雇员对象的一个超类引导 并调用earnings()方法。在一个实际的工资系统中,各种Employee对象的引用可以通过一个Employee引用数组来实现。程序依次使用数组的每个元素(Employee引用)调用每个对象的employee()方法。(1)编辑Test.java,设保存在D:myjava目录下。 abstract class Employee private String firstName; private String lastName; public Employee(String first,String last) firstName=first; lastName=last; public String getEmployeeName() return firstName;public String getLastName() return lastName;public String toString() return firstName+lastName;public abstract String earnings();/定义Boss类,为Employee的子类final class Boss extends Employee private double weeklySalary; public Boss(String frist,String last,double s) super(frist,last);setWeeklySalary(s); public void setWeeklySalary(double s) weeklySalary=(s0?s:0); public String earnings() return Boss+super.toString();/定义CommissiomWorker类,为Employee的子类final class CommissionWorker extends Employee private double salary; private double commission; private int quantity; public CommissionWorker(String first,String last,double s,double c,int q) super(first,last); setSalary(s); setCommission(c); setQusntily(q); /*public String earnings() */public void setQusntily(double s) salary=(s0?s:0);public double setCommission(double c) return commission=(c0?c:0); public String earnings() double i=salary+commission+quantity; return Double.valueOf(i).toString(); public String toString() returnCommissionWorker+super.toString(); public void setSalary(double s) salary=s; /定义PieceWorker类,为Employee的子类 final class PieceWorker extends Employee private double wagePiece;private int quantity;public PieceWorker(String first,String last,double w,int q) super(first,last); setWage(w); setQuantity(q); public void setWage(double w) wagePiece=(w0?w:0); public double setQuantity(int q) return q+wagePiece; public String toString() return PieceWoeker+super.toString(); public String earnings() returnDouble.valueOf(wagePiece+quantity).toString(); /定义HourlyWorker类,为Employee的子类 class HourlyWorker extends Employee private double wage; private double hours; public HourlyWorker(String first,String last ,double w,double h) super(first,last); setWage(w); setHours(h); public void setWage (double w) wage=(w0?w:0); public void setHours(double h) hours=(h=0&h168?h:0); public String earnings() return HourlyWorker+super.toString(); class Text public static void main(String args ) /使用超类声明ref Employee ref; String out=;/分别定义各子类 Boss b=new Boss(Hohn,Smith,800.00); CommissionWorker c=new CommissionWorker(Sue,Hones,400.00,3.0,150); PieceWorker p=new PieceWorker(Bob,Lewis,2.5,200); HourlyWorker h=new HourlyWorker(Karen,price,13.75,40);/使用子类分别实例化ref=b;out+=ref.toString()+earned $+ref.earnings()+n+b.toString()+earned $+b.earnings()+n;System.out.print(out);ref=c;out+=ref.toString()+earned $+ref.earnings()+n+c.toString()+earned $+c.earnings()+n;System.out.print(out);ref=p;out+=ref.toString()+earned $+ref.earnings()+n+p.toString()+earned $+p.earnings()+n;System.out.print(out);ref=h;out+=ref.toString()+earned $+ref.earnings()+n+h.toString()+earned $+h.earnings()+n;System.out.print(out); 包的建立与使用(1) 编辑Calculate.java,设保存在D:myjava目录下。package mypackage;public class Calculate private int a; public Calculate(int a) this.a=a;System.ou
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号