您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 进出口许可 > JAVA实验4-1答案
广东海洋大学学生实验报告书(学生用表)实验名称实验四(1).类与对象(第1部分)课程名称Java程序设计与开发技术课程号16232204学院(系)信息学院专业计算机科学与技术班级计科1131学生姓名彭德权学号201311621124实验地点钟海楼04019实验日期2015年9月24日一、实验目的(1)学习使用Java中的类来封装对象的属性和功能;(2)学习掌握Java中对象的组合及参数传递。二、实验任务完成实验三指导上实验1、实验2的实验任务。三、实验仪器设备和材料安装有J2SE开发工具的PC机。四、实验内容和步骤实验1机动车编写一个Java应用程序,改程序中有两个类:Vehicle(用于刻画机动车)和User(主类)。具体要求如实验指导所示。代码如下:Vehicle.javapublicclassVehicle{privatedoublespeed;privateintpower;voidspeedUp(ints){this.speed=this.speed+s;}voidspeedDown(ints){this.speed=this.speed-s;}voidsetPower(intp){this.power=p;}intgetPower(){returnthis.power;GDOU-B-11-112}doublegetSpeed(){returnthis.speed;}}User.javapublicclassUser{publicstaticvoidmain(Stringargs[]){Vehiclecar1,car2;car1=newVehicle();car2=newVehicle();car1.setPower(128);car2.setPower(76);System.out.println(car1的功率是:+car1.getPower());System.out.println(car2的功率是:+car2.getPower());car1.speedUp(80);car2.speedUp(80);System.out.println(car1目前的速度:+car1.getSpeed());System.out.println(car2目前的速度:+car2.getSpeed());car1.speedDown(10);car2.speedDown(20);System.out.println(car1目前的速度:+car1.getSpeed());System.out.println(car2目前的速度:+car2.getSpeed());}}运行结果:课后的练习(1)改进speedUp()方法,使得Vehicle类的对象加速时不能将speed值超过200。voidspeedUp(ints){if(this.speed+s200){System.out.println(速度不能超过200);}else{this.speed=this.speed+s;}}在主方法中更改为car1.speedUp(210);运行结果:(2)改进speedDown()方法,使得Vehicle类的对象在减速时不能将speed值小于0。voidspeedDown(ints){if(this.speed-s0){System.out.println(速度不能少于0);}else{this.speed=this.speed-s;}}在主方法中更改为car1.speedUp(80);car1.speedDown(90);运行结果:(3)增加一个刹车方法voidbrake(),Vehicle类的对象调用它将speed的值变成0。voidbrake(){this.speed=0;}在主方法中增加语句:System.out.println(car1刹车);car1.brake();System.out.println(car1目前的速度:+car1.getSpeed());运行结果:实验2家中的电视编写一个Java应用程序,模拟家庭购买一台电视,即家庭将电视作为自己的一个成员,即通过调用一个方法将某个电视的引用传递给自己的电视成员。具体要求如实验指导所示。代码如下:TV.javapublicclassTV{intchannel;voidsetChannel(intm){if(m=1){channel=m;}}intgetChannel(){returnchannel;}voidshowProgram(){switch(channel){case1:System.out.println(综合频道);break;case2:System.out.println(经济频道);break;case3:System.out.println(文艺频道);break;case4:System.out.println(国际频道);break;case5:System.out.println(体育频道);break;default:System.out.println(不能收看+channel+频道);}}}Family.javapublicclassFamily{TVhomeTV;voidbuyTV(TVtv){this.homeTV=tv;}voidremoteControl(intm){homeTV.setChannel(m);}voidseeTV(){homeTV.showProgram();}}MainClass.javapublicclassMainClass{publicstaticvoidmain(Stringargs[]){TVhaierTV=newTV();haierTV.setChannel(5);System.out.println(haierTV的频道是+haierTV.getChannel());FamilyzhangSanFamily=newFamily();zhangSanFamily.buyTV(haierTV);System.out.println(zhangSanFamily开始看电视节目);zhangSanFamily.seeTV();intm=2;System.out.println(zhangSanFamily将电视更换到+m+频道);zhangSanFamily.remoteControl(m);System.out.println(haierTV的频道是+haierTV.getChannel());System.out.println(zhangSanFamily再看电视节目);zhangSanFamily.seeTV();}}运行结果:课后的练习(1)省略代码2程序能否通过编译?若能通过编译,程序输出的结果是怎样的?能编译通过。结果如下图,原因是对象内的元素channel是int型数据,默认值为0。运行结果:(2)在朱类main()方法的最后增添下列代码,并解释运行效果。FamilyliiFamily=newFamily();lisiFamily.buyTV(haierTV);lisiFamily.seeTV();因为zhangSanFamily和lisiFamily引用了同一个对象成员haierTV,导致当zhangSanFamily调用方法remoteControl()改变channel的值时,lisiFamily中的对象成员的channel值也会改变。运行结果:成绩指导教师孙兵日期2015年9月26日注:请用A4纸书写,不够另附纸。第页,共页
本文标题:JAVA实验4-1答案
链接地址:https://www.777doc.com/doc-6291284 .html