Java实验类与继承.doc_第1页
Java实验类与继承.doc_第2页
Java实验类与继承.doc_第3页
Java实验类与继承.doc_第4页
Java实验类与继承.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验报告实验课程: Java面向程序设计实验 实验内容: 类与对象 院 (系): 计算机学院 专 业: 计算机科学与技术(软件工程方向) 班 级: 学生姓名: 学 号: 指导教师: 2014年 3 月 26 日一、实验目的:1、掌握用类来封装对象的属性和行为的方法;2、掌握对象的组合和参数传递;3、掌握类变量与实例变量、类方法与实例方法的区别。二、实验内容()实验题目一:编写一个java应用程序,该程序中有两个类:Tank和Fight具体要求如下:1、Tank类有一个double类型变量speed,用于刻画坦克的速度;一个int型变量bulletAmount,用于刻画坦克的炮弹数量。定义了speedUp()和speedDown()方法,体现坦克有加速、减速行为;定义了setBulletAmount(int p)方法,用于设置坦克炮弹的数量;定义了fire()方法,体现坦克有开炮行为。1 程序源代码:package p1;public class Tank double speed;int bulletAmount;void speedUp(int s)speed=s+speed;void speedDown(int d)if(speed-d=0)speed=speed-d;elsespeed=0;void setBulletAmount(int m)bulletAmount=m;int getBulletAmount()return bulletAmount;double getSpeed()return speed;void fire()if(bulletAmount=1)bulletAmount=bulletAmount-1;System.out.println(打出一发炮弹);elseSystem.out.println(没有炮弹了,无法开火);package p1;public class Fight public static void main(String args)Tank tank1,tank2;tank1=new Tank();tank2=new 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.getSpeed();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();tank2.fire();System.out.println(tank1的炮弹数量:+tank1.getBulletAmount();System.out.println(tank2的炮弹数量:+tank2.getBulletAmount();2 实验结果: 图13、实验课后练习:(1)改进speedUp方法,使得Tank类的对象调用它能将Speed值超过220;答:只需加入如下代码,其实验结果如图2:void speedUp(int s)if(s+speed=200)/加入判断语句即可speed=s+speed;图2:tank2加速200,超过220,所以tank2数值保持不变(2)增加一个刹车方法:void brake(),Tank类的对象调用它将speed的值变为0.答:只需增加如下代码:其结果如图3所示:void brake()speed=0;System.out.println(tank2加速200:);tank2.speedUp(200);System.out.println(tank2调用brake后:);tank2.brake(); 图3:可看出tank2被清零实验2:计算机与光盘1、 程序源代码:package p1;public 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.length);for(int i=0;imin;i+)contenti=bi;package p1;public class Computer int data;CD includeCD;public void putCD(CD cd)includeCD=cd;int size=includeCD.getSize();data=new intsize;void copyToComputer()int b=includeCD.getContent();int min=Math.min(data.length,b.length);for(int i=0;imin;i+)datai=bi;public void addData(int m)for(int i=0;idata.length;i+)datai=datai+m;void copyToCD()includeCD.setContent(data);void showData()for(int i=0;idata.length;i+)System.out.printf(%3d,datai);package p1;public class User public static void main(String args)CD dataCD=new CD();int b=1,2,3,4,5,6,7,8;dataCD.setSize(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();computerIMB.putCD(dataCD);System.out.println(n将dataCD的数据复制到计算机:computerIMB);computerIMB.copyToComputer();System.out.println(ncomputerIMB上的内容:);computerIMB.showData();int m=12;System.out.println(ncomputerIMB将每个数据增加+m);computerIMB.addData(m);System.out.println(computerIMB将增值后的数据复制到CD:dataCD);computerIMB.copyToCD();System.out.println(dataCD上的内容:);a=dataCD.getContent();for(int i=0;ia.length;i+)System.out.printf(%3d,ai);2、实验结果:图42、 实验课后练习:主类中再添加一个CD的对象,然后将计算机中的数据(data数组)复制到CD对象中。答:只需增加如下代码,实验结果如图5public int getData()return data;CD newCD=new CD();computerIMB.copyToCD();newCD.setSize(computerIMB.getData().length);newCD.setContent(computerIMB.getData();System.out.println(nnewCD上的内容:);a=newCD.getContent();for(int i=0;ia.length;i+)System.out.printf(%3d,ai); 图5实验3 家族的姓氏1、 程序源代码:package p1;public class FamilyPerson static String surname;String name;public static void setSurname(String s)surname=s;public void setName(String s)name=s;package p1;public class MainClass public static void main(String args)FamilyPerson.surname=李;FamilyPerson father,sonOne,sonTwo;father=new FamilyPerson();sonOne=new FamilyPerson();sonTwo=new FamilyPerson();father.setName(向阳);sonOne.setName(抗日);sonTwo.setName(抗战);System.out.println(父亲:+father.surname+);System.out.println(大儿子:+sonOne.surname+sonO);System.out.println(二儿子:+sonTwo.surname+sonT);father.setSurname(张);System.out.println(父亲:+father.surname+);System.out.println(大儿子:+sonOne.surname+sonO);System.out.println(二儿子:+sonTwo.surname+sonT);2、实验结果: 图63、 实验后的练习(1) 代码3是否可以是FamilyPerson.setSurname(“张”);答:可以,因为该方法是类方法可以用类名调用。(2) 能否将主类中的

温馨提示

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

最新文档

评论

0/150

提交评论