《面向对象程序设计》实验指导书_第1页
《面向对象程序设计》实验指导书_第2页
《面向对象程序设计》实验指导书_第3页
《面向对象程序设计》实验指导书_第4页
《面向对象程序设计》实验指导书_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象程序设计》实验指导书郭玉柱广东商学院信息学院二0一0年十二月目录实验一Java基础实验实验二Java面向对象特性试验--Java中的类、对象和方法实验三类的继承、多态、接口、访问控制符与修饰符实验四Java资源及其利用实验五Java语言的异常处理实验六输入输出流实验七图形用户界面设计实验八JavaApplet及多线程试验附录1实验报告格式实验一Java基础实验、实验目的与要求学习编写简单的Java程序。学习掌握Java基本数据类型及其基本运算。学习掌握Java的基本流程控制语句。、相关知识了解JDK的工作环境,以及如何使用JDK进行编程。熟悉集成软件eclipse3.5及其使用。、实验内容编写Hello.java程序并运行。用Java语言编写一个应用程序在屏幕上输出1000之内的素数。一个数如果恰好等于它的因子之和,这个数就称为“完数”,比如28=1+2+4+7+14编写一个应用程序在屏幕上输出1000之内的完数。求满足1!+2!+3!+・・・+n!W9999的最大整数n。一个三位的整数如果它的各位数字的立方之和等于这个三位数,就称此数为水仙花数,比如371=33+73+13,编写一个应用程序在屏幕上输出所有水仙花数。下面程序的输出结果是什么?"写出程序运行结果(TestE.java)publicclassTestE{puhlicstaticvoidmain(Stringarg[]){charc=1\□1;for(inti=l;i<=4;i++){switch(i){case1:c=|你|;System.out.printIn(c);case2:c=11;System.out.printIn(c);break;case3:c=11;System.out.printIn(c);default:System,out.println(Fr!;实验二Java面向对象特性试验-Java中的类、对象和方法一、实验目的与要求掌握类的定义和使用。掌握对象的声明、创建和使用。掌握构造方法的定义和使用。掌握类方法(静态方法)和非类方法(非静态方法)的区别和使用掌握成员变量和局部变量的区别和使用。二、实验内容1.编写一个Java程序,定义一个表示学生的类,类名Student,其成员变量有:学号、班级姓名、性别、年龄;成员方法:(1)获得班号(2)获得姓名(3)获得年龄(4)修改年龄;创建一个Student的对象,修改该对象的年龄,并输出该对象的年龄。在Student.Java文件为Student类定义构造方法,用于初始化所有成员变量,增加一个方法toString(),它的返回值是String,其功能是把一个Student类的对象的成员变量信息组合成一个字符串并输出。简述构造函数的作用和特点。下面是某同学为Student类编写的一个构造函数,请指出那些地方有错误:voidStudent(intsno,Stringsname){studentNo=sno;studentName=sname;returnsno;}4.编写一个日期类Date,要求:(1)日期类Date的成员变量有:year,month,day都是int型。2)日期类的方法有:构造方法Date(),日期的默认值为2008年1月1日;构造方法Date(inty,intm,intd),形参y,m,d分别为某个日期的年月日的初始值;成员方法intgetYfear():获取日期的年数作为方法的返回值;成员方法intgetMonth():获取日期的月份作为方法的返回值;成员方法intgetYfear():获取日期的日作为方法的返回值;成员方法voidshowDate():已“****年**月**日”的形式显示一个日期。5.下面四个程序分别有什么错误?publicclassShowErrors{publicstaticvoidmain(Stringarg[]){ShowErrorst=newShowErrors(5);publicclassShowErrors{publicstaticvoidmain(Stringarg[]){ShowErrorst=newShowErrors(5);publicclassShowErrors{publicstaticvoidmain(Stringarg[]){ShowErrorst=newShowErrors();t.x();}}publicclassShowErrors{publicvoidmethodl(){Circlec;System.out.println(publicclassShowErrors{publicvoidmethodl(){Circlec;System.out.println(“Whatisradius"+c.getRadius());c=newCircle;}}3)publicclassShowErrors{publicstaticvoidmain(Stringarg[]){Cc=newC(5.0);system.out.println(c.value);}}classC{intvalue=2;}4)下列代码有什么错误?废裁Test(JEJjyfefcstaticvoidmain(String[]{□Aa=newAQ;屮a/printf);a加曲{」Strings;4址StWA)”this.s=s;4}4戚验voidprintO”System,outprintlnfs);卩1」下列程序的输出是什么?戚验由曲伽{屮privateBooleanx;心publicstaticvoidmain(String[]箋熾){"Foofoo=nev7Foo();4SsYtem.outprintkL(foo.x);卩System.out.println(f.i);System.out.println(f.s);f.imethod();f.smethod();System.out.println(Foo.i);System.out.println(Foo.s);Foo.imethod();Foo.smethod();8.System.out.println(f.i);System.out.println(f.s);f.imethod();f.smethod();System.out.println(Foo.i);System.out.println(Foo.s);Foo.imethod();Foo.smethod();publicclassFoo{inti;staticStrings;voidimethod(){}staticvoidsmethod(){}}9.如果合适的话,在“?”处加入static关键字。诚J疏classTest®privateintcount;4publi匚?voidmainfStringr1args){」 +Jreturncount;心戚應J如:factorial(j^ti){卩intresult=l:afortinti=l;i<=rai++){J■■■■.■■■.■■■.■■■■■■■ ■■■■■■■■■■■■result*^;4}4 “returnresult;屮}J是否能在静态方法中调用成员方法或引用成员变量?是否能在成员方法中调用静态方法或引用静态变量?下面代码的错误是什么?戚底classJEWfefcstaticvoidmain(Strmg[]趣){umethodi();心publicvoidmethodl(){」method^();4}中publicstaticvoidmethod^(){dSystem.ciutprintln(LLWhat{sradius"+匚.getRadiusO);4}pCirclec^newCircle();+1 描述传递基本类型参数和传递引用类型参数的区别。写出下面程序的输出:戚廳classCount{Jpublicintcount;戚廳classCount{Jpublicintcount;+■count=C;+■}」SO"count=l;屮}」M愿staticvoidmain(String[]观总{*CountmyCount=^newCountO;屮inttimes=0;心fotfinti=0;i<100;i++>incrementfmyCount?times');屮System,out.println(JJcountisw+myCount,count);*-■System,out.printing"timesis??+times');屮}4pubEcstaticvoidincrementCountC,initimes){+JC.count++;屮times++:4写出下列程序的输出:Circle{Jdoubleradius;卩Circle(double嘶騒贼Uradius^navRadius:屮publicclassTest{」swatjlfcinclel?circle2);心System,out.printlnf^Afterswapl:circlel=w+circlel.radius+wcircle2=w+circle2.radius);swapXcwclelicircled);+■System,outnrintlnf^Afterswap2:circlel=^+circlel.radius+circle2=w+circled,radius);}屮publicstaticvoidswaplfCircle盜,Circle"Circletetnp=x;+■跨=y;屮yM.emp;屮}屮publicstaticvoidswapXCirclex,Circley){pdoubletemp=x.radius:屮radius=y.radius:py. radius=ternp:p}屮戚验staticvoid贓(String[]破Circlecirclel=^newCirclefl);屮Circlecircle2=newCirclef^);+■

13.写出下列四个程序各自的输出:戚]粧classTest{+J诚焦classTest®Wjfefcstaticvoid飓n(String!1叔&Wjfefcstaticvoidmain(£triiig[]裁感)2mt[]a=(L?};d匹[2={1,?};dswap^afOJja[l]);屮swap(a);屮System,out.迎rinthfa[01=w+a[01pSystem,out.println("a[Cl]="4-arOl+J+"a[ll=w+a[l]);屮+J[l]=z+a[l]);4}ppublicstaticvoidswapfintnl,int口乃{卩WjfefcStaticvoidswap(如[]a){^inttemp^nl;ainttemp=a[0];屮nl=4i2:屮a[0H[l];屮n2=temp;4a[l]=temp;4}*}」(4)屮⑴ ⑵4(4)屮期嗾弘弗Test{d期嗾由碍Testp刃迦也staticvoid酿n(£tmg[]叔{»publicstaticvoidmain(Stnng[]ar^){屮Tt=^newT0;卩Ttl^newT();4swap(t);4Tt2=neivT();dSystem,out.nrintlnf"亡1="+t.el」System,out.nrintlnf"tfsi="+」+"e2=w+t.e2);ptl.i+"andj=w+tl.j);屮}4System,out.printing"t2‘si="+pstaticvoidswap(T◎{"tWandj='+t2.j);心inttemp=t.el;屮}4t.el=t.e2:屮}屮t.e2=temp:屮瞬.T”}dstaticInti=0;屮■■■■}dintj=0;屮classT{+JT(){Pintel=l;a!++;屮inte2=2;d汽;4}」}p}屮(3)屮14.下列程序的输出是什么?publicclassFoo{staticinti=0;+1staticintj=0;+■staticvoidmam(String[]賤)2inti=2;4intA3;屮intj=3;4System,out.println(:i+jis:"+i+j);p押k=i+j;+JSystem,out.卫rintln("kis"+k);心System,out.printlnf^jis"+J);卩A15.描述关键字this的作用,下列代码有什么错误?publicclassC{intp;publicvoidsetP(intp){p=p;}}编写名为Rectangle的类表示矩形,这个类包括:•一个double类型的数据域width和height表示矩形的宽和高,它们的默认值都为1;・String类型的数据域color表示矩形的颜色,进一步假设所有矩形的颜色都是相同的,默认颜色为白色;•无参构造方法创建默认矩形;•一个构造方法创建指定width和height的矩形;•所有三个数据域的访问器方法和修改器方法;getArea()方法返回该矩形的面积;getPerimeter()方法返回它的周长;编写一个测试程序,创建两个Rectangle对象,设置第一个对象的宽为4,高为40,第二个对象的宽为3.5,高为35.9,所有Rectangle对象的颜色为红色。显示两个对象的属性并求它们的面积和周长。设计一个名为Fan的类模拟风扇。这个类包括:•三个常量SLOW,MEDIUM好FAST,其值分别为1,2,3,表示风扇的速度;・int类型的数据域speed表示风扇的速度(默认值为SLOW);boolean型的数据域on表示风扇是否打开(默认值为false);double型的数据域radlus表示风扇的半径(默认值为5);string型的数据域color表示风扇的颜色(默认值为blue);•无参构造方法创建默认风扇;•全部四个数据域的访问器和修改器;•toString()方法返回描述风扇的字符串。如果风扇打开,该方法用一个组合的字符串返回风扇的速度、颜色和半径;否则,用一个组合的字符串和“fanisoff”一起返回风扇的颜色和半径。编写一个测试程序,创建两个Fan对象,将第一个对象设置为最大速度,半径为10,颜色为yellow,打开状态;第二个对象为中等速度,半径为5,颜色为blue,关闭状态。通过调用toString方法显示该两对象。设计一个名为Account的类模拟账户,它包括:・int型数据域id表示账号(默认值为0);double型数据域balance表示账户余额(默认值为0);double型数据域annuallnterestRate存储当前年利率(默认值为0);Date型数据域dateCreated存储账户开户的日期;•无参构造方法创建一个默认的账户;id,balance和annualInterstRate的访问器和修改器;dateCreated的访问器;getMonthlylnterestRate()方法返回月利率;withDraw方法从账户提取特定数额的款;deposit方法向账户存特定数额的款;编写一个测试程序,创建一个账号为1122、余额为20000、年利率为4.5%的Account对象。使用withDraw方法提款2500元,使用deposit方法存款3000元,并打印余额和月利率,以及该账户的开户日期。设计名为Stock的类模拟股票,该类包括:string型数据域symbol表示股票代号;string型数据域name表示股票的名称;double型数据域preViousclosingPrice存储前一天的股票价格;double型数据域currentPrice存储当前时间的股票价格;•一个构造方法根据指定的股票代号和名称创建股票;•所有数据域的访问器方法;previousClosingPrice和currentPrice的修改器方法;changePercent()方法返回从previousClosingPrice变为currentPrice的百分比;编写测试程序创建Stock对象,其股票代号为SUNW、名称为SunMicrosystemInc.、上期收盘价为100。设置新的当前价为90,显示价格变化百分比。编写程序,输入年份,打印出该年的年历(12个月的),如下图所示。提示:使用Calendar类得到一个Calendar类对象,先求出输入年份的1月1日是星期几,然后通过循环打印出每个月的日历,注意大小月和闰月问题。Pleaseinputeui's:2009Month*snajTL?isJanuraySunMonThuWed TheFriSat123456789101112131415lb1713192021222324252628293031MontliLsnorneisFebuarySunMonThuWedTheFriSat12345689w11121314151617181920212223242526272S设计名为Time的类。该类包含:•数据域hour、minute和second表示时间;•无参构造方法为当前时间创建Time对象;(数据域的值表示当前的时间)•一个构造方法在指定以毫秒表示的、从1970年1月1日午夜开始已逝去的时间时,创建一个Time对象;(数据域的值表示该时间)•三个get方法分别获得数据域hour,minute和second;编写测试程序创建两个Time对象(使用newTime()和newTime(555550000)),并显示它们的小时、分钟和秒。提示:无参构造方法可以使用当前时间,当前时间可以通过System.currentTimeMillis()获得。另外一个构造方法为指定逝去的时间设置小时、分钟和秒的值。例如,如果逝去的时间555550000毫秒,那么小时为10,分钟为19,秒为10。设计名为MyInteger的类,它包括:int型数据域value存储该对象表示的int值;•一个构造方法,当指定int值时,创建MyInteger对象;•一个get方法返回int的值;isEven(),isOdd()和isPrime()方法,如果这个值分别为偶、奇或素数,返回true;•静态方法isEven(int),isOdd(int)和isPrime(int),如果指定的值分别为偶、奇或素数,返回true;•静态方法isEven(MyInteger),isOdd(MyInteger)和isPrime(MyInteger),如果指定的值分别为偶、奇或素数,返回true。equals(int)和equals(MyInteger)方法,如果该对象的值与指定的值相等,返回true;•静态方法parseInt(int)将字符串转变成int值。编写用户程序测试该类中的所有方法。设计名为MyPoint的类表示一个具有x坐标和y坐标的点,该类包括:•两个数据域x和y表示坐标;•无参构造方法创建点(0,0);

•一个构造方法根据指定坐标创建一个点;•两个get方法分别得到数据域x和y;distance方法返回MyPoint类型的两个点之间的距离;distance方法返回从这一点到另一个指定x和y坐标的点之间的距离;编写测试程序创建两个点(0,0)和(10,30.5),并显示它们之间的距离。24.请写出下列程序的输出结果//程序名TestAB.javaclassA!>'double±(doublexf_doubley){+Jreturnx+v;classBextendsA{Pdoublef(intx,inty){returnpublicclassTestInheritAB{+Jpublicstaticvoidinain(Stringargs[1){System.out.printlnjb.f(3,5))System.out.println(b.±(3.0,5.0));25.请写出下列程序的输出结果///程序名TestAB2.javaclassA:>'double£(doublex.doubley){+Jreturnx+y;staticintg(intn){h1returnn古n;classBextendsA{+Jdoublef(doublex,doubley){+Jdoublem=superdoublem=super.±(x,y);returnstaticintgstaticintg(intn){h1intin=A.ff(n)returntti+n;publicclassTestAB2{publicstaticvoidmain(Stringargs[1){+JBb=new;」System.out.println(b.±(lO.OrS.O))System.out.println(b.±(lO.OrS.O))26.设计名为Course的类,它包括:3个成员变量:课程编号(cNnumber)、课程名(Cname)、学分数(Cuit)・1个构造方法,用于初始化课程编号、课程名和学分1个方法:printCourseInfo(),用于输出课程相关的信息编写课程类的测试程序27.下面程序定义了一个Student类及其测试程序,请给出程序运行的结果//TestStudent.javaclassStudent{PStringname;|chargender;intage;PString[]courseNames;double[]courseScores;^-1publicStudent(){/V构造方法dname="unknownname!";4gender=1M1;+Jage=0;J■...-...■.Tl..-...-...-...-...courseNames=newString[31;courseScores=newdouble[3];+JcourseNames[□]="计算机n;4courseriames[11="数学rr;4courseNames[2]="英语";4courseScores[□]=courseScores[1]=courseScores[2]=□;}JPublicStudent(Stringn^chars^inta){//带参数的构造方法屮name=n;」gender=s;dage=a;courseNames=newString[3];i-1=new诗匸£ing(”计算机=new诗匸£ing(”计算机”);」=new ■匸ing(”数学”)汀=newString(rr^i^r,);h1courseriames[□]courseNames[11courseNames[21courseScores[0]=□;courseScores[1]=0;^courseScores[2]=□;

publicvoidintroduceMe(){publicvoidintroduceMe(){/V成员方法+J诘里击圖标有建来显示拼写建的名字是:”+n泗巳汀,r+agE);System.out.printIn「哦的性别和年龄分别是:”+g,r+agE);System.out.print.In("我的成绩还没有录入Irr);puljlicclassTest.St.udentnulilicstaticvoidmain(String[largs){TvVvVvvX-VvV%- 、 —■L.-IVvW^tVvfStudentstul=newStudent()Studentst.u2=newStudent.(rr^lJ_|"f1M1,23);+JroduceMe();屮Syst-ein.out.printIn();roduceMe()实验三类的继承、多态、接口、访问控制符与修饰符一、实验目的与要求掌握继承和多态这两个面向对象程序的基本原则。2.理解interface关键字和接口的基本概念。3.理解abstract关键字,掌握抽象类和程序方法的设计技巧。理解final关键字,掌握最终类和抽象类的区别和使用。理解static关键字,理解类的层次和对象层次的区别,掌握类变量和类方法的使用。理解包的概念和使用。创建一个名为charpter3_2的包,将本实验的程序放入该包中二、实验内容设计一个Person类,其成员变量有:姓名(name)、性别(gender)、年龄(age);再设计一个Student类,它是类Person的子类,其成员变量有:学号(id)、班名(cname)、成绩(score),类Student中要有一个方法display。,用来显示一个学生的信息。编写一个测试程序,创建一个Student类的对象,要求name和id是自己的姓名和学号,输出学生的各种信息,学生的基本信息在类Student的带参数的构造方法中设定。写出下列程序运行结果classA{publicA(){Jf•■沁mm" ''Systein.out.println[FFA'sno-argconstructorisinvoked!,r)classBextendsA{}屮piiblicclassC{publicstaticvoidinain(Stringarg[l){Bb=new_Bj^);」下列程序在编译时会出现什么问题?classA{」publicA(intx){}」classBextendsA{+JpublicB(){|}」nuhlicclassCTest{nuljlicstaticvoidmain(Stringarg[l){4.下列说法对还是错?(1)4.下列说法对还是错?(1)(2)(3)(4)子类是父类的一个子集。当从子类调用构造方法时,它的父类的无参数构造方法也常常被调用可以在子类覆盖定义在父类中额私有方法。可以在子类覆盖定义在父类中的静态方法。5.指出下列类中的问题。(提示,至少有两个问题)publicclassCircle{*-■privatedoubleradius;publicCircle(doubleradius){h1radiu3=radius;}ppublicdoublegetRadius(){returnradius;PpublicdoublegetArea(){+Jreturnradius*radius*Hath.PT;+} 4}4EextendsCircle{+JclassEextendsCircle{+Jprivatedoublelength;B(doubleradius,doublelength){f1、J"J".4" 、J"、J"J"J"、J"J"J"、J"J"1?"、J"J"J"、J"J"J"、J"J",、、 —*Circle(radius);length=lenCTt.h;Ppublicdoublegetarea(){+Jreturn±etArea()^length;}d6.写出下列程序运行的结果:publicclassTest{publicstaticvoidmain(Stringargri){h1Aa=newA(3); 4■■.■■■■■ ■■.■■■.■■■A-rclassAextendsB{+JpublicA(intt){+JSystem.out.urintln[rrA'sconstructorisinvoked!rr);ggmmmym.•転mmmd 'classB{"publicB(){+JSvstern.out.卫匸int■丄n("Bsconstructorisinvoked!rr);}4调用newA(3)时,会调用Object的构造方法吗?4在下列代码中,类A和类B在不同的包中。如果问号的位置用空白代替,类B能正常编译吗?如果问号的位置用private代替,类B能正常编译吗?如果问号的位置用protected代替,类B能正常编译吗?packagepl;4packagep2;+JnubileclassA{+JnubileclassBextendsA{? inti;d■./.. ■./..■..publicvoidtnl(String[1args){voidm(){JSystem.out.printInti)蚁);4}P}p}P}」8.写出执行Test.java结果。classA{4-classclassA{4-classBextendsA{」■mmeinti=l;inti=2;staticintj=3staticint_7=4;^voidin(){+Jvoidhi(){+Ji=5;+Ji=6^}4staticvoidml(){Jstaticvoidml(){+J5=7;^_j=s;4}P}4}」BtoclassTesti{4Svstern.out.卫匸;Svstern.out.printIn(a.1)a.tti()a.itil[);Svstern.out.卫匸;9.写出执行Testl.java、Test2.java结果。classA{inti=l;i-1staticinti=2;{System,out.print.In(rri=rr+i);}f1static{Svstern.out.println(Frj=,,=j);}

(2)10.写出程序HidingDemo.java运行结果classHidingDeitio{puljlicstaticvoidmain(Stringargs[]){+JAx=new;Px・i="+:・:・i:i(B)x^i=»+((B)x).i);」System,out.urintln(rr(3)System,out.printIn(,r(4)x.i=rr+x.j);+J((B)x).j=rr+((B)x).卫汕System,out.printIn(,r(5)System.out.printIn("i6)Ax.ml()=rr+x.ml())沖((E)x) »+((B)x) ;x.m2()=r,+x.iti2());+Jx.m2()=r,+x.iti2());+JSystem,out.printIn(,r(8)}4classA{*publicpublic

pulilicinti=l;Jintj=ll;Stringml(){J

s类方法mlrr;」staticstaticreturnrrA'nuljlicStringTvvvvvvvv-v-.---.- —return,rA'm2(){-1s实例方法m2rr;」pulilicStringreturnrrA'm3()<Js实例方法m3rr;」classBextendsA{+Jpublicpublicnuljlicinti=2;+Jintj=12;i-1Stringml(){+J

s类方法ml”;4staticstaticreturn,rB1pulilicStringreturnrrB1判断下列说法的对错:•终极类可以有实例。•终极类可以扩展。•终极方法可以被覆盖。•总可以成功地将子类的实例转换为父类。m2(){-1s实例方法m2rr;」•总可以成功地将父类的实例转换为子类。(Person、Student、Employee、Faculty和Staff类)设计名为Person的类和它的两个子类Student和Employee。Employee有子类Faculty、Staff。人有姓名、地址、电话号码和电子邮件地址。学生有班级状态(一年级、二年级、三年级或四年级),将这些状态定义为常量。职员有办公室、工资和受聘日期。定义名为MyDate的类,包含数据域year(年)、month(月)day(日)。职员有办公时间和级别,职员有职务称号。覆盖每个类中的toString方法显示相应的类名和人名。编写测试程序,创建Person,Student,Employee,Faculty和Staff,并调用它们的toString()方法。定义一个类A,该类有一个方法f,方法f可以输出英文字母,再定义一个类B是A的子类,子类B不能重写父类A的方法f,子类有一个方法g,可以输出中文字符串。编写测试程序,创建B的对象,输出英文字母和中文字符串。定义一个类SA,该类有一个方法f():publicintf(int1,intb),该方法返回a和b的最大值。再定义该类的子类SB,要求子类重写父类的方法f,重写的方法将返回a和b的最小公倍数。要求在重写的方法的方法体中首先调用被隐藏的方法返回a和b的最大公约数m,然后将乘积(a*b)/m返回。要求在测试程序中分别使用父类和子类创建对象,并分别调用方法f计算两个正整数的最大公约数和最小公倍数。定义一个坐标类Pointer,成员变量包括x和y;成员方法有:(1、构造方法(2、setX、setY、getX、getY、display方法(3、toString(、、equals(、(4、类方法distance用来计算亮点之间的距离编写测试程序,创建Pointer的两个对象并计算两个点坐标的中点。编写程序.定义类Vfehlcles.属性包括size、color、seats,还有一个构造方法和一个显示信息的方法。然后从此类中派生Car类,其中包括构造方法和显示信息的方法,并编写程序进行测试。编写个矩形类MyRectangle,其中包括方法getHeigth(获得矩形的长度)、getWidth方法(获得矩形的宽度)、setHeigth方法(设置矩形的长度)、setWidth方法(设置矩形的宽度)、getArea方法(求矩形的面积)和showlnfo方法(显示矩形的格式),从矩形类派生出一个子类Mysquare代表正方形,并对gctArea()方法和showinfo()方法进行重写。并编写程序进行测试。主板上的PCI插槽就是显示中的接口,可以把声卡、显卡、网卡都插在PCI插槽上,而不用担心那个插槽是专门插哪个的。编写程序实现这个原理。定义一个抽象类Area、两个Area的子类RectArea和RoundArea,以及一个实现类ImpleArea。要求如下(1、抽象类Area类中只包含一个抽象方法doublearea()。子类RoundArea类通过覆盖父类中的抽象方法area()来求圆的面积,另一个子类RectArea类通过覆盖父类中的抽象方法area()求长方形的面积。圆的半径和长方形的边分别定义为子类RoundArea类和RectArea类的域,都为double娄型。ImpleArea类中创建对象,接收键盘输入,输入内容分别为圆的半径和长方形的边,并求出圆和长方形的面积,在屏幕上显示。编写一个Animal类,包含:(1)属性:privateStringtype。(2)构造方法;用于初始化私有属性type。(3)方法:publicstringtoString(),用于返回动物类型的信息publicvoidsound(),用于输出动物的叫声信息。21•编写一个Flyable接口,包含:方法:doubleflySpeed(),用于返回最大的飞行速度。编写Giede(老鹰)类和Pigeon(鸽子)类,分别继承题16中的Animal类并实现20题中的F1yable接口。编写测试程序,显示输出老鹰和鸽子的叫声信息和最大飞行速度。编码实现一个打印机监视器,其中包括两个布尔型域“墨盒用尽”、“最后一次后打印过10万张纸”和一个方法“需要维修”。该方法在两个布尔型域中有一个为返回真。编码实现温度类,其中包括4个方法,其中getFahrenheit()和getCelsius()返回华氏和摄氏温度值,setFahrenhei()和setCelsius()分别设置华氏和摄氏温度值。编码实现地址簿类。每个对象中包括“姓名”、“地址”、“电话”三个域,并为该类定义相应的get,set方法。实验四Java资源及其使用一、实验目的与要求1.理解Java标准库的结构。了解Java常用的包。掌握Object类的常用方法。掌握System类常用方法掌握Java的类库的一些基本类及使用,如System、Math、String和BufferString等。理解Java包装类的概念即使用。二、实验内容设x,y是整型变量,d是双精度型变量,试书写表达式完成下面的操作:⑴求x的y次方。求x和y的最小值。求d取整后的结果。求d四舍五入后的结果。求atan(d)的数值。写出下面程序运行结果,并解释之。publicclassStringDemo{publicstaticvoidmain(Stringargs[]){Stringsl=FrHelloFr;Strings2=rrHellorr;Strings3=newString(,,Hello,r);Strings4=newString(;"相等否System,out.printIn(,r31==32: r,+iisl==s2));System,out.printIn(,,s3==s4: r,+(s3==s4));System,out.printIn(rrsl==s3:rr+(sl==s3));〃值相等否System.out.println(,rslequalss2:r,+sl.equals(s2));System.out.println(rrs3equalss4:rr+s3.equals(s4));System.out.println(rrslequalss3:rr+sl.equals(s3));Math的random方法用来实现什么功能?语句(int)(Math.random()*6)+l的作用是什么?编程生成100个1~6之间的随机数,统计1〜6每个数出现的概率;修改程序生成1000个随机数并统计概率;比较不同的结果并给出结论。编程求一个整数数组的最大值、最小值、平均值和数组所有元素的和。编写程序,从键盘上输入一个字符串和一个指定字符,把字符串中所有与指定的字符相同的字符删除后输出。编写程序,从键盘上输入一个字符串和一个指定字符,统计字符串中出现指定字符次数并输出。7•编写程序,将字符串“LetusstudyJava”转化为大写、转化成小写、把字符串中的空格用符号“#”替换,并分别输出。实验五Java语言的异常处理、实验目的与要求1.掌握Java的异常处理机制。2.掌握try、catch、throws和finally这5个关键字的用法。掌握成员的几个异常类。掌握自定义异常的使用。、实验内容1.编写程序,从键盘上输入两个数。将第一个数除以第二个数并显示结果;处理所有可能的异常。2.写出下面程序运行的结果:"自定义异常classMyExceptionextendsException{Stringinessage;MyException(Stringstr){niessage=st.r;publicStringgetHessage(){returnmessage;abstractclassABC{abstractint±(intxfinty)throwsMyException;classSukiABCextendsABC{intf(intx,inty)throwsMyException{if(x>99||y>99){thrownewMfExu已“icin("乘数超过99!rr);L宀_.publicstaticvoidmain(Stringargs[]){ABCatoc;afcic=newSubABC();try{System,out.print.in(aJoc.f(12,8));System,out.println(atic.±(120^3));}catch(HyExceptione){Systetn.out.printIn(e.getHessage());3.写出下列程序的输出结果。

//TestOl.javapublicclassTestOl{publicstaticvoidmain(String[]args){try{for(inti=0;i<3;i++){System,out.printIn(,rthevalueofi:rr+i);System.out.println(5/i);}//endfor}catch(ArithineticExceptione){System,out.printIn(,rDivisionbyzero.”);for(inti=0;i<3;i++){try{System,out.println(rrThevalueofi:rr+i);System.out.println(5/i);}catch(ArithineticExceptione){System,out.printIn("Divisionbyzero.rr)}//endfor}//endinain()}//endclss有下列程序://TestOS-javapublicclassTest02{publicstaticvoidmain(String[]args){Stringfoo=args[1];Stringkiar=args[2];Stringbaz=arg3[3];若用下面方式执行该程序,则baz的值为( )。javaTestRedGreenBlue(A)“”(B)null(C)"Red” (D)”BIue” (E)”Green”(F)代码不能编译(G)程序抛出异常有下列程序://Fool.javapublicclassFooll{publicstaticvoidmain(Stringargs[]){try{return;}finally{System,out.println(rrFinally!rr);}//endfinally}//endmain()}//endclass该程序的输出结果为((A)该程序的输出结果为((A)没有任何输出)。(B)输出“Finally”(C)编译错误 (D)抛出异常6.有下列程序://Foo2.javapuhlicclassFool2{publicstaticvoidmain(String[]args){try{System,exi.t(□);}finally{System.out.println("Finally!");}//endfinally}//endmain()}//endclass该程序的输出结果为()。(A)没有任何输出 (B)输出“Finally” (C)编译错误 (D)抛出异常修改下列程序的错误之处。//|Tes03.javaclassTest03{publicstaticvoidmain(Stringargs[]){try{inta=10;Systein.out.printIn(a/□);}catch(Exceptione){System,out.printIn(,rAnexceptionoccurred.rr);}catch(ArithineticExceptionae){System,out.printlnf"Arithmeticexceptionoccurred.rr)写出下列程序的运行结果。//Test04.javaclassTest04{publicstaticvoidmain(Stringargs[]){try{;}catch(Exceptione){System.out.print(1m1);System.out.print(1n1);staticvoidrriki_createException(){thrownewArraylndexOutOfBoundsException()staticvoidrriki_itiethod(){try{createExcepti022();System,out.print(FFaFF);}catch(ArithmeticExceptione){

System,out.print(rrtorr);}finally{System,out.print(rrcrr);System,out.print(,rd,r);9.编写一个程序,要求从键盘输入一个double型的圆的半径,计算并精出其面积。测试当输入的数据不是double型数据(如字符串“abc”)会产生什么结果,怎样处理。10.编写一个应用程序,在main()方法中使用try块抛出一个Exception类的对象,为Exception的构造方法提供一个字符串参数,在catch块内捕获该异常并打印出字符串参数。添加一个finally块并打印一条消息。11.创建一个自定义的异常类,该类继承Exception类,为该类写一个构造方法,该构造方法带一个String类型的参数。写一个方法.令其打印出保存下来的String对泉。再编写一个类,在main()方法中使用try--catch结构创建一个MyException类的对象并抛出,在catch块中捕获该异常井打印出传递的String消息。实验六输入输出流一、实验目的1.掌握Java语言中的输入输出流的基本概念。2.掌握Java语言中流的分类3.掌握常用的自截留和字符流类的使用。掌握RandomAccessFile类和File类的使用二、实验内容1.编写一个加密程序,对用户输入的字符串加密后输出。加密的方法是将每个字符映射成字母表中的对称字符。例如a对应z,b对应y,字符串“Java”加密后就成为“Qzfz”2.编写程序,将一个源文件的内容传输到一个目标文件中去。要求:编写程序时,可以把它分成3个小的模块:指定要传送的文件路径;指定传送文件的目录路径;传送文件。本程序在运行时看不到运行的结果,若要看运行的结果,得打开资源管理器,打开传送的文件和被传送的文件,看这两个文件是否相同。3.编写程序,能够列出指定目录下的所有文件,包括子目录下的文件,并使用文件名过滤器来过滤文件。要求:使用File类的list()方法返回该目录下所有文件的文件名,文件名不包含路径信息。使用File类的listFiles()方法返回该目录下的所有文件的File对象。FilenameFilter是文件名过滤器接口类,所有自定义

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论