java1到5章 下载本文

k类创建坦克,并让坦克调用方法设置炮弹的 程序运行效果如图4.3所示。 5.程序模板

按模板要求,将【代码】部分替换为Java程序代码。 Tank.j ava

public class Tank{

【代码1】//声明double型变量speed,刻画速度

【代码2】//声明int型变量bulletAmount,刻画炮弹数量 void speedUp( int s){

【代码3】 //将s+ speed赋值给speed }

void speedDown( int d){ if(speed - d>=O)

【代码4] 11将speed - d赋值给speed else

speed=O; }

void setBulletAmount( int m){ bulletAmount=m: }

int getBulletAmount(){ return bulletAmount; }

double getSpeed(){ return speed; }

void fire(){

if( bulletAmount>=1){

【代码5] //将bulletAmount - l赋值给bulletAmount System. out. println【”打出一发炮弹”)j ) else f

System. out. println(”没有炮弹了,无法开火”)j ) } )

It ankl的炮弹数量:10 lt aIL崆的炮弹数量:10 ltank1目前的速度:80 ltar-娃目前的速度:go ltnk1目前的速度:65 ltn控目前的速度:60 ltarIk1开火: 打出一发炮弹

lt∞崆开火: 打出一盘炮弹 打出一发炮弹

lt—k1的炮弹数量:g ltar.碰的炮弹数量:8 图4.3 Tank类创建对象 Fight . j ava

public class Fight {

public static void main( String args[ ] ) { Tank tankl, tank2 ; tankl = new Tank( ) ; tank2 = new Tank( ) ; tankl. setBulletAmount( 10 ) ; tank2 . setBulletAmount( 10 ) ;

System. out. println( \的炮弹数量 : \ + tankl . getBulletAmount ( 》 ; System. out. println( \tank2的炮弹数量 : \ + tank2 . getBulletAmount ( 》 ;

tankl. speedUp( 80)j tank2. speedUp( 90)j

System. out. println(”tankl目前的速度:”+tankl. getSpeed())j System. out. println(”tank2目前的速度:”+tank2.getSpeed())j tankl.speedDown( 15)j tank2.speedDown( 30)j

System. out. println(”tankl目前的速度:”+tankl. getSpeed())j System. out. println(”tank2日前的速度:”+tank2.getSpeed())j System. out. println(”tankl开火:”)j tankl. fire()j

System. out. println(”tank2开火:”)j tank2. fire()j tank2. fire()j

System. out. println(”tankl的炮弹数量:”+tankl.getBulletAmount())j System. out. println(”tank2的炮弹数量:”+tank2.getBulletAmount())j 6.卖验指导

创建一个对象时,成员变量被分配内存空间,这些内存空间称做该对象的实体或变量,

而对象中存放着引用,以确保这些变量由该对象操作使用。需要注意的是,没有被创建的对

象是空对象,那么不能让一个空对象去调用方法产生行为。假如程序中使用了空对象,在运

行时会出现异常:NuIIPointerException。对象是动态地分配实体,Java的编译器对空对象

不做检查。因此,在编写程序时要避免使用空对象。 7.实验后的练习

(l)改进speedUP方法,使得Tank类的对象加速时不能将speed值超过220。

(2)增加一个刹车方法:void brake(),Tank类的对象调用它能将speed的值变成O。 8.填写实验报告

实验编号:401 学生姓名: 实验时间: 教师签字

┏━━━━━━━━━━━━┳━━━┳━━┳━━┳━━━┳━━━┓ ┃ 实验效果评价 ┃ .4 ┃ B ┃ C ┃ I) ┃ E ┃ ┣━━━━━━━━━━━━╋━━━╋━━╋━━╋━━━╋━━━┫ ┃ 模板完成情况 ┃ ┃ ┃ ┃ ┃ ┃ ┣━━━━━━━━━━━━╋━━━╋━━╋━━╋━━━╋━━━┫ ┃ 实验后练习效果评价 ┃ 。4 ┃ B ┃ c ┃ I) ┃ E ┃ ┣━━━━━━━━━━━━╋━━━╋━━╋━━╋━━━╋━━━┫ ┃ 练习完成情况 ┃ ┃ ┃ ┃ ┃ ┃ ┣━━━━━━━━━━━━╋━━━╋━━╋━━╋━━━╋━━━┫ ┃ 总评 ┃ ┃ ┃ ┃ ┃ ┃ ┗━━━━━━━━━━━━┻━━━┻━━┻━━┻━━━┻━━━┛ 实验2 计算机与光盘 1.相关知识点

类的成员变量可以是某个类的对象,如果用这样的类创建对象,那么该对象中就会有其

他对象,也就是说该类的对象将其他对象作为白己的组成部 一个对象a通过组合对象b来复用对象b的方法,即对象a 对象随时可以更换所组合对象,使得当前对象与所组合的时 类与对象 第 4 童

Ja va面向对象程序设计实验指导与习题解答 合以及参数传递。

编写一个Java应用程序,模拟在计算机中放人光盘,即计算机将CD类型的对象作为

自己的一个成员变量。具体要求如下。

(l)有三个源文件:Computer. java、CD. java和User. java,其中CD. java中的CD类负

责创建光盘对象。Computer. java中的Computer类有类型是CD,名字是includeCD的成

员变量,Computer类负责创建计算机对象。User. java是主类。 (2)在主类的maln方法中首先使用CD类创建一个对象:dataCD,然后使用Computer 类再创建一个对象:computerIMB,computerIMB对象将CD类的实例“dataCD”的引用传

递给computerIMB对象的成员变量“includeCD”。

Computer类组合CD类的实例的UMI。图如图4.4所示。 4.程序效果示例

程序运行效果如图4.5所示。 ┏━━━━━━━━┓ ┃ Computer ┃

┣━━━━━━━━┫ ┃includeCD:CD ┃ ┣━━━━━━━━┫ ┃putCD(CD):void ┃ ┗━━━━━━━━┛

图4.4 Computer组合CD的UML图 5.程序模板

按模板要求,将【代码】部分替换为Java程序伐码。 //CD. java

public class CD { int size;

int content [ ] ;

public void setSize( int size) { this. size = size;

content = new int[size]; }

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 = O;i< min; i++ ) content[ i] = b[ i] ; } }

//Computer. java ldatacD上的内容: 1 123456T8

腑dat aCD的数据复制到计茸机:computerIMB l㈣PuterIMB上的内容: 1 1 2 3 4 5 B T 8

l㈤PuterI\将每个数据增加12

lcomPuterIMB将增值后的数据复制到cD datacD ldat虻D上的内容: 1 13 1 4 15 16 1T 18 19 20 图4.5 计算机与CI) public class Computer { int data[ ] ;

CD includeCD;

public void putCD(CD cd) { includeCD = cd;