1、11实验报告成绩: 指导教师审核(签名): 2011 年 12 月 10 日实 验 报 告实验一 Java 的类和对象实验1、实验目的1) 理解面向对象程序设计的基本思想;2) 掌握类的声明以及对象的创建;3) 掌握类的构造方法的设计;4) 理解面向对象程序设计的三大特征:继承、封装、多态,并掌握其设计方法2、实验设备与环境硬件:安装有 Windows XP 系统的微机一台。软件:JDK1.6、MyEclipse 6.0 以上。3、实验内容1) 设计一个 Point 类,该类包含两个 int 类型的成员变量:x、y,一个Color 类型的成员变量 mycolor。请给出此类的构造方法,分别是一
2、个不带参数的,一个带两个参数的,一个带三个参数的构造方法。还要给出对应的 get 方法和 set 方法,最后重写 equals 和 toString 方法。2) Vector 类的使用。要求:编写一个程序,创建 Vector 类的实例vectorInstance;随机产生0,100之间的 3 个整数,依次插入到vectorInstance 中;将字符串“hello world”,插入到 vectorInstance 的末尾。将字符A,插入到 vectorInstance 的第一个位置;在显示器上输出 vectorInstance 中的所有数据。3) 一个公司,拥有普通员工、行政人员和经理三类员
3、工,全体员工的工资都包括:基本工资、奖金,同时享受医疗保险和劳动保险。行政人员和经理还享受车补;经理还有内部分红。请你为该公司设计一个简单的工资管理程序。224、实验要求1) 使用继承技术设计相应的类;2) 书写测试主函数并进行测试。5、实验要求1) 实验前充分预习实验指导书内容及相关理论知识内容;实验时提交本次实验的预习报告。2) 实验中严格遵守实验室规范和制度,调试程序出现的问题并给出解决方法。认真完成实验内容并做好实验纪录3) 实验后必须按照要求独立完成实验报告4) 打印的源程序清单和测试结果附在实验报告的后面。源程序必须有注释以及必要的测试数据和运行结果数据。6.1 PointTest
4、程序清单11) import java.awt.Color;public class PointTest / 定义PointTest测试类public static void main(String args) Point A=new Point();Point B=new Point(10,15);Point C=new Point(11,22,Color.black);System.out.println(A);System.out.println(B);System.out.println(C);A.setColor(Color.red);A.setX(111);A.setY(222);
5、System.out.println(A);class Point/定义Point类private int x,y;Color mycolor;public Point()/point类无参构造方法this(0,0) ;public Point(int xx,int yy)/Point类两参构造方法x=xx;33y=yy;public Point(int xx,int yy,Color col)/point类三参构造方法this(xx,yy);mycolor=col;public void setX(int xx)/定义setX()方法,设置X的值x=xx;public int getX()/
6、定义getX(),返回x值的方法return x;public void setY(int yy)/ 定义setY()方法,设置y的值y=yy;public int getY()/定义getY(),返回y值的方法return y;public void setColor(Color col)/设置mycolor属性的方法mycolor=col;public Color getColor()/获得mycolor值的方法return mycolor;public boolean equals(Object obj)/重写Object类的equals()方法if(obj = null)return
7、false;else if(obj instanceof Point)Point p = (Point)obj;if(p.x = x return false;public String toString()/重写Object类的toString()方法return(“x:“+this.getX()+“n“+“y:“+this.getY()+“n“+“mycolor“+this.getColor();446.1程序运行截图:测试数据截图程序运行结果截图6.2 VectorTest 程序清单 2测试数据截图内蒙古工业大学信息工程学院1程序运行结果截图6.3 EmplyeeTest 程序清单pub
8、lic class EmplyeeTest public static void main(String args) emplyee em=new emplyee(800,500);/声明并创建 em 对象manger ma=new manger(800,500,300,200);/声明并创建 ma 对象administer ad=new administer(800,500,500);/声明并创建 ad 对象System.out.println(em);em.MedicalInsurance();em.LaborInsurance();System.out.println(ma);/打印出此
9、时 ma 对象的值ma.MedicalInsurance();ma.LaborInsurance();System.out.println(ad);/打印出此时 ad 对象的值ad.MedicalInsurance();ma.LaborInsurance();ma.setSlary(1000);ma.setchebu(600);ma.setbonus(450);ma.setinnerbonus(300);System.out.println(ma);/打印出此时 ma 对象的值ma.MedicalInsurance();ma.LaborInsurance();内蒙古工业大学信息工程学院2cla
10、ss emplyee/普通员工类public int baseslary;public int bonus;public emplyee()/emplyee 类无参的构造方法public emplyee(int baseslary ,int bonus)/emplyee 类两参的构造方法this.baseslary=baseslary;this.bonus=bonus;public void setSlary(int slary)/定义 setSlary()方法,设置 baseSlary 的值this.baseslary=slary;public void setbonus(int bou)/
11、定义 setbonus()方法,设置 bonus 的值bonus=bou;public int getbonus()/定义 getbonus()方法,返回 bonus 的值return bonus;public int getSlary()/return baseslary;public void MedicalInsurance()/定义 MedicalInsurance()方法System.out.println(“享有医疗保险!“);public void LaborInsurance()/定义 LaborInsurance()方法System.out.println(“享有劳动保险“)
12、;public String toString()/重写 Object 类 toString()方法,打印信息return (“员工基本工资:“+baseslary+“t“+“分红:“+bonus+“t“+“月总工资:“+(baseslary+bonus)+“n“);class administer extends emplyee/定义 administer 类继承 emplyee 类public int Chebu;内蒙古工业大学信息工程学院3public administer()public administer(int baseslary,int bonus,int chebu)/adm
13、inister 类的构造方法super(baseslary,bonus);/调用超类 emplyee 的构造方法setchebu(chebu );public void setchebu(int a )/定义 setchebu()方法,设置 chebu 的值Chebu+=a; public int getchebu()/定义 getchebu()方法,返回 Chebu 的值return Chebu;public String toString()/重写 Object 类的 toString()方法return (“行政人员基本工资:“+baseslary+“t“+“分红:“+bonus+“t“
14、+“车补:“+Chebu+“t“+“总工资:“+(baseslary+bonus+Chebu)+“t“);class manger extends administer/定义 manger 继承自 administer 类 private int innerbonus;public manger();public manger(int baseslary,int bonus,int Chebu,int innerbonus)/manger 类的构造方法super(baseslary,bonus,Chebu);/调用超类 administer 的构造方法setinnerbonus(innerbo
15、nus);public void setinnerbonus(int b)/innerbonus+=b;public int getinnerbonus()/定义 getinnerbonus()方法,返回 innerbonus 的值return innerbonus;public String toString()/重写 Object 类的 toString 方法return(“经理基本工资:“+baseslary+“t“+“分红:“+bonus+“t“+“车补:“+Chebu+“t“+“内部分红:“+innerbonus+“t“+“总工资:“+(baseslary+bonus+Chebu+i
16、nnerbonus)+“n“);内蒙古工业大学信息工程学院46.3 程序截图测试数据截图程序运行结果截图七:实验中存在的问题:(1) 在定义类的时候,弄不清楚该定义那些变量,用什么类型定义更容易编程(2) 在调用超类的构造方法时,弄不清超类与子类构造方法的调用顺序(3) 对类的继承关系了解的不是很透彻八:实验心得体会:经过本次试验,我学到了不少东西:学会了继承的使用、如何调用超类的构造方法等。确实,把从书本上学到的知识应用到实践中还是有些困难的,而我对书本上的知识并没有真正的掌握,所以在编程的过程中遇到很多的麻烦。在一个试验中,有很多问题出现。让我感受最深的一点是:如果想把一个程序编好,那么你就应该掌握这个实验中涉及的任何知识点,而这些知识点贯穿了我们错学的全部内容,也就是说,你必须把我们所学的全部知识掌握,才会把程序设计好。我感受到了 java 语言的特点与魅力,感受到了继承特性给编写代码带来的好处,希望将来我能熟练的掌握这门技术,对将来的工作有所帮助。