2014年9月26日-实验指导书_第1页
2014年9月26日-实验指导书_第2页
2014年9月26日-实验指导书_第3页
全文预览已结束

下载本文档

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

文档简介

1、第四周实验主要内容 类与对象实验1 机动车1 实验目的本实验的目的是让大家使用类来封装对象的属性和功能。2 实验要求编写一个Java应用程序,该程序中有两个类:Vehicle(用于刻画机动车)和User(主类)。具体要求如下:l Vehicle类有一个double类型的变量speed,用于刻画机动车的速度,一个int型变量power,用于刻画机动车的功率。方法定义了speedUp(int s)方法,体现机动车有加速功能。定义了speedDown()方法,体现机动车有减速功能。方法定义了setPower(int p)方法,用于设置机动车的功率。定义了getPower()方法,用于获取机动车的功率

2、。l 在主类User的main()方法中用Vehicle类创建对象,并让该对象调用方法设置功率,演示加速和减速功能。3. 程序模板请按照模板要求,将【代码】替换为Java程序代码;给出程序的运行结果。参见“2014年9月26日”文件夹下的“实验1”子文件夹下的源程序Vehicle.javaUser.java4. 知识点巩固l 创建一个对象时,成员变量被分配内存空间,这些内存空间称作该对象的实体或变量,而对象中存放着引用,以确保这些变量被该对象操作使用。l 空对象不能使用,即不能让一个空对象去调用方法产生行为。假如程序中使用了空对象,在运行时会出现异常:NullPointerException。

3、对象是动态地分配实体的,Java的编译器对空对象不做检查。因此,在编写程序时要避免使用空对象。5. 继续练习(1)给出User.java第4、5条语句执行完毕后,car1 、car2 对象的成员变量初始化后的值;(2)改进speedUp()方法,使得Vehicle类的对象加速时不能将speed值超过200.(3)改进speedDown()方法,使得Vehicle类的对象在减速时不能将speed值小于0.(4)增加一个刹车方法void brake(),Vehicle类的对象调用它能将speed的值变为0,并在User.java中添加如下语句,然后调用brake方法,并获取刹车后的汽车速度。Sys

4、tem.out.println(“前方红灯,请刹车”);实验2 家中的电视1. 实验目的本实验的目的是让大家掌握对象的组合以及参数传递。2. 实验要求编写一个Java应用程序,模拟家庭买一台电视,即家庭将电视作为自己的一个成员,即通过调用一个方法将某个电视的引用传递给自己的电视成员。具体要求如下。l 有三个源文件:TV.java、Family.java 和 MainClass.java,其中TV.java 中的TV类负责创建“电视”对象,Family.java 中的Family类负责创建“家庭”对象,MainClass.java是主类。l 在主类的main() 方法中首先使用TV类创建一个对象

5、haierTV,然后使用Family类再创建一个对象zhangSanFamily,并将先前TV类的实例haierTV的引用传递给zhangSanFamily对象的成员变量homeTV。3. 程序模板请按模板要求,将【代码】替换为Java程序代码;给出程序的运行结果。参见“2014年9月26日”文件夹下的“实验2”子文件夹下的源程序4. 知识点巩固当参数是引用类型时,“传值”传递的是变量中存放的“引用”,而不是变量所引用的实体。需要注意的是,对于两个同类型的引用型变量,如果具有同样的引用,就会有同样的实体,因此如果改变参数变量所引用的实体,就会导致原变量的实体发生同样的变化。5. 继续练习(1)

6、 TV.java中的switch语句体当中的break语句如果被省略是否合理,并说明为什么?(2) 省略【代码2】程序能否通过编译?若能通过编译,程序输出的结果是怎样的?(3) 在主类的main()方法的最后添加下列代码,并解释运行效果。(4) 学会使用Debug调试程序,从MainClass类中的第三行开始调试,试着写出每条语句执行完毕所产生的变化。Family lisiFamily = new Family();lisiFamily.buyTV(haierTV);lisiFamily.seeTV();实验3 两个村庄同饮一口井水(可选)1. 实验目的本实验的目的是让大家掌握类变量与实例变量

7、,以及类方法与实例方法的区别。2. 实验要求编写程序模拟两个村庄共用同一口井水。编写一个Village类,该类有一个静态的int型成员变量waterAmount,用于模拟井水的水量。在主类Land的main()方法中创建两个村庄,一个村庄改变了waterAmount的值,另一个村庄查看waterAmount的值。3. 程序模板请按模板要求,将【代码】替换为Java程序代码;给出程序的运行结果。参见“2014年9月26日”文件夹下的“实验3”子文件夹下的源程序4. 知识点巩固当Java程序执行时,类的字节码文件(.class文件)被加载到内存。类中的类变量就被分配了相应的内存空间,所有的对象共享类变量。如果该类创建对象,那么不同对象的实例变量互不相同,即被分配不同的内存空间。5. 继续练习(1) Village.java中的静态变量waterAmount又叫做什么变量?说说把waterAmount设置为静态变量的必要性;静态方法lookWaterAmount方法又叫做什么方法,说说把lookWaterAmount方法属性设置为static的必要性。(2) Village.java采用的是隐式(默认)构造函数吗?(3)【代码3】是否可以是Village.drinkWater(50);(4)【代码4】是否可以是Village.lookWaterAmount();(5)Land类

温馨提示

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

评论

0/150

提交评论