收藏 分享(赏)

Java实验类与继承.doc

上传人:mcady 文档编号:4293673 上传时间:2018-12-21 格式:DOC 页数:13 大小:480KB
下载 相关 举报
Java实验类与继承.doc_第1页
第1页 / 共13页
Java实验类与继承.doc_第2页
第2页 / 共13页
Java实验类与继承.doc_第3页
第3页 / 共13页
Java实验类与继承.doc_第4页
第4页 / 共13页
Java实验类与继承.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、实验报告实验课程: Java 面向程序设计实验 实验内容: 类与对象 院 (系): 计算机学院 专 业: 计算机科学与技术(软件工程方向)班 级: 学生姓名: 学 号: 指导教师: 2014 年 3 月 26 日一、实验目的:1、掌握用类来封装对象的属性和行为的方法;2、掌握对象的组合和参数传递;3、掌握类变量与实例变量、类方法与实例方法的区别。二、实验内容()实验题目一:编写一个 java 应用程序,该程序中有两个类:Tank 和Fight 具体要求如下:1、Tank 类有一个 double 类型变量 speed,用于刻画坦克的速度;一个 int 型变量 bulletAmount,用于刻画坦

2、克的炮弹数量。定义了 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)bul

3、letAmount=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

4、 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(“tan

5、k2目前的速度:“+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的炮弹数量:“

6、+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 类的对象调

7、用它将 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=

8、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.getS

9、ize();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

10、.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

11、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(“compu

12、terIMB将增值后的数据复制到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();com

13、puterIMB.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 n

14、ame;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();fat

15、her.setName(“向阳“ );sonOne.setName(“抗日“ );sonTwo.setName(“抗战“ );System.out.println(“父亲:“+father.surname+father. name);System.out.println(“大儿子:“ +sonOne.surname+sonOne.name);System.out.println(“二儿子:“ +sonTwo.surname+sonTwo.name);father.setSurname(“张“) ;System.out.println(“父亲:“+father.surname+father. n

16、ame);System.out.println(“大儿子:“ +sonOne.surname+sonOne.name);System.out.println(“二儿子:“ +sonTwo.surname+sonTwo.name);2、实验结果:图 63、实验后的练习(1)代码 3 是否可以是 FamilyPerson.setSurname(“张”);答:可以,因为该方法是类方法可以用类名调用。(2)能否将主类中的代码:sonOne.setName(“抗日”);修改为:FamilyPerson.setName(“抗日” ) ;答:不行,因为 FamilyPerson 只是个类名,不是具体的实例。只有静态方法才能被类名调用。二.个人小结通过本次实验,了解到了类与对象,使用 new 运算符和类的构造方法创建对象,熟悉了类方法、类变量,实例方法、实例变量,明白了 Java 程序是由若干个类所构成。了解到了对象的组合以及参数传递,在实验过程中,由于理解题目错误,导致离题,经过老师的提醒,终于写出了正确答案。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 中学实验

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报