JAVA期末复习资料.doc

上传人:s****u 文档编号:13162004 上传时间:2020-06-05 格式:DOC 页数:27 大小:147KB
返回 下载 相关 举报
JAVA期末复习资料.doc_第1页
第1页 / 共27页
JAVA期末复习资料.doc_第2页
第2页 / 共27页
JAVA期末复习资料.doc_第3页
第3页 / 共27页
点击查看更多>>
资源描述
Java期末复习题一、判断题1、在main方法中可以直接调用非静态的方法。 ( F )2、方法重载就是一个类中有多个同名但有不同形参和方法体的方法。 ( T )3、一个Java源程序可有多个类,但只仅有一个public类,而且源程序名与public类名相同。 ( T )4、Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。(T)5、方法中的形参可以和方法所属类的属性同名。 ( T )6、Java类中不能存在同名的两个成员函数。 ( F ) /可以存在同名的方法,但是参数不能相同,这样的关系体现了Java中的多态(重载)7、可以用new来创建一个类的实例,即“对象”。 ( T )8、Java中类的构造函数只能有一个。 ( F )/错误,可以重载.如果没有,会默认生成 xxx()9、类的静态变量被该类的所有对象共享。( T )10、不管定义与否,任何类都有一个不带参数的构造方法。 ( F )11、一个类可以访问另一个类的私有成员。 ( F )12、构造方法没有返回值,因此在定义构造方法时,其返回值类型必须声明为void。 ( F )13、对于类变量,可以通过类名直接访问,也可以通过该类的对象访问。 ( T )14、构造方法的名字必须与类名相同。 ( T )15、一个类的私有变量可以在同一个包的不同类中使用。 ( F )16、实例变量不能在类方法中直接引用,而类变量可以在实例方法中直接引用。 ( T )17、抽象类可有构造方法,因此也能用new进行实例化。( F )18、一个类可继承多个父类,实现多个接口。( F )19、用final修饰的类不能被继承。 ( T )20、接口中的成员变量全部为常量,方法为抽象方法。 ( T )21、接口无构造器,不能有实例,也不能定义常量。 ( F )22、java的类不允许嵌套定义。 ( F )23、在接口中所有的方法都是抽象方法,所以必须在方法定义之前加上abstract关键字( F)24、抽象类中不能包含final修饰的方法。 ( T )25、子类可以继承父类所有的成员变量及成员函数。 ( F)26、接口可以被另一个接口继承。( T )27、接口中只能定义符号常量和抽象方法。( T )28、final类不能派生子类,final方法不能被覆盖。(T)29、如果类A的一个方法m的访问权限是默认的,则m可以被同一个包中的其他类访问,也可以被其它包中A的子类访问。(F)30、所有的类都可以被继承。(F)31、java中是单继承,但一个类可以实现多个接口。(T)32、如果一个类中包含抽象方法,则这个类也必须定义为抽象类。(T)33、如果在子类中改写从父类继承的方法,则子类中定义的访问权限不能低于父类中该方法的访问权限。(T)34、一个接口中的所有方法都是抽象的。( T)35、一个抽象的类不能直接用new命令创建对象。(T)36、一个子类中可以定义与父类中名字相同,而参数不同的方法,此时子类的方法会改写从父类继承来的方法。(F)/重写的条件是 子类定义的方法和父类的方法有相同的方法名,相同的参数列表,以及相同的返回值,显然问题不符合以上条件,所以错误37、JFrame,JPanel,JApplet和JButton四种组件都属于容器组件。 ( F )38、BorderLayout是面板的缺省布局管理器。 ( F )39、BorderLayout最多可以使用5个组件。 ( T )40、一个面板(JPanel)不能被加入另一个面板(JPanel)中。 ( F )41、菜单需要一个JMenuBar对象,以使他们能被添加到JFrame。 ( T )42、标签(JLabel)可以在屏幕上显示一个字符或一幅图片。 ( T )43、BorderLayout是容器javax.swing.JFrame默认的布局管理器。 ( T )44、JTextArea可以用来接收多行文本的输入。 ( T )45、在Java坐标系统中,X值从左向右增加。( T )46、BorderLayout布局管理器把组件排列在北、南、东、西和中间区域。(T )47、边界布局管理器(BorderLayout)把容器分成5个区域,每个区域只能放一个组件。(T)48、一个组件可以注册一个或多个事件监听器。(T)二、选择题1、以public修饰的类如:public class fish 则fish( A )A)可被其它程序包中的类使用 B)仅能被本程序包中的类使用C)不能被任意其它类使用 D)不能被其它类继承2、下述哪个说法是不正确的?( A )A) 局部变量在使用之前无需初始化,因为有该变量类型的默认值B) 类成员变量由系统自动进行初始化,无需初始化C) 参数的作用域就是所在的方法D) for语句中定义的变量,当for语句执行完时,该变量就消亡了3、使用如下哪个保留字可以使只有在定义该类的包中的其他类才能访问该类?( D ) A、abstract B、private C、protected D、不使用保留字4、Java源文件和编译后的文件扩展名分别为( B )A).class和 .java B).java和 .classC).class和 .class D).java和 .java5、下列说法中,不正确的是( A ) A) 一个java源程序编译通过后,得到的结果文件数也只有一个。B) 一个java源程序经过编译后,得到的文件的扩展名一定是.class。C) 一个java源程序只能有一个public class类定义,且源文件的名字与public class的类名相同,扩展名必须是.java。D) 一个java源程序可以包含多个类。6、System.out.print(“1”+2)打印到屏幕的结果是( B )A)3B)12C)1+2D)47、假设int x=4,y=100,下列语句的循环体共执行几次?( B )while(y/x3) if(y%x3) x=x+1; else y=y/x; A) 1次 B) 2次 C) 3次 D) 4次8、下列说法中,不正确的是( D )A、一个java源程序文件中,只能有一个public类。B、一个java源程序文件中,只能有一个package语句。C、一个java源程序文件中,可以有多个import语句。D、一个java源程序文件中,只能有一个类中可以有main方法。9、阅读下列代码段,选出该代码段的正确的文件名( D )。 class A void methodl() Systemoutprintln(”methodl in class A”): public class B void method2() System.out.println(”method2 in class B”): public static void main(String args) System.out.println(”main()in class B”): A、A .java B、A.class C、B.class D、B.java10、编译下面源程序会得到哪些文件?( C ) class A1 class A2 Public class B Public static void main(String args )A、只有B.class文件 B、只有A1.Class和A2.class文件 C、有A1.class、A2.Class和B.class文件 D、编泽不成功11、关于方法main()的说法哪个正确?(C)A方法main()只能放在公共类中Bmain()的头定义可以根据情况任意更改C一个类中可以没有main()方法D所有对象的创建都必须放在main()方法中12、下列关于类、包和源文件的描述中,不正确的一项是( D )。 A、一个包可以包含多个类 B、一个源文件中,可能有一个公共类C、属于同一个包的类在默认情况下可以相互访问 D、系统不会为源文件创建默认的包13、下述哪一组方法,是一个类中方法重载的正确写法? ( A )A、int addValue( int a, int b )return a+b; float addValue ( float a, float b) return a+b;B、int addValue (int a, int b )value=a+b; float addValue ( int a, int b) return (float)(a+b);C、int addValue( int a, int b )return a+1; int addValue ( int a, int b) return a+b;D、int addValue( int a, int b ) return a+b;int addValue ( int x, int y ) return x+y;14、关于方法的重载,下列说法哪一个是正确的?( A )A、方法的重载是指一个类中多个方法使用相同的名字,但参数不同。B、方法的重载是指一个类中多个方法使用相同的名字,且参数相同。C、方法的重载是指子类和父类中两个方法使用相同的名字,但参数不同。D、方法的重载是指子类和父类中两个方法使用相同的名字,且参数相同。15、下列关于类、包和源文件的说法中,错误的一项是( D )。 A、一个文件可以属于一个包 B、一个包可包含多个文件 C、一个类可以属于一个包 D、一个包只能含有一个类16、下列关于作用域的说法中,正确的一个是( B)。A、不同方法中声明的不同变量,可以互相访问B、在不同方法中可以声明相同数据类型的同名局部变量C、在同一个类中可以声明相同数据类型的同名类变量 D、在同一个程序块中可以声明相同数据类型的同名变量17、下列描述中不正确的一项是( B )。A、import语句告诉Java用户需要哪个包(package)中的类B、所有的类必须实例化,才能调用它的数据成员和方法C、package语句用于将源文件存入所指定的包中D、System类不可能实例化,它的所有方法都是通过类变量来调用的18、为了区分重载多态中同名的不同方法,要求( A )。A、形式参数个数或者类型不同 B、返回值类型不同C、调用时用类名或对象名做前缀 D、形式参数名称不同19、下列说法中,正确的一个是( A )。A、类成员变量在使用之前可以不初始化 B、局部变量在使用之前可以不初始化C、参数变量在使用之前必须初始化 D、所有的变量在使用之前必须初始化20、下面哪一项的方法调用能填入程序中的横线处?( C )class Ex7 static void method1() System.out.println(in Ex7);class Ex8 void method2() System.out.println(in Ex8);public class Ex9 public static void main(String args) Ex9 e1 = new Ex9();e1.method3();public void method3() Ex7 e2 = new Ex7();Ex8 e3 = new Ex8(); A、 method1( ); B、Ex7.method1( ); C、Ex7.method1( ); D、e2Method1( ); method2( ): Ex8.method2( ); e3.method2( ); Ex8.method2( );21、若编译和运行下列代码,出现的结果将是 ( C )class MyClass int i = 0;public int myMethod(int x) return i+x; public static void main(String args) System.out.println(myMethod(10); A、0 B、10 C、编译出错 D、 以上答案都不对22、为AB类的一个无形式参数无返回值的方法method书写方法头,使得用类名AB作为前缀就可以调用它,该方法头的形式为( A )A) static void method( ) B) public void method( ) C) final void method( ) D) abstract void method( )23、下面程序中类ClassDemo中定义了一个静态变量sum,分析程序段的输出结果。( C ) class ClassDemo public static int sum=1; public ClassDemo() sum=sum+5; class ClassDemoTest public static void main(String args) ClassDemo demo1=new ClassDemo(); ClassDemo demo2=new ClassDemo(); System.out.println(demo1.sum);A) 0B) 6C) 11 D) 224、给出如下的程序,A-E选项中与构造方法ConstOver重载的两个构造方法是AC 。public class ConstOver public ConstOver (int x, int y, int z) A.ConstOver ( ) B.Protected int ConstOver ( ) C.Private ConstOver (int z, int y, byte x) D.public Object ConstOver (int x, int y, int z) E.public void ConstOver (byte x, byte y, byte z) 25、对象使用时,下面描述错误的是( B ) (A)通过“.”运算符调用成员变量和方法 (B)通过成员变量的访问权限设定限制自身对这些变量方法的调用 (C)将一个对象申明为类的成员时,必须在使用前为其分配内存 (D)在方法中使用对象作为参数时,传递的是对象的地址 26、给出如下代码:class Testprivate int m;public static void fun() / some code.如何使成员变量m 被函数fun()直接访问 ( C )(A)将private int m 改为protected int m(B)将private int m 改为 public int m(C)将private int m 改为 static int m(D)将private int m 改为 int m27、MAX_LENGTH是int型public成员变量, 变量值保持为常量100,用简短语句定义这个变量。( C )(A) public int MAX_LENGTH=100; (B) final int MAX_LENGTH=100; (C) final public int MAX_LENGTH=100; (D) public final int MAX_LENGTH=100.28、构造方法何时被调用( B ) (A)类定义时(B)创建对象时 (C)调用对象方法时(D)使用对象的变量时29、指出下列程序运行的结果 (B )public class Example String str=new String(good); charch=a,b,c; public static void main(String args) Example ex=new Example(); ex.change(ex.str,ex.ch); System.out.print(ex.str+ and ); System.out.print(ex.ch); public void change(String str,char ch) str=test ok; ch0=g; (A) good and abc(B) good and gbc (C)test ok and abc(D) test ok and gbc 30、给出下面代码段 1) public class Test 2) int m, n; 3) public Test() 4) public Test(int a) m=a; 5) public static void main(String arg) 6) Test t1,t2; 7) int j,k; 8) j=0; k=0; 9) t1=new Test(); 10)t2=new Test(j,k); 11) 12) 哪行将引起一个编译时错误?( D ) (A) line 3(B) line 5 (C) line 6(D) line 10 31、函数重载是指 (A ) (A)两个或两个以上的函数取相同的函数名,但形参的个数或类型不同 (B)两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同 (C)两个以上的函数名字不同,但形参的个数或类型相同 (D)两个以上的函数取相同的函数名,并且函数的返回类型相同 32、对于下列代码: public class Parent public int addValue( int a, int b) int s; s = a+b; return s; class Child extends Parent 下述哪些方法可以加入类Child ( D )(A) int addValue( int a, int b )/ do something. (B) public void addValue (int a, int b )/ do something. (C) public int addValue( int a )/ do something. (D) public int addValue( int a, int b )throws MyException /do something. 33、对于下列代码: 1) class Person 2) public void printValue(int i, int j) /. 3) public void printValue(int i)/. 4) 5) public class Teacher extends Person 6) public void printValue() /. 7) public void printValue(int i) /. 8) public static void main(String args) 9) Person t = new Teacher(); 10) t.printValue(10); 11) 第10行语句将调用哪行语句?( D )(A) line 2 (B) line 3 (C) line 6 (D) line 734、如果在一个类中定义了如下两个方法,则选项中正确的说法是( A )void out()System.out.println();void out(int x)System.out.println(x);A、这种定义是正确的,是方法的重载。B、这种定义是正确的,是方法的改写。C、此种定义是错误的,一个类中不能定义两个名字相同的方法。D、此种定义是错误的,第二个方法应该和第一个方法的参数相同。35、下面哪一项是Java实现动态多态性的具体手段( B )A)重载; B)覆盖(重写)C)接口D)抽象类36、下列说法哪个是正确的? ( C )A、子类不能定义和父类同名同参数的方法B、子类只能继承父类的方法,而不能重载C、重载就是一个类中有多个同名但有不同形参的方法D、子类只能覆盖父类的方法,而不能重载37、下列哪个类声明是正确的? ( D )A)abstract final class HI B)abstract private move() C)protected private number; D)public abstract class Car 38、下面的是关于类及其修饰符的一些描述,不正确的是( C )。A、abstract类只能用来派生子类,不能用来创建abstract类的对象B、abstract不能与final同时修饰一个类C、final类不但可以用来派生子类,也可以用来创建final类的对象D、abstract方法必须在abstract类中声明,但abstract类定义中可以没有abstract方法39、下列输出的结果是( A )。 class AA void Show( ) System.out.println(“类AA”); class BB extends AA void Show( ) Systemoutprintln(“类BB”); public class ex7 public static void main(String args ) AA a=new AA( ); BB b=new BB( ); a.Show( ); b.Show( ); A、类AA B、类BB C、类BB D、类AA 类BB 类AA 类BB 类AA40、下列关于接口的说法不正确的是 ( C )A、接口所有的方法都是抽象的B、接口所有的方法一定都是public属性的C、用于定义接口的关键字是implementsD、接口是JAVA中的特殊类,包含静态变量和抽象方法41、下列说法中,哪一个是正确的? ( C )A、抽象类中定义的方法一定是抽象的。B、抽象类中一定存在抽象的方法。C、抽象类中可以没有抽象方法。D、抽象类的子类一定要实现抽象类中的抽象方法。42、假定有程序段: ( D )class SupperClass public int addValue( int a, int b) return a+b; class SubClass extends SuperClass int value; /此处插入代码下述哪个方法可以插入到类SubClass中而不会出现编译错误?A、int addValue( int a, int b )return a+b+1; B、public long addValue (int a, int b )value=a+b+1; C、protected int addValue(int a, int b )return a+b+1; D、public int addValue( int a, int b ) return a+b+1;43、若编译和运行下列代码,其结果将是 ( C )class Circle double radius=1;public Circle(double r) radius = r;public double area( )return 3.14*radius*radius;public class MyTest public static void main(String args) Circle c1=new Circle(); System.out.println(c1.area(); A、3.14 B、0 C、编译出错 D、 以上答案都不对44、下列说法中不正确的是 ( A )A、如果一个方法中定义的变量名与该方法所在类的成员变量同名,则在该方法中无法访问同名的类成员变量。 B、在java接口中定义的方法一定是抽象方法。 C、java接口中不能定义变量。 D、java接口没有构造方法。45、有程序如下class SuperClassprivate int i=10;void printI()System.out.println (i);class SubClass extends SuperClassint i=20;public void printA()super.printI();class Testpublic static void main(String args) SubClass c1=new SubClass();c1.printA();编译并运行程序,其结果将是 ( A )A、10B、20C、编译出错D、046、用abstract定义的类( D )A)可以被实例化 B)不能派生子类C)不能被继承 D)只能被继承47、如果任何包中的子类都能访问父类中的成员,那么应使用哪个限定词( C ) (A)public(B)private (C)protected (D)default 48、下面的代码合法的是: ( B )A) public abstract method();B) public abstract void method();C) public abstract void method() ;D) public void method() implements abstract;49、以下是接口I的定义:interface Ivoid setValue(int val);int getValue();以下哪个代码能通过编译?( C )A) class A extends I int value; void setValue(int val)value=val; int getValue()return value;B) class B implements I int value; void setValue(int val)value=val;C) interface C extends I void increment( );D) interface D implements I void increment();50、下列关于接口和抽象类的说法不正确的是?( A ) A) 接口也有构造方法B) 实现接口时,需对接口中的所有方法都要实现C) 抽象类也有构造方法 D) 抽象类可以派生出子类51、对于下列代码: public class SupperClass public int sum( int a, int b) return a+b; class SubClass extends SupperClass 下述哪个方法可以加入类SubClass? ( D ) A) int sum ( int a, int b ) return a+b; B) public void sum (int a, int b ) return ; C) public float sum ( int a, int b) return a+b; D) public int sum ( int a, int b ) return a+b;52、对于下列代码: public class Parent public int addValue( int a, int b) int s; s = a+b; return s; class Child extends Parent 下述哪些方法可以加入类Child? ( D ) A) int addValue( int a, int b )/ do something. B) public void addValue (int a, int b )/ do something. C) public int addValue( int a )/ do something. D) public int addValue( int a, int b ) /do something.53、下列说法中,错误的一项是( C )。A、内部类是被定义于另一个类中的类B、使用内部类实现监听器,在编程时比较容易实现C、内部类对象可以访问外部类的成员方法和变量,包括私有成员D、由于内部类定义于另一个类,因此不适用于AWT的事件处理机制54、下列说法哪个是不正确的? ( B )A、一个组件可以注册多个事件监听器 B、一个监听器只能监听一个组件 C、一个组件可以引发多种事件 D、一个监听器可以监听处理多种事件55、下面说法错误的是( D )A) 单击JCheckBox (复选框)产生ItemEvent事件,并由ItemListener处理。B) 处理JButton和JTextField事件监听器接口都是ActionListener。C) 一个面板(JPanel)可以加入到另一个面板(JPanel)中。D) 在BorderLayout中,添加到NORTH区的两个按钮将并排显示。56、下列哪一个方法是自动调整窗口的大小 ( C )A、setSize()B、setDefaultClose()C、pack()D、setVisible()三、程序阅读题1、阅读下面的程序:6class test public static void main(String args) int i = 1; int All = 0; for (;i=10;i+) if (i%6=0) break; if(i%2=0) i=i+2;continue; All = All + i; System.out.println(All); 上面的程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,运行结果是什么?2、 写出下列程序代码的运行结果:HelloYavapublic class ExampleString str=new String(Hello);char ch=J,a,v, a;public static void main(String args)Example ex=new Example();ex.change(ex.str,ex.ch);System.out.println(ex.str); System.out.println(new String(ex.ch);public void change(String str,char ch)str=World;ch0= Y;3、 仔细阅读下面的程序代码,编译和运行后,请写出该程序的输出结果。Game constructorBoardGame constructorChess constructorclass Game Game(int i) System.out.println(Game constructor);class BoardGame extends Game BoardGame(int i) super(i);System.out.println(BoardGame constructor);public class Chess extends BoardGame Chess() super(11);System.out.println(Chess constructor);public static void main(String args) Chess x = new Chess();4、仔细阅读下面的程序代码,编译和运行后,请写出该程序的输出结果。Wind playingimport java.util.*;class Instrument protected void play() System.out.println(Instrument playing); static void tune(Instrument i) i.play();/ Wind object are instruments/ because then have the same interface:class Wind extends Instrument protected void play() System.out.println(Wind playing); public static void main(String args) Wind flute = new Wind();Instrument.tune(flute);5、 仔细阅读下面的程序代码,编译和运行后,请写出该程序的输出结果。This Product is made by My CorpIt cost $5To order from My Corp call 7963628.Each item costs $5interface Product static final String MAKER = My Corp;static final String PHONE = 7963628;public int getPrice(int id);class Shoe implements Product public int getPrice(int id) if ( id = 1 )return 5;elsereturn 10;public String getMaker() return MAKER;public class Store static Shoe hightop;public static void init() hightop = new Shoe();public static void main(String args) init();getInfo(hightop);orderInfo(hightop);public static void getInfo(Shoe item) System.out.println(This Product is made by + item.MAKER);System.out.println(It cost $ + item.getPrice(1);public static void orderInfo(Product item) System.out.println(To order from + item.MAKER + call + item.PHONE + .);System.out.println(Each item costs $ + item.getPrice(1);6、 仔细阅读下面的程序代码,编译和运行后,请写出该程序的输出结果。1919Fatherclass Father String name=Father; int age=45; int getAge() return age; String getName() return name; void setAge(int a) age = a; class Child extends Father String name=Child; int age=18; int getAge() return age+1; class Test2 public static void main(String args) Father p=new Child(); System.out.println(p.getAge(); p.setAge(30); System.out.println(p.getAge(); System.out.println(p.getName(); 7、阅读下面的程序:public class test public static void main(String args) Bird.Fly(3); class Bird int Type = 2; private static void Fly(int an_Type) Type = an_Type; System.out.println(Flying.+Type); 错,9)Type改成静态的才行,不然下面的静态方法里不能调用Type上面的程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,运行结果是什么?8、阅读下面程序:class Person public Person() System.out.println(hi!); public Person(String s) this(); System.out.println(I am +s); public class Who extends Person public Who() this(I am Tony); public Who(String s) super(s); System.out.println(How do you do?); public static void main(String args) Who w = new Who(Jack);/如果换成 Who w = new Who();结果是? hi!I am JackHow do you do?改后hi!I am How do you do?9、阅读下面的程序:class ValHold public int i = 10;public class ObParm public static void main(String argv) ObParm o = new ObParm(); o.amethod(); public void amethod() int i = 99;
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!