1、南昌大学JAVA期末复习题一、 填空题1对象之间可能存在的关系有三种:_包含_、_继承_和_关联_。2面向对象的软件开发过程大体可分为_面对对象分析、_面对对象设计_和_面对对象测试_三个阶段。3Java语言中实现多态的方法有_继承_、_方法重载_和_成员覆盖_。4Java语言具有可移植性、高性能、健壮性、安全性和独立于体系结构的_跨平台_特点。5JAVA语言规定object类是JAVA程序中所有类的父类,当前类的构造方法用this()表示,直接父类的构造方法用super()表示。6如果一个JavaApplet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是A
2、pplet类的子类并且存储该源程序文件的文件名为MyApplet.java。7如果一个JavaApplet程序文件中定义有3个类,则使用Sun公司的JDK编译器javac.exe编译该源程序文件将产生3个文件名与类名相同而扩展名为.class的字节码文件。8在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用2字节内存空间,这样,无论是中文字符还是英文字符,都是占用2字节内存空间。10Applet是能够嵌入到HTML格式的文件中,并能够在浏览器中运行的Java。11在Java中,线程的模型就是一个CPU、程序代码和数据的封装体。12键盘键入字符串并在计算机
3、屏幕上显示,这时的数据源是键盘。13JAVA语言是第一个语言本身就支持线程的编程语言,其对线程的支持主要通过java.lang.Thread类和java.lang.Runnable接口来实现。14设有数组定义:intMyIntArray=10,20,30,40,50,60,70;则执行以下几个语句后的输出结果是120。ints=0;for(inti=0;iMyIntArray.length;i+)if(i%2=1)s+=MyIntArrayi;System.out.println(s);15JVM是Java Virtual Machine的缩写;AWT是abstrac window toolk
4、it的缩写。16单重继承是指只有一个父类的继承;多重继承是指有一个以上父类的继承;Java语言出于安全、可靠的考虑,仅支持单重继承;但Java语言可通过接口来实现多重继承。17Java中构成图形用户界面的元素和成分可分为_容器_、_控制组件_和_用户自定义_等三类。18一个线程的完整生命周期包括如下5种状态_新生_、_就绪_、_运行_、_阻塞_和_死亡_。19Java中实现多线程的图径有2种,一种是_继承thread类_,另一种是_Runnable接口。20任何一个Java程序都默认引入了一个包,这个包的名字叫java.lang。21Java语言中,有一个类是所有类或接口的父类,这个类的名称是
5、object。22下列程序的功能是创建了一个显示5个Hello!的线程并启动运行,请将程序补充完整。publicclassThreadTestextendsThreadpublicstaticvoidmain(Stringargs)ThreadTestt=new_ThreadTest()_;t.start();publicvoidrun()inti=0;while(true)System.out.println(Hello!);if(i+=4)break;23Java中访问限定符有public、private_、protected和default等。24事件处理机制中包含以下3个部分事件源、事
6、件对象和事件监听器,JAVA2的事件处理模型被称为委托事件处理模型。25JAVA线程在其生命周期中会处在不同的状态,包括运行、暂停、同步和挂起 。26图形用户界面由容器和组件组成。27表示可直接对数据源进行读写操作的流称为节点流。28如果要将捕获到的异常在当前方法中处理,应该使用try-catch-final语句来捕获一个或多个异常。29抽象方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。final方法是不能被当前类的子类重新定义的方法。30创建一个名为MyPackage的包的语句是packge MyPackage,该语句应该放在程序的位置为:源代码 的第一行
7、二、简答与程序分析题1简述程序、进程与线程的差别。2简述方法重载与方法覆盖的区别方法的覆盖和重载是Java多态性的不同表现。覆盖是父类与子类之间多态性的一种表现,重载是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被覆盖。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载。重载的方法是可以改变返回值的类型。3阅读以下程序:(本题3分)classFatherClasspublicFatherClass()System.out.
8、println(FatherClassCreate);publicclassChildClassextendsFatherClasspublicChildClass()System.out.println(ChildClassCreate);publicstaticvoidmain(Stringargs)FatherClassfc=newFatherClass();ChildClasscc=newChildClass();程序运行结果是FatherClass CreateFatherClass CreateChildClass Create_4阅读以下程序:classMyThreadexten
9、dsThreadpublicvoidrun()System.out.println(MyThread:run();publicvoidstart()System.out.println(MyThread:start();classMyRunnableimplementsRunnablepublicvoidrun()System.out.println(MyRunnable:run();publicvoidstart()System.out.println(MyRunnable:start();publicclassMyTestpublicstaticvoidmain(Stringargs)My
10、ThreadmyThread=newMyThread();MyRunnablemyRunnable=newMyRunnable();Threadthread=newThread(myRunnable);myThread.start();thread.start();此程序的运行结果是_MyThread:start()MyRunnable:run()5阅读程序,写出程序的运行结果importjava.util.Scanner;publicclassTestThrowExceptionpublicstaticvoidmain(Stringargs)TestThrowExceptiont=newTe
11、stThrowException();System.out.print(请输入您的年龄:);System.out.println(您的年龄:+t.inputAge();publicintinputAge()intresult=-1;Scannerscan=newScanner(System.in);while(true)tryresult=scan.nextInt();if(result130)Exceptionme=newException(年龄超出合理范围!);throwme;break;catch(Exceptione1)System.out.print(e1.getMessage()+
12、请重新输入:);continue;returnresult;输入145时程序运行结果_6阅读以下程序:importjava.io.*;publicclassReadLineTestpublicstaticvoidmain(Stringargs)throwsIOExceptionBufferedReaderb=newBufferedReader(newInputStreamReader(System.in);Strings;System.out.flush();s=b.readLine();System.out.println(s);运行以上程序,若从键盘输入:Hello阅读以下程序,输出结果为
13、Hello。7阅读以下程序importjava.io.*;publicclassATestpublicstaticvoidmain(Stringargs)SubClasssb=newSubClass();System.out.println(sb.funOfMod();classSuperClassinta=-10,b=-3;classSubClassextendsSuperClassintfunOfMod()returna%b;程序运行结果为_-1_8阅读以下程序:classApublicstaticvoidmain(Stringargs)Strings,s1=;charc;s=args0;
14、for(inti=0;i=a&c=z)s1=s1+Character.toUpperCase(c);elses1=s1+Character.toLowerCase(c);System.out.println(s1);若在dos命令行输入:javaAhELLO,则输出为hELLO。9阅读以下程序:(本题3分)publicclassCpublicstaticvoidmain(Stringargs)inti,j;inta=2,1,4,8,9,5,3;for(i=0;ia.length-1;i+)intk=i;for(j=i;ja.length;j+)if(ajak)k=j;inttemp=ai;ai
15、=ak;ak=temp;for(i=0;ia.length;i+)System.out.print(ai+);System.out.println();程序运行结果为1 2 3 4 5 6 7 8 910阅读程序,写出程序的运行结果publicclassPersonStringname;intage;publicStringgetInfo()returnName:+name+t+age:+age;publicclassStudentextendsPersonStringschool;publicStringgetInfo()returnName:+name+tAge:+age+tSchool:
16、+school;publicclassTestpublicstaticvoidmain(Stringargs)Personp=newPerson();p.name=Tom;p.age=18;System.out.println(p.getInfo();Students=newStudent();s.name=Billy;s.age=34;s.school=THU;System.out.println(s.getInfo();程序运行结果_11阅读程序,写出程序的运行结果classAnimalprotectedinti=1;classPersonextendsAnimalprotectedint
17、i=2;/用于测试同名属性,无现实含义privateStringname=Tom;privateintage=9;publicStringgetInfo()returnName:+name+tAge:+age;publicvoidtestI()System.out.println(super.i);System.out.println(i);classStudentextendsPersonprivateinti=3;privateStringschool=THU;publicStringgetInfo()returnsuper.getInfo()+tSchool:+school;public
18、voidtestI()System.out.println(super.i);System.out.println(i);publicclassTestpublicstaticvoidmain(Stringargs)Personp=newPerson();System.out.println(p.getInfo();p.testI();Students=newStudent();System.out.println(s.getInfo();s.testI();程序运行结果_12阅读程序,写出程序的运行结果interfaceRunnerpublicvoidrun();interfaceSwimm
19、erpublicvoidswim();abstractclassAnimalpublicabstractvoideat();classPersonextendsAnimalimplementsRunner,Swimmerpublicvoidrun()System.out.println(Iamrunning,tothesea!);publicvoidswim()System.out.println(Iamswimming,totheisland!);publicvoideat()System.out.println(Iameating!);publicclassTestpublicstatic
20、voidmain(Stringargs)Testt=newTest();Personp=newPerson();t.m1(p);t.m2(p);t.m3(p);publicvoidm1(Runnerf)f.run();publicvoidm2(Swimmers)s.swim();publicvoidm3(Animala)a.eat();程序运行结果_13阅读程序,写出程序的运行结果publicclassPersonimplementsCloneableprivateStringname;privateintage;publicPerson(Stringname,intage)this.name
21、=name;this.age=age;publicvoidsetAge(intage)this.age=age;publicvoidsetName(Stringname)this.name=name;publicvoiddisplay()System.out.println(Name:+name+tAge:+age);publicObjectclone()Personp=null;tryp=(Person)super.clone();catch(CloneNotSupportedExceptione)e.printStackTrace();returnp;publicclassBookimpl
22、ementsCloneableStringbookName;doubleprice;Personauthor;publicBook(Stringbn,doubleprice,Personauthor)bookName=bn;this.price=price;this.author=author;publicObjectclone()Bookb=null;tryb=(Book)super.clone();catch(CloneNotSupportedExceptione)e.printStackTrace();b.author=(Person)author.clone();returnb;pub
23、licvoiddisplay()System.out.print(bookName+t+price+t);author.display();publicclassTestDeepCopypublicstaticvoidmain(Stringargs)Bookb1=newBook(Java编程,30.50,newPerson(张三,34);Bookb2=(Book)b1.clone();b2.price=44.0;b2.author.setAge(45);b2.author.setName(李四);b2.bookName=Java开发;b1.display();b2.display();程序运行
24、结果_14阅读程序,写出程序的运行结果importjava.awt.event.WindowEvent;importjava.awt.event.WindowAdapter;publicclassMyAdapterextendsWindowAdapterpublicvoidwindowClosing(WindowEvente)System.exit(1);importjava.awt.Frame;publicclassTestAdapterpublicstaticvoidmain(Stringargs)Framef=newFrame(JavaGui);f.setSize(150,150);My
25、Adapterm=newMyAdapter();f.addWindowListener(m);f.setVisible(true);程序运行的用户界面如上图,程序运行效果为_15阅读程序,写出程序的运行结果importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;publicclassMyMonitorimplementsActionListenerpublicvoidactionPerformed(ActionEvente)System.out.println(Abuttonhasbeenpressed!);im
26、portjava.awt.Frame;importjava.awt.Button;importjava.awt.BorderLayout;publicclassTestActionEventpublicstaticvoidmain(Stringargs)Framef=newFrame(Test);Buttonb=newButton(PressMe!);MyMonitormm=newMyMonitor();b.addActionListener(mm);f.add(b,BorderLayout.CENTER);f.pack();f.setVisible(true);程序运行的用户界面如下图:当用
27、户鼠标单击”PressMe!”时程序运行结果:_16阅读程序,写出程序的运行结果importjava.io.;importjava.io.DataOutputStream;importjava.io.IOException;publicclassDataOutputDemopublicDataOutputDemo()publicstaticvoidmain(Stringargs)throwsIOExceptionfile=new(invoice.txt);DataOutputStreamout=newDataOutputStream(file);Stringdescs=衬衫,背包;double
28、prices=1159.99,299.99;intunits=12,8;for(inti=0;iprices.length;i+)out.writeUTF(descsi);out.writeChar(t);out.writeDouble(pricesi);out.writeChar(t);out.writeInt(unitsi);out.writeChar(t);out.close();importjava.io.;importjava.io.DataInputStream;importjava.io.IOException;importjava.io.EOFException;publicc
29、lassDataInputDemopublicDataInputDemo()publicstaticvoidmain(Stringargs)throwsIOExceptionDataInputStreamin=newDataInputStream(new(invoice1.txt);doubletotal=0;trywhile(true)Stringdesc=in.readUTF();in.readChar();doubleprice=in.readDouble();in.readChar();intunit=in.readInt();in.readChar();/charchr;/Strin
30、gBufferdesc=newStringBuffer(20);/while(chr=in.readChar()!=n)/desc.append(chr);System.out.println(Youveordered+unit+unitsof+desc+at$+price);total=total+unit*price;catch(EOFExceptione)System.out.println(ForaTOTALof:$+total);in.close();以上程序运行后,屏幕输出结果为:_17阅读以下程序:importjava.io.*;publicclassTestStringpubl
31、icstaticvoidmain(Stringargs)StringCs=newStringC(hello,java);System.out.println(s);classStringCStrings1;Strings2;StringC(Stringstr1,Stringstr2)s1=str1;s2=str2;publicStringtoString()returns1+s2;程序运行结果为hellojava18阅读以下程序:importjava.io.*;publicclassabcpublicstaticvoidmain(Stringargs)SubSubClassx=newSubSu
32、bClass(10,20,30);x.show();classSuperClassinta,b;SuperClass(intaa,intbb)a=aa;b=bb;voidshow()System.out.println(a=+a+nb=+b);classSubClassextendsSuperClassintc;SubClass(intaa,intbb,intcc)super(aa,bb);c=cc;classSubSubClassextendsSubClassinta;SubSubClass(intaa,intbb,intcc)super(aa,bb,cc);a=aa+bb+cc;voidshow()System.out.println(a=+a+nb=+b+nc=+c);程序运行结果为a = 60b = 20falsetruefalsec = 3019阅读以下程序classTwoObjectspublicstaticvoidmain(Stringargs)