ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:49.75KB ,
资源ID:6326527      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6326527.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Java程序设计试验2学生版.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Java程序设计试验2学生版.docx

1、Java程序设计试验2学生版Java程序设计-试验2(学生版)华北电力大学实 验 报 告 实验名称 Java程序面向对象设计(一) 课程名称 Java程序设计 专业班级: 学生姓名: 学 号: 成 绩:指导教师: 张学斌 实验日期: 一、实验目的及要求1.掌握类的定义。2.掌握成员变量和成员方法的定义。3.掌握构造方法的定义和使用。4.掌握类的多态性二、实验环境Windows2000/Windows XP,JDK 1.21.6 三、试验内容和步骤要求按照实验内容,写出详细实验过程和步骤,必要时截图。实验1 机动车 1.1实验要求编写一个Java应用程序,该程序有两个类:Vehicle(用于刻画

2、机动车)和User(主类)。具体要求如下:Vehicle类有一个double类型的变量speed,用于刻画机动车的速度,一个int型变量power,用于刻画机动车的功率。定义了speedUp(int s)方法,体现机动车有加速功能。定义了speedDown()方法,体现机动车有减速功能。定义了setPower(int s),用于设置机动车的功率。定义了getPower()方法,用于获取机动车的功率。在主类User的mian()方法中用Vehicle类创建对象,并让该对象调用方法设置功率,演示加速和减速功能。1.2程序模板 Vehicle.javapublic class Vehicle 【代码

3、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的值自己的speed的值增加80 【代码10】 /car2调用speedUp方法将自己的speed的值增加80

4、 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.3 实验指导创建一个对象时,成员变量被分配空间,这些内存空间称作该对象的实体或变量,而对象中存放着引用,以确保这些变量被该对象操作使用。空

5、对象不能使用,即不能让一个空对象去调用方法产生行为。假如程序中使用了空对象,在运行时会产生异常:NullPointerException,对象时动态地分配实体的,Java的编译器对空对象不做检查。因此,在编译时要避免使用空对象。1.4实验改进(编写程序,并给出结果)1.改进speedUp()方法,使得Vehicle类的对象加速时不能将speed值超过200.2.改进speedDown()方法,使得Vehicle类的对象在减速时不能将speed值小于0.3.增进一个刹车方法void brake(),Vehicle类的对象调用它能将speed的值变成0.1.5 实验结果实验2 家中的电视1.实验要

6、求 编写一个Java应用程序,模拟家庭买一台电视,即家庭将电视作为自己的一个成员,即通过调用一个方法将某个电视的引用传递给自己的电视成员。具体要求如下:有三个源文件,其中TV.java中的TV类负责创建“电视”对象。Family.java中的Family类负责创建“家庭”对象,MainClass.java是主类。在主类的main()方法中首先使用TV类创建一个对象haierTV ,然后使用Family类再创建一个对象zhangsanFamily,并将先前TV类的实例haierTV的引用传递给zhangsanFamily对象的成员变量homeTV。2.程序模板TV.javapublic clas

7、s 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

8、; case 5 : System.out.println(体育频道); break; default : System.out.println(不能收看+channel+频道); -Family.javapublic 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.javapub

