JAVA实验-题目

上传人:huo****ian 文档编号:135194294 上传时间:2022-08-14 格式:DOC 页数:9 大小:66.51KB
收藏 版权申诉 举报 下载
JAVA实验-题目_第1页
第1页 / 共9页
JAVA实验-题目_第2页
第2页 / 共9页
JAVA实验-题目_第3页
第3页 / 共9页
资源描述:

《JAVA实验-题目》由会员分享,可在线阅读,更多相关《JAVA实验-题目(9页珍藏版)》请在装配图网上搜索。

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

2、tArea( ) /获取圆的面积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() / 成员方法-显示园半径、周长、面积

4、System.out.println(圆半径= + radius);System.out.println(圆周长= + 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;pub

5、lic void dispVol() / 成员方法-显示园柱体积System.out.println(圆柱体积= + getVol();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:(重载)设计一个汽车类

6、Multiplication,在其中定义三个同名的mul方法:第一个方法是计算两个整数的积;第二个方法是计算两个浮点数的积;第三个方法是计算三个浮点数的积。程序代码: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 mu

7、l(double a, double b, double c) double m = a * b * c;System.out.println(a + * + b + * + c + = + m);public class Prog1 public static void 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();

8、(2) 分别定义类飞机和鸟,实现CanFly接口。(3) 定义一个测试类,测试飞机和鸟。测试类中定义一个makeFly()方法,让会飞的事物飞起来。(4) 然后在main方法中创建飞机对象和鸟对象,并在main方法中调用makeFly()方法,让飞机和鸟起飞。程序代码:interface CanFly public void fly();class AirPlane implements CanFly public void fly() System.out.println(airplane is flying);class Bird implements CanFly public void

9、 fly() System.out.println(Bird is flying);class Prog1 static void makeFly(CanFly obj) obj.fly();public static void main(String args) AirPlane ap = new AirPlane();Bird b = new Bird();makeFly(ap);makeFly(b);【综合例子】例:在第七章综合例子的基础上,编写一个VIP账号的管理要求:1、VIPAccount继承Account2、VIP设置3个等级:VIP0:一般账户,不能透支VIP1:透支上限300

10、0元VIP2:透支上限10000元1、 根据透支情况,重写withdraw()方法(重写)2、 两个构造函数,一个与父类Account构造函数的参数相同,另外一个参数增加设置对象的VIP等级(重载)实现简单的循环菜单显示,并实现存|取款、修改密码、显示账户余额等功能(实现的功能和第七章的综合例子相同)import java.util.Scanner;class Account int custID;String custName;int custPWD;double custMoney;Account(int id, String name, int PWD, double money) cu

11、stID = id;custName = name;custPWD = PWD;custMoney = money;void displayAccout() System.out.println(账号: + custID);System.out.println(户名: + custName);System.out.println(余额: + custMoney);boolean deposit(double money)custMoney += money;return true;boolean withdraw(double money)if (custMoneymoney) return

12、false;elsecustMoney -= money;return true;void changePWD(int PWD)custPWD = PWD;class VIPAccount extends Accountint VIPLevel;/VIP特权,透支金额分3个等级为VIP0:一般客户,不能透支,VIP1:3000,VIP2:10000VIPAccount (int id, String name, int PWD, double money) /构造函数重载super(id,name,PWD,money);VIPAccount (int id, String name, int

13、PWD, double money, int level) /构造函数重载super(id,name,PWD,money);VIPLevel = level;void setVIPLevel(int level) VIPLevel = level;boolean withdraw(double money) /函数重写double remain = custMoney - money;switch (VIPLevel)case 0:if (remain 0) System.out.println(您不是VIP客户,不能透支!您目前的余额为: + custMoney);return false;

14、 else custMoney -= money;System.out.println(取款成功,您目前的余额为: + custMoney);return true;case 1:if (remain -3000) System.out.println(您的VIP等级为1,透支额度不能抽过3000元,您目前的余额为: + custMoney);return false; else custMoney -= money;System.out.println(取款成功,您目前的余额为: + custMoney);return true;case 2:if (remain -10000) Syste

15、m.out.println(您的VIP等级为2,透支额度不能抽过10000元,您目前的余额为: + custMoney);return false; else custMoney -= money;System.out.println(取款成功,您目前的余额为: + custMoney);return true;return true;public class CustDemo public static void main(String args) VIPAccount cust = new VIPAccount4;cust0 = new VIPAccount(1001, Tom, 111,

16、 400.0f, 0);cust1 = new VIPAccount(1002, Mike, 222, 500.0f, 1);cust2 = new VIPAccount(1003, Bob, 333, 600.0f, 2);cust3 = new VIPAccount(1004, Cindy, 444, 100.0f, 1);int ind = 0;double money;System.out.println(请输入账号:);Scanner sc = new Scanner(System.in);long id = sc.nextLong();for (int i=0; i4; i+)if

17、 (custi.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.nextDouble();custind.deposit(money);c

18、ustind.displayAccout();break;case 2:System.out.println(请输入取款金额:);money = sc.nextDouble();if (custind.withdraw(money) custind.displayAccout();else System.out.println(您的账号余额不足!);break;case 3:System.out.println(请输入新密码:); custind.custPWD = sc.nextInt();break;case 4:custind.displayAccout(); break;case 5:

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

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

21、g型),工资wage(double类型),工龄(int型),定义该类的构造方法;(4)Manager类中的属性有:级别level(String类型)定义该类的构造方法;(5)编写一个测试类,产生一个员工和一个经理给该员工和经理涨工资,并输出其具有的信息。(提示:对象类型判断用instanceof)【综合练习】仿照综合例子,在第七章综合例子的基础上改进。要求:1、 增加VIP卡类,它继承于FuelCarda) VIP卡有折扣等级 (设置属性成员 折扣等级:level);(0级无折扣,1级98折,2级95折)b) 根据需要,重写VIP卡的加油的方法(重写);c) 仿照综合例子,增加另一个构造函数(重载),包含对level属性值的构造2、 建立4种不同油品类型(对象数组),信息为油品G90G93G97D0单价6.26.56.96.03、建立4张加油卡(对象数组),信息为卡号车牌密码充值总额余额等级201512120001山A6666612345610008000201512016666山A16816654321300023001201512023333山A93398888888500038002201512039999山A880669999998000679024、实现简单的循环菜单显示,并实现存|充值、加油、显示卡信息、修改密码、更改车牌等功能。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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