欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    Java实验四报告(共19页).docx

    • 资源ID:14000992       资源大小:497.34KB        全文页数:19页
    • 资源格式: DOCX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Java实验四报告(共19页).docx

    精选优质文档-倾情为你奉上课程名称面向对象程序设计实验项目编号1505P实验项目名称继承与多态实验学时2学时实验日期2017.12.11成绩学生学号学生姓名陈靖实验地点计算机应用技术实验室 指导教师康晓凤一、实验目的1.掌握Java语言中继承和多态的相关概念2.掌握Java程序设计中继承和多态机制的使用3.掌握Java语言中接口和包的概念及使用。 二、实验内容1.题目: 1.继承多态综合练习1(1)建立一个Java抽象类Drink,应当:声明一个抽象方法taste(),该方法负责输出饮料的味道;声明int型常量来代表不同的饮料类型(咖啡、啤酒、牛奶),如:声明静态方法getDrink(int drinkType),根据传入的参数创建不同的饮料对象,并返回该对象,建议使用switch语句。(2)建立Drink的子类:分别建立Drink的子类:Coffee(咖啡类),Beer(啤酒类),Milk(牛奶类);实现taste()方法,要求在控制台打印各自的味道特征。(3)建立Test测试类,测试以上内容的正确性编写main方法,输入要新建的饮料类型。调用Drink类的getDrink方法,获得相应的饮料对象。然后调用该饮料对象的taste()方法,输出该饮料的味道。编译程序,并运行。要求:测试类放在包名为com.sy4.exe02.test包中,其它类放在com.sy4.exa02包中。(知识点:类的定义,抽象类,继承,多态)2.继承多态综合应用练习2(1)定义一个抽象的People类,有姓名(name),年龄(age),性别(sex)等成员变量,要求成员变量的访问修饰符为private,通过getXxx()和setXxx()方法对各变量进行读写。声明具有一个抽象的role()方法,该方法不返回任何值,用于输出人的身份类型,同时至少定义两个构造方法。(2)定义一个抽象类Employee类,该类继承People类,该类具有People类的所有成员,并新增雇员底薪薪水(salary)和职工编号(empid)成员变量。同样要有至少两个构造方法,要体现出this和super的几种用法。声明具有一个抽象的getSalary()方法,该方法返回float值,用于返回员工薪水。(3)定义SalariedEmployee类,它是Employee的子类,拿固定工资的员工,他的薪水就是底薪。重写role和getSalary方法。(4)定义HourlyEmployee 类,它是Employee 的子类,按小时拿工资的员工,每月工作超出160 小时的部分按照1.5 倍工资发放。新增属性:每小时的工资(hourSalary)、每月工作的小时数(hourWork)。重写role和getSalary方法。(5)定义SalesEmployee类,它是Employee 的子类,销售人员,工资由月销售额和提成率决定。新增属性:月销售额(saleMoney)、提成率(rate)(6)定义一个类Company,在该类中写一个方法print(Employee e),调用该方法可以打印出某个员工的工资数额以及该员工的身份类型,写一个测试类CompanyTest在main方法,把若干各种类型的员工放在一个Employee 数组里,并调用print方法输出数组中每个员工当月的工资。要求:测试类放在包名为com.sy4.exe02.test包中,其它类放在com.sy4.exa02包中。(知识点:类的定义,抽象类,继承,多态)3.继承多态综合应用练习3(1)定义一个驾驶员抽象类Driver,它有String sex(性别)和int age(年龄)两个成员属性,还有一个抽象的成员方法drives(Vehicle v),并从它派生出女驾驶员FemaleDriver和男驾驶员MaleDriver两个子类。(2)定义一个抽象类Vehicle,它有String vtype(车型)和String vcode(车牌号码)两个成员属性,还有一个抽象的成员方法drivedByDriver(Driver who),并从它派生出Bus和Car两个子类。(3)定义一个测试类DriverTest,在其main方法中先创建fd和md两个男女Driver对象,然后创建vb和vc两个汽车类Vehicle对象。要求:(1)将以上所有类均放置到com.sy4.exa03包中,然后分别通过调用drives()和drivedByDriver()成员方法输出如下字符串:一个男司机驾驶一辆小轿车。 一个女司机驾驶一辆公交车。(2)在com.sy4.exa03.test包中新建一个DriverTest测试类。在该类的main方法中先创建20个Vehicle对象(随机生成车牌号,车牌号范围为11000),并规定只有双号车辆能够通过,输出所有车辆的通过情况。要求:测试类放在包名为com.sy4.exe03.test包中,其它类放在com.sy4.exa03包中。4、设计一个具有各种功能门的系统。(1)定义一张抽象的门Door,对于门来说,拥有开门openDoor()和关门closeDoor()的操作,定义抽象方法String doorType()返回门的类型(如防火门、防盗门等)(2)定义具有防盗-theftproof()、防水-waterproof()、防弹-bulletproof()、防火等功能的接口(3)创建防盗门类、防水门类、防弹门类、防盗和防水门类(4)定义一个测试类DoorTest,在其main方法中创建各种门的对象,输出门的功能及门的类型。(知识点:抽象类,接口,继承,多态)要求:测试类放在包名为com.sy4.exe04.test包中,其它类放在com.sy4.exa04包中。三、实验源代码 1、Drink类package com.sy4.exe01.test;public abstract class Drink static int a=1,b=2,c=3;/a:咖啡,b:啤酒,c;牛奶 static public int getDrink(int drinkType) switch(drinkType) case 1: return a; case 2: return b; case 3: return c; return 0; public abstract void taste();offee类package com.sy4.exe01.test;public class Coffee extends Drink public void taste() System.out.print("咖啡的味道是苦的!");Beer类package com.sy4.exe01.test;public class Beer extends Drink public void taste() System.out.print("啤酒的味道是苦的!");Milk类package com.sy4.exe01.test;public class Milk extends Drink public void taste() System.out.print("牛奶的没有味道!");Text类package com.sy4.exe01.test;import java.util.Scanner;import com.sy4.exe01.*;public class Text public static void main(String args) int a;Scanner input=new Scanner(System.in);Coffee drink=new Coffee();Beer drink1=new Beer();Milk drink2=new Milk();System.out.print("请输入饮料类型:(1:咖啡 2:啤酒 3:牛奶)");a=input.nextInt();switch(drink.getDrink(a)case 1: drink.taste();break;case 2: drink1.taste();break;case 3: drink2.taste();break;2、Pelple类package com.sy4.exe02.test;public abstract class People private int age;private String name,sex;public People()/无参构造方法age=0;name="0"sex="0"public People(int age,String name,String sex)/有参构造方法this.age=age;this.name=name;this.sex=sex;public void setage(int age)this.age=age;public void setname(String name)this.name=name;public void setsex(String sex)this.sex=sex;public int getage()return age;public String getname()return name;public String getsex()return sex;public abstract void role();Employee类package com.sy4.exe02.test;public abstract class Employee extends People float salary;String empid;public Employee() super(); salary=0; empid="0" public Employee(float salary,String empid,int age,String name,String sex) super(age,name,sex); this.empid=empid; this.salary=salary; public abstract float getSalary();SalariedeEmployee类package com.sy4.exe02.test;public class SalariedEmployee extends Employee public SalariedEmployee(float salary,String empid,int age,String name,String sex) super(salary,empid,age,name,sex); public float getSalary() return super.salary;public void role() System.out.println("姓名:"+super.getname()+"t年龄:"+super.getage()+"t性别:"+super.getsex()+"t薪水:"+super.salary+"t编号:"+super.empid);HourlyEmployee类package com.sy4.exe02.test;public class HourlyEmployee extends Employee float hoursalary;float hourwork;float money;public HourlyEmployee(String empid,int age,String name,String sex,float hoursalary,float hourwork) super(0,empid,age,name,sex); this.hoursalary=hoursalary; this.hourwork=hourwork; public float getSalary() if(hourwork<=160)money=hoursalary*hourwork;elsemoney=(float) (hoursalary*160+(hourwork-160)*hoursalary*1.5);return money;public void role() System.out.println("姓名:"+super.getname()+"t年龄:"+super.getage()+"t性别:"+super.getsex()+"t薪水:"+ getSalary()+"t编号:"+super.empid);SalesEmployee类package com.sy4.exe02.test;public class SalariedEmployee extends Employee public SalariedEmployee(float salary,String empid,int age,String name,String sex) super(salary,empid,age,name,sex); public float getSalary() return super.salary;public void role() System.out.println("姓名:"+super.getname()+"t年龄:"+super.getage()+"t性别:"+super.getsex()+"t薪水:"+super.salary+"t编号:"+super.empid);Company类package com.sy4.exe02.test;public class Company public void print(Employee e)e.role();CompanyText类package com.sy4.exe02.test;import com.sy4.exe02.*;public class CompanyText public static void main(String args) Company company=new Company();SalariedEmployee emp=new SalariedEmployee(float)3283.1,"",25,"小明","男");company.print(emp);SalesEmployee emp1=new SalesEmployee("",25,"小花","女",10000,(float) 0.4);company.print(emp1);HourlyEmployee emp2=new HourlyEmployee("",25,"小王","男",10,370);company.print(emp2);4、Door类package com.sy4.exe04.test;public abstract class Door public void openDoor()System.out.print("开门!");public void closeDoor()System.out.print("关门!");public abstract String doorType();Theftproof接口package com.sy4.exe04.test;public interface Theftproof public abstract void theftproof();Waterproof接口package com.sy4.exe04.test;public interface Waterproof public abstract void waterproof();Bulletproof接口package com.sy4.exe04.test;public interface Bulletproof public abstract void bulletproof();Theft类package com.sy4.exe04.test;public class Theft extends Door implements Theftproof public void theftproof() System.out.print(doorType();public String doorType() String b="防盗!"return b;Water类package com.sy4.exe04.test;public class Water extends Door implements Waterproof public void waterproof() System.out.print(doorType();Overridepublic String doorType() String b="防水!"return b;Bulle类package com.sy4.exe04.test;public class Bulle extends Door implements Bulletproof public void bulletproof() System.out.print(doorType();public String doorType() String b="防火!"return b;DoorText类package com.sy4.exe04.test;import com.sy4.exe04.*;import java.util.*;public class DoorText public static void main(String args)String a;Scanner input=new Scanner(System.in);Theft door=new Theft();Bulle door1=new Bulle();Water door2=new Water();doSystem.out.print("请输入门:"); a=input.next(); switch(a) case "防盗门": System.out.print("门的功能为:");door.openDoor();door.closeDoor();door.theftproof();break; case "防水门": System.out.print("门的功能为:");door2.openDoor();door2.closeDoor();door2.waterproof();break; case "防火门": System.out.print("门的功能为:");door1.openDoor();door1.closeDoor();door1.bulletproof();break; case "false":break; default:System.out.print("没有该门!");break; System.out.println();while(a.indexOf("false")<0);三、 实验结果4.1四、实验结论 嵌套循环的程序相对于之前的实验都要复杂得多,所以再设计语言程序的时候要更加小心,每一个父类带着的相关的子类,其他也有很多细节的小错误,一不小心就会想半天。专心-专注-专业

    注意事项

    本文(Java实验四报告(共19页).docx)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开