版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为Word版,下载可任意编辑——《Java程序设计》试验指导书
《Java程序设计》试验指导书
试验一、熟悉JDK环境及主要命令
一、试验目的
1)熟悉JDK的环境配置2)把握JDK的命令
3)把握JavaApplication程序的开发过程,并编写一个JavaApplication程序二、试验内容
1.依照上课所学知识,为自己的机器配置环境变量2.编辑一个HelloWorld的小程序,并试着编译运行它
3.将Vehicle和VehicleDriver两个文件用自己的文本编辑器重新编辑并编译运行,把握类和对象的定义和使用
1)Vehicle.java(注意:以下代码有几个错误的地方,需要同学自己把他们找出来并更正过来)
publicclassVehicle{
publicfloatjourney;publicintwheelNum;publicintloadNum;publicintdriveSpeed;/**
*Vehicle类构造函数,设定初始值*/
publicVehicle(){journey=100.3f;wheelNum=4;loadNum=1;}/**
*Vehicle类的driveAt行驶方法*/
publicvoiddriveAt(intspeed){if(speed>=60){System.out.println(\行车速度太快,简单造成事故\//假使要求的车速太快,则机动车自动以40单位速度行驶driveSpeed=40;}else{System.out.println(\你在安全行驶速度内行驶\driveSpeed=speed;}
}}
2)VehicleDriver.java
publicclassVehicleDriver{
publicStringname;//定义司机的名字/**
*VehicleDriver类构造函数*/
publicVehicleDriver(){name=\}/**
*VehicleDriver类对象的work方法*/
publicvoidwork(){Vehiclev=newVehicle();//生成Vehicle类的对象vv.driveAt(70);//调用v对象所固有的driveAt()方法}
publicstaticvoidmain(Stringargs[]){//生成VehicleDriver类的对象vbVehicleDrivervd=newVehicleDriver();
vd.work();//调用vd对象所固有的work()方法}}
3.将Vehicle和VehilceDriver两个类放在一个.java文件中,文件名称取名为Vtogether.java(注意:需将Vehicle或VehicleDriver中某一个类的名称改名为Vtogether,具体更改哪一个由同学根据实际状况来判断),编译和运行该文件
试验二、类的定义和对象的使用
一、试验目的
1)把握类的定义2)把握对象的使用3)把握构造方法的重载二、试验内容
1.创立一个汽车类CarModel.java,它里面有2个不同的构造函数,CarManufactory.java可以应用这些构造方法创立不同类型的汽车CarModel.java设计要求如下:
?定义style(String),color(String),category(String)注:括号中为变量类型
?创立第一个构造函数,分别给以上变量赋值,要求为该构造函数定义三个形
参,分别赋给相应的变量,形参的值在对象创立时给出?创立其次个构造函数,此构造函数过程为空
?定义三个方法,分别返回style,color,category的值CarManufactory.java设计要求如下:使用不同的构造函数创立两辆汽车
显示两辆车相关的属性,属性的值要从CarModel的相关方法中取出
2.判断以下程序的结果,并把它改成两个类的形式,其中一个类专门处理运算。publicclassExcer{
publicstaticvoidmain(Stringargs[]){Excerex=newExcer();ex.math();}
voidmath(){intx=130,y=45;System.out.println(\System.out.println(\System.out.println(\System.out.println(\System.out.println(\}
intplus(inta,intb){return(a+b);}intminus(inta,intb){return(a-b);}
intmulti(inta,intb){return(a*b);}
floatdiv(inta,intb){return((float)a/b);}}
试验三、继承
一、试验目的1)把握类的继承
2)把握类成员的覆盖和重载
二、试验内容
1.Vehicle类的基础上创立一个Tractor(拖拉机)类,他不但拥有
journey,wheelNum,loadNum,driveSpeed四种属性和driveAt()方法,而且还拥有自己的plough(耕地)方法,在该方法中要求能够显示journey,wheelNum,loadNum三个属性的值,在Tractor中覆盖driverAt()方法,速度大于等于35就认为是超速,假使是超速速度就要设为20,在这个类中还要创立一个main()方法,分别调用plough()、driveAt方法和Vehicle类的driverAt()方法。
publicclassVehicle{
publicfloatjourney;publicintwheelNum;publicintloadNum;publicintdriveSpeed;
publicVehicle(){journey=100.3f;wheelNum=4;loadNum=1;}
publicvoiddriveAt(intspeed){if(speed>=60){System.out.println(\行车速度太快,简单造成事故\//假使要求的车速太快,则机动车自动以40单位速度行驶driveSpeed=40;}else{System.out.println(\你在安全行驶速度内行驶\driveSpeed=speed;}}}
2.在以下程序中出现了属性的覆盖和方法的重载,编译运行下面程序,把握产生属性覆盖时属性的变化规则和方法的重载时调用的方法规则。classNoteX{
publicstaticfinalintMIDDLE_C=0;publicstaticfinalintC_SHARP=1;publicstaticfinalintC_FLAT=2;}
publicclassFather{inta=100;
publicvoidminer(){a--;}
publicvoidplay(intNoteX){
System.out.println(\}
publicstaticvoidmain(String[]arg){Fatherx=newFather();Sony=newSon();System.out.println(\System.out.println(\y.miner();System.out.println(\System.out.println(\y.play(NoteX.C_SHARP);y.play(newNoteX());}}
classSonextendsFather{inta=0;
publicintgetA(){returnsuper.a;}
publicvoidplay(NoteXn){
System.out.println(\}}
试验四、接口与内部类
一、试验目的
1)、把握接口的定义和使用方法
2)、把握内部类的定义和使用方法二、试验内容
1.将以下图示用接口实现和继承实现
interfaceInstrumentvoidplay();Stringwhat();voidadjust();implementsWindvoidplay()Stringwhat()voidadjust()implementsPercussionvoidplay()Stringwhat()voidadjust()implementsStringedvoidplay()Stringwhat()voidadjust()extendsWoodwindvoidplay()Stringwhat()extendsBrassvoidplay()voidadjust()2.已知有两个接口如下所示,要求定义一个类,其中包含两个内部类,这两个内部类
分别实现这两个接口,且设为private,在类中分别定义两个方法,可以返回这两个接口。
publicinterfaceDestination{StringreadLabel();}
publicinterfaceContents{intvalue();}
试验五、异常的处理机制
一、试验目的
1)把握异常的声明2)把握异常的抛出3)把握异常的捕获
4)把握自定义异常的使用
二、试验内容
1.编写一段Java程序,在被调用方法中抛出一个异常对象,并将异常交给调用它的方法来处理
2.编写一段Java程序,创立一个自定义异常类,并在一个方法中抛出自定义异常对象,在该方法的catch处理程序中捕获它并重新抛出,让调用它的方法来处理。
试验六、多线程编程
一、试验目的
1)了解多线程的定义
2)理解多线程的互斥和同步3)把握多线程的调度和控制二、试验内容
1.使用Runnable接口实现以下类的功能:publicclasstestThreadextendsThread{publictestThread(){}publicvoidrun(){
System.out.println(\方法运行\}
publicstaticvoidmain(Stringarg[]){testThreadt=newtestThread();
System.out.println(\开始运行...\t.start();}}
2.假设一个银行的ATM机,它可以允许用户存款也可以取款。现在一个账户上有存款200元,用户A和用户B都拥有在这个账户上存款和取款的权利。用户A将存入100元,而用户B将取出50元,那么最终账户的存款应是250元。实际操作过程如下:
?先进行A的存款操作:
(1)得到账户的存款数额200,耗时2s。(2)将账户数额增加100,耗时忽略不计
(3)将新生成的账户结果300返回到ATM机的服务器上,耗时2s?在进行B的取款操作:
(4)得到增加后账户存款数额300,耗时2s。(5)将账户数额减少50,耗时忽略不计。
(6)将新生成的账户结果250返回到ATM机的服务器上,耗时2s。请同学们根据以上要求,编写一个Java程序实现该功能注:将A的操作和B的操作分别用线程来表示
3.如下是消费者和生产者的一个简化例子,将次程序看懂,然后写下运行结果。
//CubbyHole.java存储数据
publicclassCubbyHole{privateintcontents;
privatebooleanavailable=false;
publicsynchronizedintget(){while(available==false){try{wait();
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高职第一学年(邮政快递智能技术)物流快递系统仿真综合测试试题及答案
- 三年级语文(素养提升)2027年下学期期末测试卷
- 2025年高职农林牧渔类(农林趋势分析)试题及答案
- 2025年大学农学(农业机械化)试题及答案
- 2025年高职工业机器人技术(机器人编程技术)试题及答案
- 2025年大学大三(动物科学)动物繁殖学阶段测试试题及答案
- 2025年大学大三(电子信息工程)物联网技术基础阶段测试题及答案
- 2025年大学农学(农业企业管理)试题及答案
- 大学(市场营销)消费者行为分析2026年综合测试题及答案
- 六年级语文(阅读理解专项)2025-2026年下学期期中测试卷
- 2026年度内蒙古自治区行政执法人员专场招收备考题库完整答案详解
- 农产品采购合同2025年协议
- 2025年江苏省公务员录用考试行测题A类答案及解析
- 道路危险货物运输企业安全隐患排查与治理制度
- 京东物流合同范本
- 养老机构安全生产责任制清单
- 《红岩》中考试题(解析版)-2026年中考语文名著复习核心知识梳理与专项训练
- 非洲鼓基础知识培训课件
- 2026-2031中国酿酒设备行业市场现状调查及投资前景研判报告
- KET考试必背核心短语(按场景分类)
- 2025四川产业振兴基金投资集团有限公司应届毕业生招聘9人笔试历年难易错考点试卷带答案解析2套试卷
评论
0/150
提交评论