内容发布更新时间 : 2024/12/28 12:02:38星期一 下面是文章的全部内容请认真阅读。
华北电力大学
实 验 报 告
实验名称 Java程序面向对象设计(一)
课程名称 Java程序设计
专业班级: 学 号:
学生姓名: 成 绩:
指导教师: 张学斌 实验日期:
一、实验目的及要求 1.掌握类的定义。 2.掌握成员变量和成员方法的定义。 3.掌握构造方法的定义和使用。 4.掌握类的多态性 二、实验环境 Windows2000/Windows XP,JDK 1.2~1.6 三、试验内容和步骤 要求按照实验内容,写出详细实验过程和步骤,必要时截图。 实验1 机动车 1.1实验要求 编写一个Java应用程序,该程序有两个类:Vehicle(用于刻画机动车)和User(主类)。具体要求如下: Vehicle类有一个double类型的变量speed,用于刻画机动车的速度,一个int型变量power,用于刻画机动车的功率。定义了speedUp(int s)方法,体现机动车有加速功能。定义了speedDown()方法,体现机动车有减速功能。定义了setPower(int s),用于设置机动车的功率。定义了getPower()方法,用于获取机动车的功率。 在主类User的mian()方法中用Vehicle类创建对象,并让该对象调用方法设置功率,演示加速和减速功能。 1.2程序模板 Vehicle.java public class Vehicle { 【代码1】//声明double型变量speed,刻画速度 【代码2】//声明int型变量power,刻画功率 void speedUp(int s) { 【代码3】 //将参数s的值与成员变量speed的和赋值给成员变量speed } void speedDown(int d) { 【代码4】//将成员变量speed与参数d的差赋值给成员变量speed } void setPower(int p) { 【代码5】 //将参数p的值赋值给成员变量power } int getPower() { 【代码6】 //返回成员变量power的值 } double getSpeed() { return speed; } } ---------------------------------------------------------------------------------------------- User.java public class User { public static void main(String args[]) { Vehicle car1,car2; 【代码7】 //使用new 运算符和默认的构造方法创建对象car1 【代码8】 //使用new 运算符和默认的构造方法创建对象car2 car1.setPower(128); car2.setPower(76); System.out.println(\的功率是:\ System.out.println(\的功率是:\ 【代码9】 //car1调用speedUp方法将自己的speed的值增加80 【代码10】 //car2调用speedUp方法将自己的speed的值增加80 System.out.println(\目前的速度:\ System.out.println(\目前的速度:\ car1.speedDown(10); car2.speedDown(20); System.out.println(\目前的速度:\ System.out.println(\目前的速度:\ } } 1.3 实验指导 ? 创建一个对象时,成员变量被分配空间,这些内存空间称作该对象的实体或变量,而对象中存放着引用,以确保这些变量被该对象操作使用。 ? 空对象不能使用,即不能让一个空对象去调用方法产生行为。假如程序中使用了空对象,在运行时会产生异常:NullPointerException,对象时动态地分配实体的,Java的编译器对空对象不做检查。因此,在编译时要避免使用空对象。 1.4实验改进(编写程序,并给出结果) 1. 改进speedUp()方法,使得Vehicle类的对象加速时不能将speed值超过200. 2. 改进speedDown()方法,使得Vehicle类的对象在减速时不能将speed值小于0. 3. 增进一个刹车方法void brake(),Vehicle类的对象调用它能将speed的值变成0. 1.5 实验结果 实验2 家中的电视 1.实验要求 编写一个Java应用程序,模拟家庭买一台电视,即家庭将电视作为自己的一个成员,即通过调用一个方法将某个电视的引用传递给自己的电视成员。具体要求如下: ? 有三个源文件,其中TV.java中的TV类负责创建“电视”对象。Family.java中的Family类负责创建“家庭”对象,MainClass.java是主类。 ? 在主类的main()方法中首先使用TV类创建一个对象haierTV ,然后使用Family类再创建一个对象zhangsanFamily,并将先前TV类的实例haierTV的引用传递给zhangsanFamily对象的成员变量homeTV。 2.程序模板 TV.java public class TV { int channel; //电视频道 void setChannel(int m) { if(m>=1){ channel=m; } } int getChannel(){ return channel; } void showProgram(){ switch(channel) { case 1 : System.out.println(\综合频道\ break; case 2 : System.out.println(\经济频道\ break; case 3 : System.out.println(\文艺频道\ break; case 4 : System.out.println(\国际频道\ break; case 5 : System.out.println(\体育频道\ break; default : System.out.println(\不能收看\频道\ } } } ---------------------------------------------------------------------------------------------- Family.java public class Family { TV homeTV; void buyTV(TV tv) { 【代码1】 //将参数tv赋值给homeTV } void remoteControl(int m) { homeTV.setChannel(m); } void seeTV() { homeTV.showProgram(); //homeTV调用showProgram()方法 } } ----------------------------------------------------------------------------------------- MainClass.java public class MainClass { public static void main(String args[]) { TV haierTV = new TV(); 【代码2】 //haierTV调用setChannel(int m),并向参数m传递5 System.out.println(\的频道是\.getChannel()); Family zhangSanFamily = new Family(); 【代码3】//zhangSanFamily调用void buyTV(TV tv)方法,并将haierTV传递给参数TV System.out.println(\开始看电视节目\ zhangSanFamily.seeTV(); int m=2; System.out.println(\将电视更换到\频道\ zhangSanFamily.remoteControl(m); System.out.println(\的频道是\.getChannel()); System.out.println(\再看电视节目\ zhangSanFamily.seeTV(); } } 3.实验结果 实验3 共饮同井水 1.实验要求 编写程序模拟两个村庄共用一口水井。编写一个Village类,该类有一个静态的int型成员变量waterAmount,用于模拟井水的水量。在主类Land的main()方法中创建两个村庄,一个村庄改变了