JAVA实验_题目8-.pdf

上传人:索**** 文档编号:76260183 上传时间:2023-03-08 格式:PDF 页数:9 大小:30.80KB
返回 下载 相关 举报
JAVA实验_题目8-.pdf_第1页
第1页 / 共9页
JAVA实验_题目8-.pdf_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《JAVA实验_题目8-.pdf》由会员分享,可在线阅读,更多相关《JAVA实验_题目8-.pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第八章类和对象的扩展【实验目的】(1)类的继承a.掌握父类及子类的关系及创建方法b.掌握上转型对象的使用方法c.掌握子类对象创建过程中与父类构造方法的关系,及super关键字的用法(2)多态与接口a.掌握抽象类与抽象方法的概念b.掌握多态的实现原理及方法c.了解成员变量的隐藏d.掌握接口的设计方法【实验范例】例 1:(继承)(1)编写一个圆类Circle,该类拥有:一个成员变量Radius(私有,浮点型);/存放圆的半径;两个构造方法Circle()/将半径设为0 Circle(double r)/创建 Circle 对象时将半径初始化为r 三个成员方法double getArea()/获取圆

2、的面积double getPerimeter()/获取圆的周长void show()/将圆的半径、周长、面积输出到屏幕(2)编写一个圆柱体类Cylinder,它继承于上面的Circle 类。还拥有:一个成员变量double hight(私有,浮点型);/圆柱体的高;构造方法Cylinder(double r,double h)/创建 Circle 对象时将半径初始化为r 成员方法double getVolume()/获取圆柱体的体积void showVolume()/将圆柱体的体积输出到屏幕编写应用程序,创建类的对象,分别设置圆的半径、圆柱体的高,计算并分别显示圆半径、圆面积、圆周长,圆柱体的

3、体积。程序代码:class Circle /定义父类-园类private double radius;/成员变量-园半径Circle()/构造方法radius=0.0;Circle(double r)/构造方法radius=r;double getPerimeter()/成员方法-求园周长return 2*Math.PI *radius;double getArea()/成员方法-求园面积return Math.PI *radius*radius;void disp()/成员方法-显示园半径、周长、面积System.out.println(圆半径=+radius);System.out.pri

