




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数学与计算机学院上机报告( 2014 / 2015 学年 第 1 学期 )课程名称面向对象程序设计A(JAVA)课程代码6015099上机时间2014年11月6日指导单位软件工程系任课教师唐剑梅学生姓名李菲年 级2012学 号312012070101102专 业数学成 绩实验名称类与对象、继承与接口实验地点6A418实验类型验证、设计实验学时2实验日期实验目的1. 掌握类的定义和使用方法。2. 掌握对象的声明和使用。3. 理解类和对象的区别,掌握构造函数的使用。4. 掌握类变量与实例变量,以及类方法与实例方法的区别。5. 理解方法中的形参和实参传递在传递基本类型和引用类型时的差异。6. 掌握包的概念和使用。7. 掌握类及其成员的访问权限控制符的使用。8. 掌握Java类的继承关系和派生方法。9. 理解继承中的变量隐藏和方法重写现象。10. 理解抽象类的概念,掌握定义抽象类的方法和应用。11. 理解多态现象。12. 掌握接口的定义和实现接口的方法。实验环境(实验设备)硬件: 微型计算机P4软件: Windows XP + JDK + Eclipse实验内容(包括题目和要求、源码、运行结果截图等)一、按下面的要求编写一个Java Application程序。(1)定义一个Java类Point,用来描述平面直角坐标系中点的坐标,该类应该能描述点的横、纵坐标信息及一些相关操作,包括获取点的横、纵坐标,修改点的坐标,显示点的当前位置等。(2)定义一个测试类javaTest,创建Point类的对象并对其进行有关的操作。程序代码:public class Point double x,y;public Point(double x,double y)this.x=x;this.y=y;public double getX() return x;public double getY() return y;public void setX(double x) this.x = x;public void setY(double y) this.y = y;public class javaTest public static void main(String args) Point p=new Point(-3,8);double x,y;x=p.getX();y=p.getY();System.out.println(点(+x+,+y+)的横坐标为:+x);System.out.println(点(+x+,+y+)的纵坐标为:+y);if(x=0&y=0)System.out.println(点(+x+,+y+)在原点);else if(x=0&y!=0)System.out.println(点(+x+,+y+)在Y轴);else if(x!=0&y=0)System.out.println(点(+x+,+y+)在X轴);elseint a=1;if(x0)a=2;if(x0&y0&y=60)System.out.println(namez+可以拿到学位);elseSystem.out.println(namez+不可以拿到学位);Graduate li=new Graduate(李四,68,89,81);String namel=li.getName();int i=li.getA();int j=li.getB();int k=li.getC();System.out.println(namel+的三门成绩分别是:+i+、+j+、+k+,+平均成绩为:+(i+j+k)/3);if(i+j+k)/3=80)System.out.println(namel+可以拿到学位);elseSystem.out.println(namel+不可以拿到学位);运行结果:四、假定要为某个公司编写雇员工资支付程序,这个公司有各种类型的雇员(Employee),不同类型的雇员按不同的方式支付工资:(1)经理(Manager)每月获得一份固定的工资(2)销售人员(Salesman)在基本工资的基础上每月还有销售提成。(3)一般工人(Worker)按他每月工作的天数计算工资。要求:设计一个雇员类(Employee)描述所有雇员的共同特性,这个类提供一个计算工资的抽象方法computeSalary( )。经理、销售人员和一般工人对应的类都继承这个类,并重写计算工资的方法以给出它的具体实现。程序代码:abstract class Employee abstract int computeSalary(int x,int y);public class Manager extends Employeeint computeSalary(int x,int y)return x;public class Salesman int computeSalary(int x,int y)return x+10*y;public class Worker int computeSalary(int x,int y)return x*y;public class Gongzi public static void main(String args) Manager zhang=new Manager();Salesman li=new Salesman();Worker wang=new Worker();puteSalary(4000,0);puteSalary(3000, 20);puteSalary(100,25);System.out.println(经理zhang的工资为:+puteSalary(4000,0);System.out.println(销售人员li的工资为:+puteSalary(3000,20);System.out.println(一般人员wang的工资为:+puteSalary(100,25);运行结果:五、学校中有老师和学生两类人,而在职研究生既是老师又是学生,对学生的被管理和对于教师的责任管理在他们身上都有体现。 要求:(1)设计两个信息管理接口StudentInterface和TeacherInterface。其中StudentInterface接口包括setFee()方法和getFee()方法,这些方法分别用于设置和获取学生的学费;TeacherInterface接口包括setPay()方法和getPay()方法,分别用于设置和获取老师的工资。 (2)定义一个研究生类Graduate,实现StudentInterface和TeacherInterface接口,它定义的成员变量有name(姓名)、sex(性别)、age(年龄)、fee(每学期学费)、 pay(月工资),并添加返回值为float的方法f(),此方法用于计算年收入。其年收入算法为:每年的总工资减去一年的学费。(3)在测试类中创建一个姓名为zhangsan的研究生,根据每学期的学费和月工资收入,统计他的年收入和学费,如果收入减去学费不足2000元,则输出“需要贷款”信息。程序代码:StudentInterface接口:public interface StudentInterface void setFee(int x);int getFee();TeacherInterface接口:public interface TeacherInterface void setPay(int x);int getPay();Graduate.Java:public class Graduate implements TeacherInterface,StudentInterfaceString name,sex;int age,fee,pay;Graduate( String name,String sex,int age)=name;this.sex=sex;this.age=age;public int getFee() return fee;public void setFee(int fee) this.fee = fee;public int getPay() return pay;public void setPay(int pay) this.pay = pay;float f(int fee,int pay)return 12*pay-2*fee;Zhangsan.java:public class Zhangsan public static void main(String args) Graduate zhang;zhang=new Graduate(zhangsan,男,24);String name=;String sex=zhang.sex;int age=zhang.age;zhang.setFee(8000);zhang.setPay(1400);int fee=zhang.getFee();int pay=zhang.getPay();System.out.print(name+,+sex+,+age+岁,+年收入为:+12*pay+,+一年的学费为:+2*fee+。);if(zhang.f(fee,pay)2000)System.out.println(需要贷款!);运行程序:六、首先预测下列程序(名为PetTest.java)的运行结果,然后编译、执行以验证你的预测,并完成后面的题目要求:class Petprotected String name;public Pet(String n)name = n;public String getName()return name;public String move()return run;public String speak()return ;public String toString()return My pet + name;class Dog extends Petprotected int weight;public Dog(String s)super(s);class PetTestpublic static void main(String args)Pet myPet = new Pet(George);Dog myDog = new Dog(Spot);System.out.println(myPet.toString() + n + Speak: + myPet.speak() +n + myPet.move() + + myPet.getName() + n);System.out.println(myDog.toString() + n + Speak: + myDog.speak() +n + myDog.move() + +myDog.getName() + n);请按照下列要求修改程序并上机测试:1)修改Dog类的构造函数,使之可以初始化Dog类中的weight值。2)在Dog类中添加方法getWeight以获得其weight值。3)修改类PetTest,使用新的构造函数创建一个名为“snoopy”,重为10的Dog类的对象,并利用其方法输出包括重量在内的各项值。预测结果如下:My pet GeorgeSpeak:run GeorgeMy pet SpotSpeak:run spot实际运行结果:修改后的Dog与PetTest类修改如下:public class Dog extends Petprotected int weight;public Dog(String s,int weight)super(s);this.weight=weight;public int getweight()return weight;public class PetTest public static void main(String args) Pet myPet = new Pet(George);Dog myDog = new Dog(snoopy,10);System.out.println(myPet.toString() + n + Speak: + myPet.speak() +n + myPet.move() + + myPet.getName() + n);System.out.println(myDog.toString() + 的体重为:+myDog.getweight()+kg+n + Speak: + myDog.speak() +n + myDog.move() + +myDog.getName() + n);运行结果:七、在完成后的第6题的基础上,修改Pet类,其中move与speak方法定义为抽象方法。在Dog类中实现move和Speak方法,其中move方法返回值为“run”,speak方法返回值为“汪汪汪汪”。修改程序并上机测试。程序代码:public abstract class Petprotected String name;public Pet(String n)name = n;public String getName()return name;abstract String move();abstract String speak();public String toString()return My pet + name; public class Dog extends Petprotected int weight;public Dog(String s,int weight)super(s);this.weight=weight;public int getweight()return weight;String move()return run;String speak()return 汪汪.汪汪;public class PetTest public static void main(String args) Dog myDog = new Dog(snoopy,10);System.out.println(myDog.toString() + 的体重为:+myDog.getweight()+kg+n + Speak: + myDog.speak() +n + myDog.move() + +myDog.getName() + n);运行结果:八、在完成后的第7题的基础上,如果将Pet类定义为接口,修改程序并上机测试。程序代码:interface Pet public String getName();abstract String move();abstract String speak();public String toString();class Dog implements Petprotected int weight;String name;public Dog(String s,int weight)=s;this.weight=weight;public int get
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025届广东省佛山市超盈实验中学七下数学期末复习检测试题含解析
- 个人职业目标提高沟通技巧计划
- 法学概论各知识模块的复习重点试题及答案
- 强化应变能力的自我提升计划
- 快乐学习软件设计师考试的试题及答案
- 艺术展览安保工作的总结与反思计划
- 商业智能基本概念试题及答案
- 班级活动评估与效果反馈计划
- 主管年度创业精神任务计划
- 企业可持续发展与风险考量试题及答案
- 国开电大土木工程本科《工程地质》在线形考形考(作业1至4)试题及答案
- 药物咨询记录
- 售后维修服务单
- 国家中长期科技发展规划纲要2021-2035
- ZDY3200S型煤矿用全液压坑道钻机行业资料矿业工程
- 北师大版八年级数学下册 (一元一次不等式)一元一次不等式和一元一次不等式组课件(第2课时)
- 南京市小学英语六年级小升初期末试卷(含答案)
- 国开电大本科《理工英语3》机考真题(第005套)
- 护理安全警示教育PPT
- 草图大师基础命令教程
- 清华大学工商管理专业课程设置
评论
0/150
提交评论