9、lic class MainClass public static void main(String args) TV haierTV = new TV(); 【代码2】 /haierTV调用setChannel(int m),并向参数m传递5 System.out.println(haierTV的频道是+haierTV.getChannel(); Family zhangSanFamily = new Family(); 【代码3】/zhangSanFamily调用void buyTV(TV tv)方法,并将haierTV传递给参数TV System.out.println(zhangSan

10、Family开始看电视节目); zhangSanFamily.seeTV(); int m=2; System.out.println(hangSanFamily将电视更换到+m+频道); zhangSanFamily.remoteControl(m); System.out.println(haierTV的频道是+haierTV.getChannel(); System.out.println(hangSanFamily再看电视节目); zhangSanFamily.seeTV(); 3.实验结果实验3 共饮同井水1.实验要求 编写程序模拟两个村庄共用一口水井。编写一个Village类,该类

11、有一个静态的int型成员变量waterAmount,用于模拟井水的水量。在主类Land的main()方法中创建两个村庄,一个村庄改变了waterAmount的值,另一个村庄查看waterAmount的值。2.程序模板Village.javapublic class Village static int waterAmount; /模拟水井的水量 int peopleNumber; /村庄的人数 String name; /村庄的名字 Village(String s) name = s; static void setWaterAmount(int m) if(m0) waterAmount

12、= m; void drinkWater(int n) if( waterAmount-n=0) waterAmount = waterAmount-n; System.out.println(name+喝了+n+升水); else waterAmount = 0; static int lookWaterAmount() return waterAmount; void setPeopleNumber(int n) peopleNumber = n; int getPeopleNumber() return peopleNumber; -Land.javapublic class Land

13、public static void main(String args) 【代码1】 /用类名调用setWaterAmount(int m),并向参数传值200 int leftWater =【代码2】 /用Village类的类名访问waterAmount System.out.println(水井中有 +leftWater+ 升水); Village zhaoZhuang,maJiaHeZhi; zhaoZhuang = new Village(赵庄); maJiaHeZhi = new Village(马家河子); zhaoZhuang.setPeopleNumber(80); maJia

14、HeZhi.setPeopleNumber(120); 【代码3】/zhaoZhuang调用drinkWater(int n),并向参数传值50 leftWater = 【代码4】/maJiaHeZhi调用lookWaterAmount()方法 String name=maJiaHeZhi.name; System.out.println(name+发现水井中有 +leftWater+ 升水); maJiaHeZhi.drinkWater(100); leftWater = 【代码5】/zhaoZhuang调用lookWaterAmount()方法 name=zhaoZhuang.name;

15、System.out.println(name+发现水井中有 +leftWater+ 升水); int peopleNumber = zhaoZhuang.getPeopleNumber(); System.out.println(赵庄的人口:+peopleNumber); peopleNumber = maJiaHeZhi.getPeopleNumber(); System.out.println(马家河子的人口:+peopleNumber); 3.实验指导当java程序执行时,类的字节码文件被加载到内存,如果该类没有创建对象,类的实例变量就不会被分配内存。但是,类的类变量,在该类被加载到内

16、存时,就分配了相应的内存变量。如果该类创建对象,那么不同对象的实例变量互不相同,即分配不同的内存空间,而类变量不再重新分配内存,所有对象共享类变量。当类的字节码文件被加载到内存时,类的实例方法不会被分配入口地址,只有当该类创建对象后,类中的实例方法才分配入口地址。当使用new运算符和构造方法创建对象时,首先分配成员变量给对象,同时实例方法必须分配入口地址,然后再执行构造方法中的语句,完成必要的初始化。因而实例方法必须由对象调用执行。需要注意的是,当创建第一个对象时,类中的实例方法就分配了入口地址,当再创建对象时,不再分配入口地址,也就是说,方法的入口地址被所有的对象共享。对于类中的类方法,在该

17、类被加载到内存时,就分配了相应的入口地址,即使该类没有创建对象,也可以直接通过类名调用类方法。4.扩展练习(1) 【代码3】是否可以是Village.drinkWater(50);,为什么?(2) 【代码4】是否可以是Village.lookWaterAmount();,为什么?(3) Land类main()方法中倒数第2行代码是否可以更改为: peopleNumber = Village.getPeopleNumber(); 为什么?5.实验结果 实验4 求方程的根1.实验要求按照实验要求使用package语句将方程属性即计算根的方法封装在一个有包名的类中,包名是tom.jiafei,类的名

18、字是SquareEquation。编写一个SunRise的主类,该主类使用import语句引入tom.jiafei包中的SquareEquation类。2.程序模板 模板1 将模板1给出的源文件SquareEquation.java编译后得到的字节码文件复制到c:/1000/tom/jiafei目录中。 SquareEquation.java package tom.jiafei;public class SquareEquation double a,b,c; double root1,root2; boolean boo; public SquareEquation(double a,do

19、uble b,double c) this.a=a; this.b=b; this.c=c; if(a!=0) boo=true; else boo=false; public void getRoots() if(boo) System.out.println(是一元2次方程); double disk=b*b-4*a*c; if(disk=0) root1=(-b+Math.sqrt(disk)/(2*a); root2=(-b-Math.sqrt(disk)/(2*a); System.out.printf(方程的根:%f,%fn,root1,root2); else System.ou

20、t.printf(方程没有实根n); else System.out.println(不是一元2次方程); public void setCoefficient(double a,double b,double c) this.a=a; this.b=b; this.c=c; if(a!=0) boo=true; else boo=false; 模板2 1.设置classpath。假设本地JDK的安装目录是:D:jdk1.6。在命令行执行如下命令:set classpath = D:jdk1.6jrelibrt.jar;.;c:1000;或 右击“我的电脑”-属性-系统特性-高级选项-环境变量

21、 ,将classpath的值改为classpath = D:jdk1.6jrelibrt.jar;.;c:1000;2.将模板2给出的Java源程序SunRise.java保存到D:2000中。 SunRise.java import tom.jiafei.*;public class SunRise public static void main(String args) SquareEquation equation=new SquareEquation(4,5,1); equation.getRoots(); equation.setCoefficient(-3,4,5); equati

22、on.getRoots(); 3 实验指导如果使用import语句引入了整个包中的类,那么可能会增加编译时间。但绝不会影响程序运行的性能。Java运行平台由所需要的Java类库和虚拟机组成,这些类库被包含在一个jrelib中的压缩文件中,当程序执行时,Java运行平台从类库中加载程序真正使用的类字节码到内存。可以使用import语言引入自定义包中的类,但必须在classpath中指明包的位置。实验5 实例成员和类成员1.实验要求 掌握实例成员和类成员的使用方法2.程序模板 Example.javaclass A 【代码1】 /声明一个float型实例变量a 【代码2】 /声明一个float型类

23、变量b,即static变量b void setA(float a) 【代码3】 /将参数a的值赋值给成员变量a void setB(float b) 【代码4】 /将参数b的值赋值给成员变量b float getA() return a; float getB() return b; void inputA() System.out.println(a); static void inputB() System.out.println(b); public class Example public static void main(String args) 【代码5】 /通过类名操作类变量b,

24、并赋值100 【代码6】 /通过类名调用方法inputB() A cat=new A(); A dog=new A(); 【代码7】 /cat象调用方法setA(int a)将cat的成员a的值设置为200 【代码8】 /cat调用方法setB(int b)将cat的成员b的值设置为400 【代码9】 /dog象调用方法setA(int a)将dog的成员a的值设置为150 【代码10】 /dog调用方法setB(int b)将dog的成员b的值设置为300 【代码11】 /cat调用inputA()。 【代码12】 /cat调用inputB()。 【代码13】 /dog调用inputA()。

25、 【代码14】 /dog调用inputB()。 实验6 银行账户1.实验要求 声明银行账户类,成员变量包括账号、储户姓名、开户时间、身份证号码、存款余额等信息,成员方法包括开户、存款、取款、查询(余额、明细)、销户等操作。public class Account private String acctNumber; private String customerName; private String acctOpenTime; private String customerIdNum; private double balance; public Account(String accoutn

26、Number) this.acctNumber = accoutnNumber; public Account openAccount(String accountNumber) return new Account(accountNumber); public void save(double money) this.balance += money; public void query() System.out.println(Balance is: + balance); /. 2.实验结果五、本次上机体会创建一个Rectangle类,添加两个属性width、height。(1)在Rectangle中添加两个方法计算矩形的周长和面积。(2)编程利用Rectangle输出一个矩形的周长和面积。设计一个Array类,添加一个整型数组,添加构造方法对数组赋初值。(1)为Array类添加数组求和方法,添加返回求和值的方法。(2)编程利用Array计算数组的和值并输出。(实验报告如打印,纸张用A4,左装订;页边距:上下2.5cm,左2.9cm, 右2.1cm;字体:宋体小四号,1.25倍行距。)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1