4、ntln(圆周长=+getPerimeter();System.out.println(圆面积=+getArea();class Cylinder extends Circle /定义子类-圆柱类private double hight;/成员变量-园柱高Cylinder(double r,double h)/构造方法super(r);hight=h;public double getVol()/成员方法-求园柱体积return getArea()*hight;public void dispVol()/成员方法-显示园柱体积System.out.println(圆柱体积=+getVol();

5、public class Prog1 /定义主类public static void main(String args)/主程入口Circle Ci=new Circle(10.0);/生成园类实例Ci.disp();/调用园类的方法Cylinder Cyl=new Cylinder(5.0,10.0);/生成圆柱类实例Cyl.disp();/调用父类方法Cyl.dispVol();/调用子类方法 例 2:(重载)设计一个汽车类Multiplication,在其中定义三个同名的mul 方法:第一个方法是计算两个整数的积;第二个方法是计算两个浮点数的积;第三个方法是计算三个浮点数的积。程序代码:

6、class Multiplication public void mul(int a,int b)int m=a*b;System.out.println(a+*+b+=+m);public void mul(double a,double b)float m=(float)(a*b);System.out.println(a+*+b+=+m);public void mul(double a,double b,double c)double m=a*b*c;System.out.println(a+*+b+*+c+=+m);public class Prog1 public static v

7、oid main(String args)Multiplication test=new Multiplication();test.mul(3,4);test.mul(2.3,3);test.mul(3,4,5);例 3:(接口与多态)(1)定义一个接口CanFly,描述会飞的方法public void fly();(2)分别定义类飞机和鸟,实现CanFly 接口。(3)定义一个测试类,测试飞机和鸟。测试类中定义一个makeFly()方法,让会飞的事物飞起来。(4)然后在main 方法中创建飞机对象和鸟对象,并在main 方法中调用makeFly()方法,让飞机和鸟起飞。程序代码:inter

8、face CanFly public void fly();class AirPlane implements CanFly public void fly()System.out.println(airplane is flying);class Bird implements CanFly public void fly()System.out.println(Bird is flying);class Prog1 static void makeFly(CanFly obj)obj.fly();public static void main(String args)AirPlane ap

9、=new AirPlane();Bird b=new Bird();makeFly(ap);makeFly(b);【综合例子】例:在第七章综合例子的基础上,编写一个VIP 账号的管理要求:1、VIPAccount 继承 Account 2、VIP 设置 3 个等级:VIP0:一般账户,不能透支VIP1:透支上限3000 元VIP2:透支上限10000 元1、根据透支情况,重写withdraw()方法(重写)2、两个构造函数,一个与父类Account 构造函数的参数相同,另外一个参数增加设置对象的 VIP 等级(重载)实现简单的循环菜单显示,并实现存|取款、修改密码、显示账户余额等功能(实现的功

10、能和第七章的综合例子相同)import java.util.Scanner;class Account intcustID;String custName;intcustPWD;doublecustMoney;Account(intid,String name,intPWD,doublemoney)custID=id;custName =name;custPWD=PWD;custMoney=money;void displayAccout()System.out.println(账号:+custID);System.out.println(户名:+custName);System.out.pr

11、intln(余额:+custMoney);boolean deposit(doublemoney)custMoney+=money;returntrue;boolean withdraw(doublemoney)if (custMoneymoney)returnfalse;else custMoney-=money;returntrue;void changePWD(intPWD)custPWD=PWD;class VIPAccount extends Account intVIPLevel;/VIP特权,透支金额分3个等级为 VIP0:一般客户,不能透支,VIP1:3000,VIP2:100

12、00VIPAccount(intid,String name,intPWD,doublemoney)/构造函数重载super(id,name,PWD,money);VIPAccount(intid,String name,intPWD,doublemoney,intlevel)/构造函数重载super(id,name,PWD,money);VIPLevel=level;void setVIPLevel(intlevel)VIPLevel=level;boolean withdraw(doublemoney)/函数重写doubleremain=custMoney-money;switch(VIP

13、Level)case 0:if (remain 0)System.out.println(您不是 VIP 客户,不能透支!您目前的余额为:+custMoney);returnfalse;else custMoney-=money;System.out.println(取款成功,您目前的余额为:+custMoney);returntrue;case 1:if (remain -3000)System.out.println(您的 VIP等级为 1,透支额度不能抽过3000 元,您目前的余额为:+custMoney);returnfalse;else custMoney-=money;System

14、.out.println(取款成功,您目前的余额为:+custMoney);returntrue;case 2:if (remain -10000)System.out.println(您的 VIP等级为 2,透支额度不能抽过10000 元,您目前的余额为:+custMoney);returnfalse;else custMoney-=money;System.out.println(取款成功,您目前的余额为:+custMoney);returntrue;returntrue;publicclass CustDemo publicstaticvoid main(String args)VIPA

15、ccount cust =new VIPAccount4;cust 0=new VIPAccount(1001,Tom,111,400.0f,0);cust 1=new VIPAccount(1002,Mike,222,500.0f,1);cust 2=new VIPAccount(1003,Bob,333,600.0f,2);cust 3=new VIPAccount(1004,Cindy,444,100.0f,1);intind =0;doublemoney;System.out.println(请输入账号:);Scanner sc =new Scanner(System.in);long

16、id =sc.nextLong();for (inti=0;i 4;i+)if (cust i.custID=id)ind=i;while(true)System.out.println(n1.存款 );System.out.println(2.取款 );System.out.println(3.修改密码 );System.out.println(4.查询 );System.out.println(5.退出 );sc =new Scanner(System.in);switch(sc.nextInt()case 1:System.out.println(请输入存款金额:);money=sc.n

17、extDouble();cust ind.deposit(money);cust ind.displayAccout();break;case 2:System.out.println(请输入取款金额:);money=sc.nextDouble();if (cust ind.withdraw(money)cust ind.displayAccout();elseSystem.out.println(您的账号余额不足!);break;case 3:System.out.println(请输入新密码:);cust ind.custPWD =sc.nextInt();break;case 4:cus

18、t ind.displayAccout();break;case 5:System.out.println(欢迎使用 xxx 银行系统!);System.exit(1);【练习题目】8-1(继承与多态)有哺乳动物类mammal,将其作为父类,从其派生出子类猫cat 和子类狗 dog,基类中有方法speak()。8-2(重载)编写一个Java应用程序,从键盘读取用户输入两个字符串,并重载 3 个 strAdd函数分别实现这两个字符串的拼接、整数相加和浮点数相加。要进行异常处理,对输入的不符合要求的字符串提示给用户,不能使程序崩溃。(异常处理)8-3(接口)1.利用接口继承完成对生物、动物、人三个

19、接口的定义。其中生物接口定义呼吸抽象方法;2.动物接口除具备生物接口特征之外,还定义了吃饭和睡觉两个抽象方法;3.人接口除具备动物接口特征外,还定义了思维和学习两个抽象方法。4.定义一个学生类实现上述人接口。8-4(继承、接口)实现一个名为Person 的类和它的子类Employee,Manager 是 Employee 的子类,设计一个接口 Wage,用于涨工资,普通员工一次能涨10,经理能涨20。具体要求如下:(1)接口 Wage 包含 addWage方法,创建类WageImpl 用于实现接口Wage(2)Person 类中的属性有:姓名name(String 类型),地址 address

20、(String 类型),定义该类的构造方法;(3)Employee 类中的属性有:工号ID(String 型),工资wage(double 类型),工龄(int型),定义该类的构造方法;(4)Manager 类中的属性有:级别level(String 类型)定义该类的构造方法;(5)编写一个测试类,产生一个员工和一个经理给该员工和经理涨工资,并输出其具有的信息。(提示:对象类型判断用instanceof)【综合练习】仿照综合例子,在第七章综合例子的基础上改进。要求:1、增加 VIP 卡类,它继承于FuelCard a)VIP 卡有折扣等级(设置属性成员折扣等级:level);(0 级无折扣,1

21、 级 98 折,2级 95 折)b)根据需要,重写VIP 卡的加油的方法(重写);c)仿照综合例子,增加另一个构造函数(重载),包含对level 属性值的构造2、建立 4 种不同油品类型(对象数组),信息为油品G90 G93 G97 D0 单价6.2 6.5 6.9 6.0 3、建立 4张加油卡(对象数组),信息为卡号车牌密码充值总额余额等级201512120001山 A66666123456 1000 800 0 201512016666山 A16816654321 3000 2300 1 201512023333山 A93398888888 5000 3800 2 201512039999山 A88066999999 8000 6790 2 4、实现简单的循环菜单显示,并实现存|充值、加油、显示卡信息、修改密码、更改车牌等功能。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 实施方案

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

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