Java实验类与继承Word文件下载.docx
- 文档编号:20443391
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:12
- 大小:398.49KB
Java实验类与继承Word文件下载.docx
《Java实验类与继承Word文件下载.docx》由会员分享,可在线阅读,更多相关《Java实验类与继承Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。
编写一个java应用程序,该程序中有两个类:
Tank和Fight具体要求如下:
1、Tank类有一个double类型变量speed,用于刻画坦克的速度;
一个int型变量bulletAmount,用于刻画坦克的炮弹数量。
定义了speedUp()和speedDown()方法,体现坦克有加速、减速行为;
定义了setBulletAmount(intp)方法,用于设置坦克炮弹的数量;
定义了fire()方法,体现坦克有开炮行为。
1.程序源代码:
packagep1;
publicclassTank{
doublespeed;
intbulletAmount;
voidspeedUp(ints){
speed=s+speed;
}
voidspeedDown(intd){
if(speed-d>
=0)
speed=speed-d;
else
speed=0;
voidsetBulletAmount(intm){
bulletAmount=m;
intgetBulletAmount(){
returnbulletAmount;
}
doublegetSpeed(){
returnspeed;
voidfire(){
if(bulletAmount>
=1){
bulletAmount=bulletAmount-1;
System.out.println("
打出一发炮弹"
);
else{
没有炮弹了,无法开火"
publicclassFight{
publicstaticvoidmain(Stringargs[]){
Tanktank1,tank2;
tank1=newTank();
tank2=newTank();
tank1.setBulletAmount(10);
tank2.setBulletAmount(10);
tank1的炮弹数量:
"
+tank1.getBulletAmount());
tank2的炮弹数量:
+tank2.getBulletAmount());
tank1.speedUp(80);
tank2.speedUp(90);
tank1目前的速度:
+tank1.getSpeed());
tank2目前的速度:
+tank2.getSpeed());
tank1.speedDown(15);
tank2.speedDown(30);
tank1开火:
tank1.fire();
tank2开火:
tank2.fire();
2.实验结果:
图1
3、实验课后练习:
(1)改进speedUp方法,使得Tank类的对象调用它能将Speed值超过220;
答:
只需加入如下代码,其实验结果如图2:
voidspeedUp(ints){
if(s+speed<
=200)//加入判断语句即可
图2:
tank2加速200,超过220,所以tank2数值保持不变
(2)增加一个刹车方法:
voidbrake(),Tank类的对象调用它将speed的值变为0.
只需增加如下代码:
其结果如图3所示:
voidbrake(){
speed=0;
System.out.println("
tank2加速200:
tank2.speedUp(200);
tank2调用brake后:
tank2.brake();
图3:
可看出tank2被清零
实验2:
计算机与光盘
1、程序源代码:
publicclassCD{
intsize;
intcontent[];
publicvoidsetSize(intsize){
this.size=size;
content=newint[size];
publicintgetSize(){
returnsize;
publicint[]getContent(){
returncontent;
publicvoidsetContent(int[]b){
intmin=Math.min(content.length,b.length);
for(inti=0;
i<
min;
i++)
content[i]=b[i];
publicclassComputer{
intdata[];
CDincludeCD;
publicvoidputCD(CDcd){
includeCD=cd;
intsize=includeCD.getSize();
data=newint[size];
voidcopyToComputer(){
int[]b=includeCD.getContent();
intmin=Math.min(data.length,b.length);
data[i]=b[i];
publicvoidaddData(intm){
for(inti=0;
data.length;
i++){
data[i]=data[i]+m;
voidcopyToCD(){
includeCD.setContent(data);
voidshowData(){
System.out.printf("
%3d"
data[i]);
publicclassUser{
CDdataCD=newCD();
intb[]={1,2,3,4,5,6,7,8};
dataCD.setSize(b.length);
dataCD.setContent(b);
inta[]=dataCD.getContent();
dataCD上的内容:
a.length;
System.out.printf("
a[i]);
ComputercomputerIMB=newComputer();
computerIMB.putCD(dataCD);
\n将dataCD的数据复制到计算机:
computerIMB"
computerIMB.copyToComputer();
\ncomputerIMB上的内容:
computerIMB.showData();
intm=12;
\ncomputerIMB将每个数据增加"
+m);
computerIMB.addData(m);
computerIMB将增值后的数据复制到CD:
dataCD"
computerIMB.copyToCD();
a=dataCD.getContent();
2、实验结果:
图4
2、实验课后练习:
主类中再添加一个CD的对象,然后将计算机中的数据(data数组)复制到CD对象中。
只需增加如下代码,实验结果如图5
publicint[]getData(){
returndata;
CDnewCD=newCD();
newCD.setSize(computerIMB.getData().length);
newCD.setContent(computerIMB.getData());
\nnewCD上的内容:
a=newCD.getContent();
图5
实验3家族的姓氏
publicclassFamilyPerson{
staticStringsurname;
Stringname;
publicstaticvoidsetSurname(Strings){
surname=s;
publicvoidsetName(Strings){
name=s;
publicclassMainClass{
FamilyPerson.surname="
李"
;
FamilyPersonfather,sonOne,sonTwo;
father=newFamilyPerson();
sonOne=newFamilyPerson();
sonTwo=newFamilyPerson();
father.setName("
向阳"
sonOne.setName("
抗日"
sonTwo.setName("
抗战"
父亲:
+father.surname+father.name);
大儿子:
+sonOne.surname+sonOne.name);
二儿子:
+sonTwo.surname+sonTwo.name);
father.setSurname("
张"
图6
3、实验后的练习
(1)代码3是否可以是FamilyPerson.setSurname(“张”);
可以,因为该方法是类方法可以用类名调用。
(2)能否将主类中的代码:
sonOne.setName(“抗日”);
修改为:
FamilyPerson.setName(“抗日”);
不行,因为FamilyPerson只是个类名,不是具体的实例。
只有静态方法才能被类名调用。
二.个人小结
通过本次实验,了解到了类与对象,使用new运算符和类的构造方法创建对象,熟悉了类方法、类变量,实例方法、实例变量,明白了Java程序是由若干个类所构成。
了解到了对象的组合以及参数传递,在实验过程中,由于理解题目错误,导致离题,经过老师的提醒,终于写出了正确答案。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 实验 继承