版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验四 类与对象1. 实验目的1、使用类来封装对象的属性和行为;2、掌握对象的组合以及参数传递;3、掌握类变量与实例变量,以及类方法与实例方法的区别2. 实验内容1、参考教科书,完成下面实验:1)实验 1 Tank 类2)实验2计算机与光盘3)实验3家族的姓氏4)实验4三角形、梯形和圆形的类封装5)实验5实例成员与类成员2、完成习题:1)根据要求修改实验1,改进speedUP方法,使得Tank类的对象加速 时不能将speed值超过220;增加一个刹车方法:void brake() , Tank类的 对象调用它能将speed 的值变成0。2)根据要求修改实验2,主类中再增加一个CD 的对象,然后
2、将计算机中的数据(data数组)复制到CD对象中。3、提高题编写储蓄账户类及测试类,模拟存款,参考以下运行方式:( 1)新开5 个储蓄账户,各储蓄账户的编号、户名在新开储蓄账户时初始化,假设每位用户新开储蓄账户时都存入了一笔钱。( 2)提示用户从键盘输入储蓄账户编号。( 3)若输入的储蓄账户编号与新开的5 个储蓄账户编号之一匹配,则提示用户从键盘输入存款金额,存款金额必须大于0,否则显示错误提示,直到用户输入的存款金额大于 0 为止。( 4)相应储蓄账户的余额被更新。( 5)存款完成后,提示存款成功,显示该储蓄账户的编号、户名、余 额。( 6)若输入的储蓄账户编号与新开的5 个储蓄账户编号均无
3、法匹配,显示错误提示,并询问是否还要继续存款。( 7)用户输入yes,继续执彳T步骤(2),否则显示退出信息。最基本要求:绘制 UML 类图;储蓄账户的余额必须确保大于等于 0。3. 实验步骤参考教材中相关的实验。4. 评分标准1. A内容功能完善,编程风格好,人机接口界面好;2. B内容功能完善,编程风格良好,人机接口界面良好;3. C完成必做内容;4. D能完成必做内容;5. E未按时完成必做内容,或者抄袭(雷同者全部为E)参照书上实验按模版要求,将【代码】替换为 Java 程序代码,编写好完整的程序文档,最后运行得到的相关文件,把实验所得文件一起打包上交。 (压缩包的文件名为:学号后三位
4、和名字开头字母,如 109zhh RAR|ZIP)实验 1 Tank 类模板代码Tank.javapublic class Tank 【代码1】/声明double型变量speed,刻画速度【代码2】/声明int型变量bulletAmount ,刻画炮弹数量 void speedUp(int s)/【代码3 /s+speed赋值给speedvoid speedDown(int d)if(speed-d=0)/【代码4 /d-speed赋值给speedelsespeed=0;int getBulletAmount() return bulletAmount;void setBulletAmount
5、(int m) bulletAmount = m;double getSpeed() return speed;void fire()if(bulletAmount=1)/ 【代码5】 / 将 bulletAmount-1 赋值给 bulletAmountSystem.out.println( 打出一发炮弹);elseSystem.out.println( 没有炮弹了,无法开火);Fight.javapublic class Fight public static void main(String args) Tank tank1,tank2;tank1=new Tank();tank2=ne
6、w Tank();tank1.setBulletAmount(10);tank2.setBulletAmount(10);System.out.println(tank1 的炮弹数量:+tank1.getBulletAmount();System.out.println(tank2 的炮弹数量:+tank2.getBulletAmount();tank1.speedUp(80);tank2.speedUp(90);System.out.println(tank1 目前的速度:+tank1.getSpeed();System.out.println(tank2 目前的速度:+tank2.getS
7、peed();tank1.speedDown(15);tank2.speedDown(30);System.out.println(tank1 目前的速度:+tank1.getSpeed();System.out.println(tank2 目前的速度:+tank2.getSpeed();System.out.println(tank1 开火:);tank1.fire();System.out.println(tank2 开火:);tank2.fire();System.out.println(tank1 的炮弹数量:+tank1.getBulletAmount();System.out.pr
8、intln(tank2 的炮弹数量:+tank2.getBulletAmount();实验 2 计算机与光盘模板代码CD.javapublic class CD int size;int content;public void setSize(int size)this.size=size;content=new intsize;public int getSize()return size;public int getContent() return content;public void setContent(int b) int min=Math.min(content.length,b
9、.length);for(int i=0;imin;i+) contenti=bi;Computer.javapublic class Computer int data;CD includCD;public void putCD(CD cd)includCD=cd;int size=includCD.getSize();data=new intsize;void copyToComputer()int b=includCD.getContent();int min=Math.min(data.length,b.length);for(int i=0;idata.length;i+) data
10、i=bi;public void addData(int m)for(int i=0;idata.length;i+) datai=datai+m;void copyToCD()includCD.setContent(data);void showData()for(int i=0;idata.length;i+)System.out.printf(%3d,datai);User.javapublic class User public static void main(String args) CD dataCD=new CD();int b=1,2,3,4,5,6,7,8;dataCD.s
11、etSize(b.length);dataCD.setContent(b);int a=dataCD.getContent();System.out.println(dataCD 上的内容: );for(int i=0;ia.length;i+)System.out.printf(%3d,ai);Computer computerIMB=new Computer();【代码 1 】 /computerIMB 调用 putCD(CD cd) 方法,将 dataCD 的引用传递给cdSystem.out.println(n 将 dataCD 的数据复制到计算机: computerIMB.);【代码
12、 2 】 /computerIMB 调用 copyToComputer() 方法System.out.println(computerIMB 上的内容: );computerIMB.showData();int m=12;System.out.println(ncomputerIMB 将每个数据增加+m);computerIMB.addData(m);System.out.println(computerIMB 将增值后的数据复制到 CD: dataCD);【代码 3】 /computerIMB 调用 copyToCD() 方法System.out.println(dataCD 上的内容: )
13、;a=dataCD.getContent();for(int i=0;ia.length;i+)System.out.printf(%3d,ai);实验 3 家族的姓氏模板代码FamilyPerson.javapublic class FamilyPerson static String surname;String name;public static void setSurname(String s) surname = s;public void setName(String s) = s;MainClass.javapublic class MainClass pu
14、blic static void main(String args) 【代码1】用类名FamilyPerson访问surname,并为surname赋值:李 FamilyPerson father,sonOne,sonTwo;father=new FamilyPerson();sonOne=new FamilyPerson();sonTwo=new FamilyPerson();【代码2】/father调用setName(String s),传递向阳sonOne.setNameC抗日);sonTwo.setName(抗战);System.out.println( 父亲: +father.sur
15、name+);System.out.println( 大儿子:+sonOne.surname+sonO);System.out.println( 二儿子:+sonTwo.surname+sonT);【代码 3】/father 调用 setName(String s),传递张System.out.println( 父亲: +father.surname+);System.out.println( 大儿子:+sonOne.surname+sonO);System.out.println( 二儿子:+sonTwo.
16、surname+sonT);实验 4 三角形、梯形和圆形的类封装模板代码AreaAndLength.javaclass Trangledouble sideA,sideB,sideC,area,length;boolean boo;public Trangle(double a,double b,double c)【代码1】/参数a,b,c分别赋值给sideA,sideB,sideCif( 【代码2】 ) /a,b,c 构成三角形的条件表达式3】 /给 boo 赋值。 else 【代码4 】 /给boo 赋值。double getLength() 【代码5】 /方法体,要求计算出
17、length 的值并返回 public double getArea() if(boo)double p=(sideA+sideB+sideC)/2.0;area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC) ; return area;elseSystem.out.println( 不是一个三角形,不能计算面积);return 0; public void setABC(double a,double b,double c)【代码6】/参数a,b,c分别赋值给sideA,sideB,sideCif( 【代码 7】 ) /a,b,c 构成三角形的条件表达式
18、 【代码8】 /给 boo 赋值。 else 【代码9 】 /给boo 赋值。class Laderdouble above,bottom,height,area;Lader(double a,double b,double h)【代码10方法体,将参数a,b,c分别赋值给above,bottom,heightdouble getArea()【代码11方法体,要求计算出area返回class Circledouble radius,area;Circle(double r)【代码 12 】 /方法体double getArea()【代码13】 / 方法体,要求计算出area 返回double
19、getLength()【代码 14】 /getArea 方法体的代码 ,要求计算出 length 返回 void setRadius(double newRadius)radius=newRadius;double getRadius()return radius;public class AreaAndLengthpublic static void main(String args)double length,area;Circle circle=null;Trangle trangle;Lader lader;【代码 15 】 /创建对象 circle【代码16 】 /创建对象trang
20、le 。【代码17 】 /创建对象lader【代码18】 / circle 调用方法返回周长并赋值给lengthSystem.out.println( 圆的周长:+length);【代码19】 / circle 调用方法返回面积并赋值给areaSystem.out.println( 圆的面积:+area);【代码 20 】 / trangle 调用方法返回周长并赋值给lengthSystem.out.println( 三角形的周长:+length);【代码 21 】 / trangle 调用方法返回面积并赋值给areaSystem.out.println( 三角形的面积:+area);【代码22】 lader调用方法返回面积并赋值给areaSystem.out.println( 梯形的面积:+area);【代码 23 】 / trangle 调用方法设置三个边,要求将三个边修改为 12,34,1。【代码 24 】 / trangle 调用方法返回面积并赋值给areaSystem.out.println( 三角形的面积:+area);【代码 25 】 / trangle 调用方法返回周长并赋值给lengthSystem.out.println(三角
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 互联网诊室工作制度
- 人民日报社工作制度
- 企业青年团工作制度
- 中医卫生室工作制度
- 信息技术部工作制度
- 体育馆防火工作制度
- 办公室各类工作制度
- 加拿大食堂工作制度
- 劳动课教师工作制度
- 区妇幼保健工作制度
- 日本所有番号分类
- 非煤矿山各类人员职责制度操作规程
- 《中药调剂技术》中职全套教学课件
- 智能科学与技术专业建设思路
- 安全生产责任制课件
- 英语教学论文:利用“Big question”问题链探究单元主题意义
- 航空航天行业飞行安全与维护管理方案
- 2024年上海市浦东新区卫生系统招聘护士岗位考试《护理学》试题及答案
- 人工智能训练师理论知识考核要素细目表四级
- GB/T 36548-2024电化学储能电站接入电网测试规程
- NB-T35020-2013水电水利工程液压启闭机设计规范
评论
0/150
提交评论