《Java复习题-.pdf》由会员分享,可在线阅读,更多相关《Java复习题-.pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java复习题一、判断题1Java程序里,创建新的类对象用关键字naw。2有的类定义时可以不定义构造函数,所以构造函数不是必需的。3类及其属性、方法可以同时有一个以上的修饰符来修饰。4抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。5Final 类中的属性和方法都必须被final 修饰符修饰。6最终类不能派生子类,最终方法不能被覆盖。7子类要调用父类的方法,必须使用super 关键字。8一个 Java类可以有多个父类。9如果 p是父类 Parent的对象,而c 是子类 Child 的对象,则语句c=p 是正确的。10一个类如果实现了某个接口,那么它必须重写该接口中的所有方法。11接
2、口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法。12 Java源程序是由类定义组成的,每个程序可以定义若干个类,但只有一个类是主类。13子类的方法的数目一定大于等于父类的方法的数目。14类在实现接口的方法时,必须显示地使用public 修饰符。15一个类只能有一个父类,但一个接口可以有一个以上的父接口。16 java 异常处理中可以使用多个catch 子句,此时应将高级别异常类的catch 子句放在前面。17即使一个类中未显式定义构造函数,也会有一个缺省的构造函数,缺省的构造函数是无参的,函数体为空。18在 Java的方法中定义一个常量要用const 关键字。19 J
3、ava的类不允许多重继承,但接口支持多重继承。20在异常处理中总是将可能产生异常的语句放在try 块中,用catch 子句去处理异常,而且一个 try 块之后只能对应一个catch 语句。21 构造函数用于创建类的实例对象,构造函数名应与类名相同,在类中必须定义构造函数,且只能定义一个构造函数。22构造函数用于创建类的实例对象,构造函数名应与类名相同,返回类型为void。23可以用new 来创建一个类的实例,即对象。24类的 public 类型的成员变量不可以被继承。25子类可以继承父类所有的成员变量及成员函数。26抽象类不能实例化。27接口和类一样也可以有继承关系,而且都只能支持单继承。二、
4、填空题1、在定义一个方法时,一般都要指明该方法的返回值类型,如果它不返回任何值,则必须将其声明成 _void_。2、写出完整的main 方法的声明 _public static void main(System.in)_。3、要设计一个具有从键盘录入的程序,必须先引入包_import java.unil.Scanner_。4、当一个方法不需要返回数据时,返回类型必须是_void_。5、定义 abstract方法,只允许 _定义方法头 _,不允许实现。6、被关键字 _final_ _修饰的方法是不能被当前类的子类重新定义的方法。7、Java中类成员的限定词有以下几种:private,_publi
5、c_,protate_,默认友好。8、用 _static_修饰的方法,称为静态方法。它们不是对象的方法,而是整个类的方法。9、在 Java 中有一种叫作_构造方法 _的特殊方法,我们在程序中用它来对类的对象成员进行初始化。10、面向对象技术具有_封装 _、继承 _、多态性等特性。11、Java中所有类都是类_object_的子类。12、能够运行的Java 应用程序必须包含一个_main_方法。13、在 Java的一个异常处理中,可以具有多个语句块的语句是_catch_。14、Java语言通过接口支持_多重 _继承,使类继承具有更灵活的扩展性。15、实例化对象:就是创建一个对象。用_new_运算
6、符来实现对象的实例化。16、在 Java程序中定义的类有两种成员:常量、变量。17、Java源程序是由类定义组成的,每个程序中可以定义若干个类,但是只有一个类是主类。在 Java 中,这个主类是指包含main 方法的类。18、创建一个名为MyPackage 的包的语句是package Mypackage;,该语句应该放在程序的位置为:第一行。19、抽象方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。被 final 修饰的方法是不能被当前类的子类重新定义的方法。20、在 Java 中有两种多态,一种是使用方法的重载实现多态,另一种是使用方法的父类类型作为形式参数
7、类型实现多态。21、在 Java程序中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多重继承关系。三、简答题1、在 java 中如果声明一个类为final,表示什么意思?答:不能被继承2、如果有一个类A、和一个接口B,想同时使用这两个类的功能,那么你会如何编写这个C 类呢?答:public class C extends A implements B3、什么是封装?4、构造方法和一般的方法有何不同之处?5、方法重载和方法重写的区别。6、abstract class(抽象类)和interface(接口)有什么区别?7、什么是访问控制符?有那些常用访问控制符?那些可以用来修饰类?那些用来
8、修饰方法?简述不同的访问控制符的作用?8、什么是类?什么是对象?9、什么是多态?使用多态有什么优点?10、什么是继承?什么是单重继承?什么是多重继承?Java语言中如何实现多重继承?11、什么是接口?为什么要定义接口?接口与类有和异同?12、简述 Java 中的异常处理机制?有哪几个关键字来实现异常处理?四、选择题。1 Java中的主类需包含main 方法,main 方法的返回类型是什么?(D)A、int B、float C、double D、void 2 设有下面两个类的定义:class Person class Student extends Person int id;/身份证号int
9、score;/入学总分String name;/姓名int getScore()return score;则类 Person和类 Student 的关系是(B)。A、包含关系B、继承关系C、关联关系D、上述类定义有语法错误3为 AB 类的一个无形式参数无返回值的方法method 书写方法头,使得使用类名AB 作为前缀就可以调用它,该方法头的形式为(A)。A、static void method()B、public void method()C、final void method()D、abstract void method()4在使用interface 声明一个接口时,只可以使用(D)修饰符
10、修饰该接口。A、private B、protected C、private protected D、public 5以下关于构造函数的描述错误的是(A)。A、构造函数的返回类型只能是void 型。B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。C、构造函数的主要作用是完成对类的对象的初始化工作。D、一般在创建新对象时,系统会自动调用构造函数。6在 Java 中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为(C)。A、隐藏B、覆盖C、重载D、Java 不支持此特性7以下哪个接口的定义是正确的?(D)inte
11、rface B void print();abstract interface B void print();abstract interface B extends A1,A2/A1、A2 为已定义的接口 abstract void print();interface B void print();8 A 派生出子类B,B 派生出子类C,并且在Java源代码中有如下声明:A a0=new A();A a1=new B();A a2=new C();问以下哪个说法是正确的?(D)A、只有第1 行能通过编译B、第 1、2 行能通过编译,但第3 行编译出错C、第 1、2、3 行能通过编译,但第2、
12、3 行运行时出错D、第 1 行、第 2 行和第 3 行的声明都是正确的9假设 A 类有如下定义,设 a 是 A 类的一个实例,下列语句调用哪个是错误的?(C)class A int i;static String s;void method1()static void method2()A、System.out.println(a.i)B、a.method1()C、A.method1()D、A.method2()10以下关于继承的叙述正确的是(A)。A、在 Java 中类只允许单一继承B、在 Java 中一个类只能实现一个接口C、在 Java 中一个类不能同时继承一个类和实现一个接口D、在 J
13、ava 中接口只允许单一继承11现有两个类A、B,以下描述中表示B 继承自 A 的是(D)。A、class A extends B B、class B implements A C、class A implements B D、class B extends A 12现有类A 和接口,以下描述中表示类实现接口的语句是(A)。A、class implements B B、class B implements C、class extends B D、class B extends 13.下列选项中,定义最终类的关键字是(D)。A、interface B、implements C、abstract
14、D、final 14.下列选项中,表示数据或方法只能被本类访问的修饰符是(C)A、public B、protected C、private D、final 15.下列选项中,定义抽象类的关键字是(A)。A、interface B、implements C、abstract D、class 16.下列选项中,哪个是java 语言所有类的父类(C)A、String B、Exception C、Object D、Math 17.下列选项中,定义接口MyInterface 的语句正确的是:(A)A、interface MyInterface B、implements MyInterface C、cla
15、ss MyInterface D、implements interface My 18.如果任何包中的子类都能访问超类中的成员,那么应使用哪个限定词?(A)A、public B、private C、protected D、transient19在编写异常处理的Java 程序中,每个 catch语句块都应该与(C )语句块对应,使得用该语句块来启动Java 的异常处理机制。A、if else B、switch C、try D、throw 20下列描述正确的是(C ):A、多态性就是指子类的某个方法被其父类重写时,可以各自产生自己的功能行为。B、多态性就是指子类的某个方法被其父类重写时,不能各自产
16、生自己的功能行为。C、多态性就是指父类的某个方法被其子类重写时,可以各自产生自己的功能行为。D、以上都不对21 关于被私有保护访问控制符private protected 修饰的成员变量,以下说法正确的是(C)22 A、可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类B、可以被两种类访问和引用:该类本身、该类的所有子类C、只能被该类自身所访问和修改D、只能被同一个包中的类访问23在编写Java 程序时,若需要使用到Scanner 语句,必须在程序的开头写上(C)语句。A、import java.awt.*;B、import java.applet.Applet;C
17、、import java.util.*;D、import java.awt.Graphics;24若需要定义一个类方法,应使用哪种修饰符?(A)A、static B、package C、private D、public 25若在某一个类定义中定义有如下的方法:abstract void performDial();该方法属于(D)。A、本地方法B、最终方法C、静态方法D、抽象方法26设有下面的两个类定义:class AA void Show()System.out.println(“我喜欢 Java!”);class BB extends AA void Show()System.out.pr
18、intln(“我喜欢 C+!”);则顺序执行如下语句后输出结果为:(A)AA a=new AA();BB b=new BB();a.Show();b.Show();A、我喜欢Java!B、我喜欢C+!我喜欢 C+!我喜欢 Java!C、我喜欢Java!D、我喜欢C+!我喜欢 Java!我喜欢 C+!27 设有下面的一个类定义:class AA static void Show()System.out.println(“我喜欢Java!”);class BB void Show()System.out.println(“我喜欢C+!”);若已经使用AA 类创建对象a和 BB 类创建对象b,则下面
19、哪一个方法调用是正确的:(C)A、AAa.Show()B、AA.Show();b.Show()BB.Show();C、AA.Show();D、a.Show();b.Show();BB.Show();28对于构造函数,下列叙述正确的是(A)。A、构造函数也允许重载。B、子类不允许定义自已的构造函数。C、子类不允许调用父类的构造函数。D、在同一个类中定义的重载构造函数可以相互调用。29在编写异常处理的Java程序中,finally 语句块应该与(C)语句块对应A、throws B、catch C、try D、throw 30对于子类的构造函数说明,下列叙述中不正确的是(A)。A、子类无条件地继承父
20、类的无参构造函数。B、子类可以在自己的构造函数中使用super 关键字来调用父类的含参数构造函数,但这个调用语句必须是子类构造函数的第一个可执行语句。C、在创建子类的对象时,将先执行继承自父类的无参构造函数,然后再执行自己的构造函数。D、子类不但可以继承父类的无参构造函数,也可以继承父类的有参构造函数。31构成方法重载的三要素包括(ACD)(选三项)A 方法名称相同B 返回类型不同C 参数列表不同D 在同一个类中32、下列对Java 中的继承描述错误的说法是(C)。A 子类至少有一个父类B 子类可作为另一个子类的父类C 子类除了包含它直接定义的属性外,还包含其父类的私有属性D 子类继承父类的方
21、法访问权限保持不变33、构造方法是否可被重写和重载(D)。A 不能重写,可以重载B 可以重写,不能重载C 不能重写,不能重载D 可以重写,可以重载34、能单独和finally 语句一起使用的块是(A)。A try B catch C throw D throws 35、以下(C)修饰符用于声明一个类变量,且该变量的值在运行期始终不变。A static B final C static final D final static 36、构成方法重写的要素包括(ABCE)。(选四项)A 方法名称相同B 返回类型相同C 参数列表相同D 在同一个类中E 存在子类和父类中F 返回类型不同37、公有成员变量
22、MAX 是 int 型,变量的值保持常数值100。在类 Constants 中,可以使用以下(D)声明语句来定义这个变量。A public int MAX=100;B final int MAX=100;C public static int MAX=100;D public final int MAX=100;38、在子类的构造方法中,使用(B)关键字调用父类的构造方法。A base B super C this D extends 39、关于 Java 的异常和异常处理,下面说法错误的是(CD)。(选两项)A try/catch/finally块里都可以嵌套try/catch/finall
23、y B 一个 try 可以对应多个catch C 如果发生的异常没有被捕捉,异常将被系统忽略D 异常处理时可以只用try 块五、程序题:1、class Chinese static String country=中国;String name;int age;void singOurCountry()System.out.println(啊!,亲爱的+country);public class TestChinese public static void main(String args)System.out.println(Chinese country is +Chinese.country
24、);Chinese ch1=new Chinese();System.out.println(Chinese country is +ch1.country);ch1.singOurCountry();(1)程序的运行结果:Chinese country is 中国Chinese country is 中国啊!,亲爱的中国(2)类 Chinese 中的第 2 行语句:static String country=中国;其中,static对成员变量country的作用是什么?(3)分别解释程序中三处画线部分对country的访问形式有什么不同?2、下列程序的输出结果为:A B C class A
25、A()System.out.println(A);class B extends A B()System.out.println(B);class C extends B C()System.out.println(C);public class test public static void main(String args)C t=new C();3、阅读以下程序,输出结果为1.23。class Q1 public static void main(String args )double d=1.23;Dec dec=new Dec();dec.decrement(d);System.ou
26、t.println(d);classs Dec public void decrement(double decMe)decMe=decMe 0.1;4、阅读以下程序段:class Parent void printMe()System.out.println(“parent”);class Child extends Parent void printMe()System.out.println(“child”);void printAll()super.printMe();this.printMe();printMe();public class Test_this public stat
27、ic void main(String args)Child myC=new Child();myC.printAll();输出结果为:parent child child 5、这个方法的返回值是3 public int count()try return 5/0;catch(Exception e)return 2*3;finally return 3;6、写出能与public void methodA()形成重载的方法Public void method(int a)7、写出子类中能与父类public void methodA(int a)方法形成重写的方法Public void meth
28、oidA(int a)System.out.println(“I m kyq”)8、public void setId(String Id)throws IllegalArgumentException If(Id.lengh=6)/判断 Id 的长度是否为6 This.Id=Id/将参数 Id 的值赋值给成员变量Id else throw new IllegalArgument Exception(“参数长度不为6”)/抛出异常类IllegalArgument 的对象 9、class A String m=”;public A()this.m=“中国”;Public A(String a)T
29、his.m=a;public class B public static void main(String args)A a=new A();A b=new A(“OK”);六、程序改错题void test(int x)System.out.println(x);return x;/无返回值类型,应去掉return x;2、final MAX_NUMBER;MAX_NUMBER+;/用 final修饰的是常量,其值不可以改变3、class IamAbstract final int f;/被 final修饰的是常量double d;abstract void method();/抽象方法必须声明在抽象类中 4、class parent private int mine;class child extends parent int getMine()return mine;/被 private 修饰的成员变量不能被其他类访问 5、class parent private int mine;int getMine()return mine;class child extends parent int mine;int getMine()return super.getMine;/无法解析字段getMine
限制150内