面向对象程序设计课程期末复习一、填空题1.Java源程序的扩展名是.java ,经过编译后的程序的扩展名是.class 。
2.Socket通常也称为套接词,用于描述IP地址和端口。
3.线程的优先级在0 至31 之间,数值越大任务越紧急4.构造方法是一种特殊的成员方法,构造方法名与类名相同5.Java语言只允许单继承,指每个类只能有一个父类。
6. 在面向对象方法中,类描述的是具有相似属性与操作的一组对象。
7. 对象是Java程序中基本的结构单位。
8. 组件不能独立地显示出来,必须将组件放在一定的容器中才能显示。
9. 能将显示空间分成很多层的布局管理器是CardLatyout。
10. 任何一个Java程序都默认引入一个包,这个包的名字叫 ng。
11. Java语言中,有一个类是所有类或接口的父类,这个类的名称是Object。
12. 只能被同一包中的类访问的类中定义的成员变量是default成员13. J2EE是大型企业级用容器管理专用组件的应用平台。
14. 在Java语言中,用abstract修饰符定义的类为抽象类。
15.Swing中用来表示面板的类是16.Collection的接口和类的API18.main方法的声明格式包括public static void main(String[]args)19.下列程序中构造了一个SET并且调用其方法add(),输出结果是 ( 1 )public class A{public int hashCode(){return 1;}public Boolean equals(Object b){return true}public static void main(String args[]){ Set set=new HashSet();set.add(new A());set.add(new A());set.add(new A());System.out.println(set.size());}}20.下列程序的运行结果是class A{class Dog{private String name;private int age;public int step;Dog(String s,int a){name=s;age=a;step=0;}public void run(Dog fast){fast.step++;}}public static void main (String args[]){A a=new A();Dog d=a.new Dog("Tom",3);d.step=25;d.run(d);System.out.println(d.step);}}21.Java语言中, final 类不能被继承。
22.Java中的构造方法名必须与类名同名,它没有返回值。
23.AWT中用来表示对话框的类是 java.awt.Dialong 。
24.Frame框架窗口的默认布局管理器是 BorderLayout 。
25.点击窗口内的按钮时,产生的事件是 ActionEvent 。
三、多项选择1.执行下列代码后,哪个结论是正确的 String[] s=new String[10]; BDA、 s[10] 为 "";B、 s[9] 为 null;C、 s[0] 为未定义D、 s.length 为102.下面的表达式哪个是正确的? AEA、 String s="你好";int i=3; s+=i;B、 String s="你好";int i=3; if(i==s){ s+=i};C、 String s="你好";int i=3; s=i+s;D、 String s="你好";int i=3; s=i+;E、. String s=null; int i=(s!=null)&&(s.length>0)?s.length():0;3.选出合理的标识符ACA、 _sys1_lllB、 2mailC、 $changeD、 class4.哪个布局管理器使用的是组件的最佳尺寸( preferred size)AEA、 FlowLayoutB、 BorderLayoutC、 GridLayoutD、 CardLayoutE、GridBagLayout5.下列哪个方法可用于创建一个可运行的类? AEA、 public class X implements Runable{ public void run(){ ......} }B、 public class X implements Thread{ public void run(){ ......} }C、 public class X implements Thread{ public int run(){ ......} }D、public class X implements Runable{ protected void run(){ ......} }E、public class X implements Thread{ public void run(){ ......} }6.下面哪个方法可以在任何时候被任何线程调用? DEFA、 notify()B、 wait()C、 notifyAll()D、 sleep()E、yield()F、synchronized(this)7.构造BufferedInputStream的合适参数是哪个? ACA BufferedInputStreamB BufferedOutputStreamC FileInputStreamD FileOuterStreamE. File8.下列说法正确的是BCA ng.Clonable是类B ng.Runnable是接口C Double对象在ng包中D Double a=1.0是正确的java语句9.指出正确的表达式ABA double a=1.0;B Double a=new Double(1.0);C byte a = 340;D Byte a = 120;10.定义一个类名为"MyClass.java"的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为:CDA private class MyClass extends ObjectB class MyClass extends ObjectC public class MyClassD public class MyClass extends Object11.指出下列哪个方法与方法public void add(int a){}为合理的重载方法。
CDA public int add(int a)B public void add(long a)C public void add(int a,int b)D public void add(float a)12.如果下列的方法能够正常运行,在控制台上将显示什么?ACDpublic void example(){try{unsafe();System.out.println("Test1");}catch(SafeException e){System.out.println("Test 2");}finally{System.out.println("Test 3");}System.out.println("Test 4");}A Test 1B Test 2C Test 3D Test 413.下列哪些情况可以终止当前线程的运行?ABDA 抛出一个例外时。
B 当该线程调用sleep()方法时。
C 当创建一个新线程时。
D 当一个优先级高的线程进入就绪状态时。
四、程序阅读与填空题1. 阅读程序给出结果下列程序段用来计算Fibonacci序列的第0,1,2,…各项public class Fibonacci {public static void main(String args[]) {System.out.println("Fibonacci 第4项="+ fib(4)); }static int fib(int n) {if (n==0||n==1) {return n;}else {int sum=fib(n-1)+fib(n-2);return sum;}}}输出结果为:(2)32. 按注释提示完成文件复制的程序//FileStream源代码如下:import java.io.*;class FileStream {public static void main(String args[]) {try{File inFile=new File("file1.txt"); //指定源文件File outFile=new File("file2.txt"); //指定目标文件FileInputStream fis=(1)new FileInputStream(inFile); FileOutputStream fos=new FileOutputStream(outFile);int c;//逐字节从源文件中输入,再输出到fos流while((c=fis.read())!=-1)(2)fos.write(c) ;fis.close();fos.close();}catch(Exception e) {System.out.println("FileStreamsTest: "+e);}}}3. 阅读程序,给出结果//B.java源代码如下:class A{int x=100;}class B extends A{int x=200;void prt(){System.out.println("SubClass: "+x);System.out.println("SuperClass: "+super.x);}public static void main(String args[]){new B().prt();}}结果:SubClass:200 SuperClass: 1004. 阅读程序,给出结果:// AbstractClassDemo.java源代码如下:abstract class Shape { //定义抽象类Shape和抽象方法displayabstract void display();}class Circle extends Shape {void display() { //实现抽象类的方法System.out.println("Circle");}}class Rectangle extends Shape {void display() { //实现抽象类的方法 System.out.println("Rectangle"); }}class Triangle extends Shape {void display() { //实现抽象类的方法System.out.println("Triangle");}}public class AbstractClassDemo{public static void main(String args[]){(new Circle()).display(); //定义无名对象来调用对应的display方法(new Rectangle()).display();(new Triangle()).display();}}结果:Circle Rectangle Triangle五、判断题F1. 下述代码是否正确int b[5];for(int i=0;i<5;i++)b[i]=i;F2. 下述代码是否正确char b="A";System.out.println("b = " + b);T3.接口中的方法都是抽象方法。