第四周实验主要内容类与对象实验1机动车1实验目的本实验的目的是让大家使用类来封装对象的属性和功能。2实验要求编写一个Java应用程序,该程序中有两个类:Vehicle(用于刻画机动车)和User(主类)。具体要求如下:Vehicle类有一个double类型的变量speed,用于刻画机动车的速度,一个int型变量power,用于刻画机动车的功率。方法定义了speedUp(ints)方法,体现机动车有加速功能。定义了speedDown()方法,体现机动车有减速功能。方法定义了setPower(intp)方法,用于设置机动车的功率。定义了getPower()方法,用于获取机动车的功率。在主类User的main()方法中用Vehicle类创建对象,并让该对象调用方法设置功率,演示加速和减速功能。3.程序模板请按照模板要求,将【代码】替换为Java程序代码;给出程序的运行结果。参见“2014年9月26日”文件夹下的“实验1”子文件夹下的源程序Vehicle.javaUser.java4.知识点巩固创建一个对象时,成员变量被分配内存空间,这些内存空间称作该对象的实体或变量,而对象中存放着引用,以确保这些变量被该对象操作使用。空对象不能使用,即不能让一个空对象去调用方法产生行为。假如程序中使用了空对象,在运行时会出现异常:NullPointerException。对象是动态地分配实体的,Java的编译器对空对象不做检查。因此,在编写程序时要避免使用空对象。5.继续练习(1)给出User.java第4、5条语句执行完毕后,car1、car2对象的成员变量初始化后的值;(2)改进speedUp()方法,使得Vehicle类的对象加速时不能将speed值超过200.(3)改进speedDown()方法,使得Vehicle类的对象在减速时不能将speed值小于0.(4)增加一个刹车方法voidbrake(),Vehicle类的对象调用它能将speed的值变为0,并在User.java中添加如下语句,然后调用brake方法,并获取刹车后的汽车速度。System.out.println(“前方红灯,请刹车”);实验2家中的电视1.实验目的本实验的目的是让大家掌握对象的组合以及参数传递。2.实验要求编写一个Java应用程序,模拟家庭买一台电视,即家庭将电视作为自己的一个成员,即通过调用一个方法将某个电视的引用传递给自己的电视成员。具体要求如下。有三个源文件:TV.java、Family.java和MainClass.java,其中TV.java中的TV类负责创建“电视”对象,Family.java中的Family类负责创建“家庭”对象,MainClass.java是主类。在主类的main()方法中首先使用TV类创建一个对象haierTV,然后使用Family类再创建一个对象zhangSanFamily,并将先前TV类的实例haierTV的引用传递给zhangSanFamily对象的成员变量homeTV。3.程序模板请按模板要求,将【代码】替换为Java程序代码;给出程序的运行结果。参见“2014年9月26日”文件夹下的“实验2”子文件夹下的源程序4.知识点巩固当参数是引用类型时,“传值”传递的是变量中存放的“引用”,而不是变量所引用的实体。需要注意的是,对于两个同类型的引用型变量,如果具有同样的引用,就会有同样的实体,因此如果改变参数变量所引用的实体,就会导致原变量的实体发生同样的变化。5.继续练习(1)TV.java中的switch语句体当中的break语句如果被省略是否合理,并说明为什么?(2)省略【代码2】程序能否通过编译?若能通过编译,程序输出的结果是怎样的?(3)在主类的main()方法的最后添加下列代码,并解释运行效果。(4)学会使用Debug调试程序,从MainClass类中的第三行开始调试,试着写出每条语句执行完毕所产生的变化。FamilylisiFamily=newFamily();lisiFamily.buyTV(haierTV);lisiFamily.seeTV();实验3两个村庄同饮一口井水(可选)1.实验目的本实验的目的是让大家掌握类变量与实例变量,以及类方法与实例方法的区别。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类main()方法中倒数第2行代码是否可以更改为:peopleNumber=Village.getPeopleNumber();实验四设计你认为有趣的、且能用到第四章所学知识的类,创建相关类的对象,书写类所包含的属性和方法,完成特定的功能(可选)。