java实验指导书.docx
- 文档编号:11329198
- 上传时间:2023-02-27
- 格式:DOCX
- 页数:54
- 大小:29.92KB
java实验指导书.docx
《java实验指导书.docx》由会员分享,可在线阅读,更多相关《java实验指导书.docx(54页珍藏版)》请在冰豆网上搜索。
java实验指导书
实验一、安装JDK并熟悉java的运行环境
一、实验目的
熟悉JAVA的运行环境及学习简单的编程。
二、预习内容
安装工具软件的基本方法。
三、实验设备与环境
装有JAVA语言工具软件(JCreator)的微机若干
四、实验内容
安装JCreator及JAVA的核心编译程序J2SDK。
1、打开JCreator的安装盘安装JCreator。
2、在相同目录下安装J2SDK。
3、打开JCreator软件对J2SDK文件进行配置。
4、编写一应用程序,在屏幕上显示“HELLOWORLD”。
PulicclassHello
{
publicstaticvoidmain(Stringargs[])
{
System.out.println(“HELLOWORLD”);
}
}
5、编写一小程序实现上述功能:
在屏幕上显示“HELLOWORLD”。
五、注意事项
⒈认真填写实验报告
⒉遵守实验室各项制度,服从实验指导教师的安排
⒊按规定的时间完成实验
六、说明
本次实验建议学时数2学时
实验二、基本语法练习
一、实验目的
⒈熟悉Java的基本语法
⒉编写应用程序接收命令行参数
⒊编写应用程序接收用户从键盘的输入
⒋掌握字符串与数组的基本方法
二、预习内容
java编程的基本结构
三、实验设备与环境
装有JAVA语言工具软件(JCreator)的微机若干
四、实验内容
⒈编写一个应用程序求若干个数的平均数,原始数字要求从命令行输入。
应用程序中main方法的参数String类型的数组args能接受用户从命令行键入的参数。
(1)编辑Average.java,设保存在D:
\myjava目录下。
classAverage
{
publicstaticvoidmain(Stringargs[])
{
doublen,sun=0;
for(intl=0;l { sum=sum+Double.valueOf(arg[l].doubleValue();) } n=sum/args.length; System.out.println(“average=”+n); } } (2)编译。 键入如下命令: D: \myjava>javaAverage.java (3)执行。 键入如下命令。 注意,命令行参数之间用空格分隔。 D: \myjava>javaAverage.java“12.34”“34.45”“21212121” 注意: 1)参数的个数可以利用args.length来取得。 2)参数“12.34”“34.45”“21212121”分别赋给了main方法的参数arges[0]、arges[1]和arges[2]。 3)由于arges[0]、arges[1]和arges[2]是String类型的,所以要利用Double.valueOf(Strings)方法将String类型转化成Double类型,再用doubleValue()方法求出double类型的值。 ⒉编写一个应用程序,接受用户从键盘输入的摄氏温度,然后将其转化成等效的华氏度温度。 方法一: 利用System.in.read()方法可以接受从键盘输入的unicode码,编写一个循环取键值,循环出口为当输入回车时,即判断键值是否为13,若是,则退出循环。 (1)编辑Accept.java,设保存在D: \myjava目录下。 importjava.io.*; importjava.io.*; classAccpet { publicstaticvoidmain(String[]args) { intc=0; Strings=“”; System.out.println(“输入摄氏度: (0<数值<100)”); //System.in.read()语句需要加try/cacth()捕获异常 tyr { while(c! =13)//当输入的不是回车 { c=Sytem.in.read(); s=s+(char)c;//将int型转化成char型,再连接成字符串 } } catch(Exceptione){} intcelsius=Intgeer.parseInt(s.trim()); doublefahre=1.8*celsius+32; System.out.println(“转化成华氏度为: ”+fahre); } } 注意: 1)in是System类的一个属性,System.in的返回类型是InputStream类型。 输入字节流的父类,InputStream类中的read()方法可以读取一个用户从键盘上输入的键值。 System.im.read()的返回值是整型,因此需要先转化成字符型后再连接成字符串。 2)System.im.read()需要用try/catch机制来捕获异常。 3)将字符串转化成响应的整型数值后再利用公式计算出华氏温度。 方法二: 由于InputStream类中的read()方法只能读取一个键值,所以需要利用循环才能读出用户从键盘输入的一串字符,有没有读取一行字符的命令呢? 我们可以利用Java中类的嵌套来实现。 由于BuffereReaser类有读取一行字符串的方法,所以可以这样去定义对象: BuffereReaserbr=newBuffereReaser(newInputStreamReader(System.in)); (1)编辑Accpe1.java,设保存在D: \myjava目录下。 ClassAccpt1 { publibstaticvoidmain(Stringargs[]) { Strings=“”; System.out.println(“输入摄氏度: (0<数值<100)”); BuffereReaserbr=newBuffereReaser(newInputStreamReader(System.in)); try { s=br.readLine(); }cath(Exceptione){} intcel=Integer.parseInt(s.trim()); doublef=cel*1.8+32; System.out.println(s+“摄氏度转化成华氏度为: ”+f); } } ⒊编写应用程序,按升序顺序输出一维数组中的元素。 排序的方法有很多,常用的有选择发和冒泡法,在此使用选择法。 (1)编辑Sort.java,设保存在D: \myjava目录下。 classSort { publicstaticvoidmain(Stringargs[]) { inta[]={1,3,5,6,0,2,7,9,8}; inttemp; intk; intlen=a.length; for(inti=0;i { k=i; for(intj=i+1;j { if(a[k]>a[j])k=j; } temp=a[i];a[i]=a[k];a[k]=temp; } for(inti=0;i System.out.print(a[i]+“”) } } 五、注意事项 ⒈认真填写实验报告 ⒉遵守实验室各项制度,服从实验指导教师的安排 ⒊按规定的时间完成实验 六、说明 ⒈建议学时数6学时 实验三、面向对象编程实验 一、实验目的 ⒈掌握接口的编写及使用 ⒉理解继承、多态 ⒊掌握包的编写以及如何使用包中的类 二、预习内容 java的基本语法知识 三、实验设备与环境 装有JAVA语言工具软件(JCreator)的微机若干 四、实验内容 ⒈接口的编写 (1)编辑Interfaceclass.java,设保存在D: \myjava目录下。 interfaceInterfaceclass { inti=4; intk=5; voidfunc1(); intfunc2(intx); } (2)编辑UseInterface.java,设保存在D: \myjava目录下。 classUseInterfaceimplementsInterfaceclass { intj; publicvoidfunc1()//在使用接口的类中一定要实现接口中的所有抽象方法 { System.out.println(“func1=”+1); } publicintfunc2(inti) { System.out.println(“func2=”+1); ieturni; } publicstaticvoidmain(Stringsrgs[]) { //Interfaceclass.classx=newInterfaceclass.class();不能对接口进行实例化 UseInterfacex=newUseInterface(); x.func1(); x.func2(k); } } ⒉多态在工资系统中的应用 下面给出一个根据雇员类型利用abstract方法和多态性完成工资单计算的程序。 Employee是抽象类,Employee的子类有Boss(每星期发给他固定工资,而不计工作时间)、CommissionWorker(除基本工资外还根据销售额发放浮动工资)、PieceWorker(按其生产的产品数发放工资)、HourlyWorker(根据工作时间长短发放工资)。 该例的Employee的每个子类都声明为final,因为不需要再继承它们生成子类。 对所有雇员类型都使用earnings()方法,但每个人挣的工资按他所属的雇员类计算,所有雇员类都是从超类Earnings()派出生的。 所有在超类中声明earnings()为抽象方法,并且对于每个子类都提供恰当的earnings()的实现方法。 为了计算雇员的工资,程序仅仅使用雇员对象的一个超类引导并调用earnings()方法。 在一个实际的工资系统中,各种Employee对象的引用可以通过一个Employee引用数组来实现。 程序依次使用数组的每个元素(Employee引用)调用每个对象的employee()方法。 (1)编辑Test.java,设保存在D: \myjava目录下。 //Employee超类的定义 abstractclassEmployee { privateStringfirsrName; privateStringlastName; publicEmployee(Stringfirst,Stringlast) { firstName=first; lastName=last; } publicStringgetEmployeeName() { returnfirstName; } publicStringgetLastName() { returnlastName: } publicStringtoString() { returnfirstName+lastName; } publicabsteacdoubleearnings(); } //定义Boss类,为Employee的子类 finalclassBossextendsEmployee { privatedoubleweeklySalary; publicBoss(Stringfrist,stringlasr,doubles) { super(first,last); setWeeklySalary(s); } publicwoidsetWeeklySalary(doubles) { weeklySalary=(s>0? s: o\0); } publicdoubleearnings() { return“Boss”+super.roString(); } } //定义CommissiomWorker类,为Employee的子类 finalclassCommissionWorkerextendsEmployee { privatedoublesalary; privatedoublecommission; privateintquantity; publicCommissionWorker(Stringfirst,Stringlast,doubles,doublec,intq) { super(frist,last); setSalary(s); setCommission(c); setQuantit(q); } publicvoidssetQusntily(doubles) { salary=(s>0? q: 0); } publicdoublesetCommission(doublec) { commission=(c>0? c: 0); } publicdoubleearnings() { returnsalsry+commission+quantity; } pulicStringtoString() { return“CommissionWorker”+super.tostring(); } } //定义PieceWorker类,为Employee的子类 finalclassPieceWorkerextendsEmployee { privatedoublewagePiece; privateintquantity; publicPieceWorker(Stringfirst,Stringlast,doublew,intq) { super(first,last); setWage(w); setQuantity(q;) } publicvoidsetWage(doublew) { wagePerPiece=(w>0? w: 0); } publicvoidsetQuantity(intq) { returnquantity+wafePerPiece; } publicStringtoString() { return“PieceWoeker”+super.toString(); } } 定义HourlyWorker类,为Employee的子类 classHourlyWorkerextendsEmployee { privatedoublewage; prvatedoublehours; publicHourlyWorker(Stringfirst,Stringlast,doublew,doubleh) { super(first,last); setWage(w); serHouts(h); } publicvoidsetWage(doublew) { wage=(w>0? w: o); } publicvoidsetHours(doubleh) { hours=(h>=0&&h<168? h: 0); } publicdoubleearnings() { return“HourlyWorker”+super.toString(); } } classText { publicstaticvoidmain(stringargs[]) { //使用超类声明ref Employeeref; Stringoutput=“”; //分别定义各子类 Bossb=newBoss(“Hohn”,“Smith”,800.00); CommissionWorkerc=newCommissionWorker(“Sue”,“Hones”,400.00,3.0,150); PieceWorkerp=newPieceWorker(“Bob”,“Lewis”,2.5,200); HourlyWorkerh=newHourlyWorker(“Karen”,“price”,13.75,40); //使用子类分别实例化 ref=b; out+=ref.toString()+“earned$”+ref.earnings+“\n”+b.toString()+“earned$”+b.earnings+“\n”; System.out.print(output); ref=c; out+=ref.toString()+“earned$”+ref.earnings+“\n”+c.toString()+“earned$”+c.earnings+“\n”; System.out.print(output); ref=p; out+=ref.toString()+“earned$”+ref.earnings+“\n”+p.toString()+“earned$”+p.earnings+“\n”; System.out.print(output); ref=h; out+=ref.toString()+“earned$”+ref.earnings+“\n”+h.toString()+“earned$”+h.earnings+“\n”; System.out.print(output); } } ⒊包的建立与使用 (1)编辑Calculate.java,设保存在D: \myjava目录下。 packagemypackage; publicclassCalculate { privateinta; publicCalculate(inta) {this.a=a; System.out.printl(“fromconstrartion”+this.a); } publicdoublevolume(doubleheight,doublewidth,douledepth) { returnheight*width*depth; } intadd(intx,inty) { returnx+y; } protectedvoida() { System.out.println(“fromconstration”+a); } } 编译,查看D: \myjava目录下是否生成了myoackage文件夹,在该文件夹中是否有Calculate.class文件。 (2)编辑Interfaceclass.java,设保存在D: \myjava目录下。 importmypackage.Calculate; classPackageDemo { publicstaticvoidmain(stringags[]) { Calculatec=newCalculate(10); doubles=c.volume(5,6,7); System.out.println(s); //intb=c.add(5,6); //c.a(); } } 五、注意事项 ⒈认真填写实验报告 ⒉遵守实验室各项制度,服从实验指导教师的安排 ⒊按规定的时间完成实验 六、说明 ⒈建议学时数4学时 实验四、异常处理实验 一、实验目的 ⒈异常的生产及捕获 ⒉自定义异常及其使用 二、预习内容 面向对象的基本知识 三、实验设备与环境 装有JAVA语言工具软件(JCreator)的微机若干 四、实验内容 ⒈异常的捕获 计算两数相除并输出结果。 使用两个catch子句,分别捕捉除数为0的异常和参数输入有误异常。 编辑Ex1.java,保存在D: myjava目录下。 Importjava.io.*; ClassEx1 { publicstaticvoidmain(stringargs[]) { try{ BufferedReaderstrin=newBufferedReader( newInputStreamReader(System.in); System.out.print(“请输入除数: ”) Stringcl=strin.readLine(); inta=Integer.parseInt(cl); System.out.print(“请输入被除数: ”) cl=strin.readLine(); intb=Integer.parseInt(cl) intc=b/a; System.out.println(“商为: ”+c); } //捕获与I/O有关的异常 catch(IOExceptione){eprintStackTrace();} //捕获数值转化时的异常,如不能将字符转化成数值 catch(IOExceptione){e.printStackTrace();} //捕获数值转化时的异常,如不能将字符转化成数值 catch(NunberFormatExceptione){ System.out.println(“请输入整数! ”); //e.printStackTrace(); } //捕获除数为0的异常 catch(ArithmeticExceptione){ System.out.println(“除数不可以0! ”); //e.printstackTrace(); } } } 编译并运行,当输入除数为0时,将有异常出现,当输入的不是整数时,如将30输成了3o,出现的是另一种异常。 ⒉定义异常 编写程序包含自定义异常,当输入数值为13和4时抛出该异常。 编辑Ex2.java,设保存在D: \myjava目录下。 classEx2extendsException { Ex2(Stringmsg) { super(msg); } } classMyEx { privateintx; voidsetX(intx) { this.x=x; } voidf1()throwsEx2 { if(x==13) thrownewEx2(“Idon’tlike13! ”); elseif(x==4) thrownewEx2(“Idon’tlike4! ”); else system.out.println(100/x); } publicstaticvoidmain(Sstringargs[])
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 实验 指导书