Java面向对象试题集

更新时间:2024-03-05 18:20:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1、 面向对象编程的三大特性是( )

A) 封装,继承,多态 C) 继承,抽象,多态

B) 封装,重用,继承 D) 封装,灵活,抽象

2、 下面关于构造方法的说法正确的是( )(多选)

A. 构造方法不能被继承 B. 构造方法不能被重写 C. 构造方法不能被重载

D. 构造方法不能声明为private

3、 下面关于类的说法,不正确的是( )

A) 类是同种对象的集合和抽象 C) 对象是类的实例

B) 类属于Java语言中的引用数据类型 D) 类就是对象

4、 封装性可以对类的成员进行访问级别控制,其中限制最严格的是( ) A) public B) private C) default D) protected

5、 以下哪种类成员修饰符可以在不同包的子类中访问( ) A) static B) private C) default D) protected

6、 Java语言中哪个包是被自动导入的( )

A) java.util B) java.lang C) java.default D) java.io 7、 有一个类MyClass,它的构造方法声明正确的是( ) A) void MyClass(int x) {...} C) public MyClass(int x){…}

8、 对下列程序说法正确的是( )

B) Myclass(int x){...}

D) public void MyClass(int x){…}

public class Test7{

public static void main(String args[]){ String s1 = \ String s2 = \ s2 = s2 + \

System.out.println(s1 == s2); } }

A) true B) false C) 编译错误 D) Hello world

9、 在Java中,如果父类中的某些方法不包含任何逻辑,并且需要由子类重写,应该使用

( )关键字来声明父类的这些方法

A) final

B) abstract

C) static D) void

10、 下面关于接口说法不正确的是( )

A) 接口的所有方法都是抽象的 B) 接口所有的方法一定都是public的 C) 用于定义接口的关键字是implements D) 接口是一组行为的集合

11、 为了区分类中重载的同名不同方法,要求( )

A) 参数的类型或个数不同 B) 使用不同的参数名 C) 修改访问权限 D) 方法返回值数据类型不同

12、 如果子类覆盖了父类的一个public方法,则此方法在子类中可以使用什么修饰符(A) public B) public和protected C) private D) 任何修饰符都可以,根据需要选用

13、 不能用在类上的修饰符是( )

A) final B) public C) abstract D) protected

14、 下列程序段运行后,标准输出是( )

public class TestEx{

public static void main(String args[]){ method(); }

static void method(){ try{

System.out.println(\ }finally{

System.exit(0);//程序中止

System.out.println(\ } } }

A) test B) finally C) test fianlly

D) 无法通过编译

15、 运行下面的程序时会产生什么异常( )

public class TestEx{

static public void main(String args[]){ int x = 0; int y = 2/x;

int z[] = {1, 2, 3, 4};

int p = z[4];//越界,调用 } }

A) ArrayIndexOutOfBoundsException B) NumberFormatException C) ArithmeticException

D) ArithmeticException和ArrayIndexOutOfBoundsException

16、 关于异常,下列描述正确的是( )

A) try代码段和其后跟随的catch代码段之间可以有间隔代码 B) 每个catch代码段声明其能处理的一种特定类型的异常 C) finally代码段在异常出现的情况下不被执行 D) finally代码段中不可以有try和catch代码段

17、 要将字符串\年8月8日20:00:00\解析成Date实例,SimpleDateFormat的格式

模板应该是( )

A) yyyy-MM-dd hh:mm:ss

C) yyyy年M月d日hh时mm分ss秒

B) yyyy-mm-dd HH:MM:SS D) yyyy年M月d日hh:mm:ss

18、 关于集合框架,说法不正确的是( )

A) 与数组不同,集合框架是容量可变的容器

B) 集合框架不能保存基本类型,但是可以将它们转换为包装类后保存 C) 集合框架中的List, Set, Map接口都是Collection接口的子接口 D) 集合类除了提供可变容量的存储外,还提供了对数据的算法

19、 对保存在List中的数据进行查找,方法不正确的是( )

A) 对元素进行遍历,依次比较

B) 对内容有序的List可以进行二分法查找 C) 调用indexOf方法查找

D) 无论是否有序都可以用二分法查找,比线性查找快很多

20、 如果要按照特定顺序保存元素,应当使用的容器是( )

A) HashMap B) ArrayList C) JFrame D) TreeSet

21、 有一个名为myList的ArrayList实例,取得其最后一个元素的方法是( ) A) myList.get(0); B) myList.get(mylist.last()); C) myList.get(myList.size()); D) myList.get(myList.size()-1);

22、 有一个名为myList的ArrayList实例,调用mylist.get(0)的结果是( )

A) 正确取得其第一个元素 B) 返回数字0 C) 可能产生异常 D) 以上都不正确

23、 当试图编译并运行下面程序时会出现什么结果( )

class A{

public int getNumber(int a){ return a+1; } }

class B extends A{

public int getNumber(int a, char c){ return a+2; }

public static void main(String[] args){ B b=new B();

System.out.println(b.getNumber(0)); } }

A) 编译错误

B) 运行错误

C) 1 D) 2

24、 当编译并运行下面程序时会出现什么结果( )

public class MyAr{

public static void main(String argv[]){ int[] i = new int[5];

System.out.println(i[5]); } }

A) 编译出错 B) 运行出错 C) 输出0

D) 输出“null”

25、 要将内存中的一首MP3音乐的数据保存到磁盘上,应当使用什么流(A) FileWriter

B) BufferedWriter

C) FileOutputStream

D) ObjectOutputStream

26、 将对象序列化,要实现哪个接口( )

A) Cloneable B) Runnable C) Serializable D) Comparator

27、 有以下Java程序代码,运行结果是( )

public class Test{

public static String output=\ public static void foo(int i){ try {

if(i==1){

throw new Exception(); }

output +=\

} catch(Exception e){ output+=\ return; } finally{

output+=\}

output+=\}

public static void main(String args[]){ foo(0); foo(1);

System.out.println(output); } }

A) 1342 B) 123 C) 134234 D) 13423

28、 在JAVA中,( )接口位于集合框架的顶层

A) Collection B) Collections C) Map D) Set

29、 已定义两个接口B和C,要定义一个类同时实现这两个接口,正确的是( )

A) interface A extends B,C C) class A implements B,C

B) interface A implements B,C

D) class A implements B,implements C

30、 下面关于继承的叙述正确的是( )(多选)

A. 在JAVA里只允许单一继承

B. 在JAVA里一个类只能实现一个接口 C. JAVA可以多继承

D. JAVA的单一继承避免了菱形继承的危险

31、 下面哪些接口直接继承自Collection接口( )(多选) A.List B.Map

C.Set D.Iterator

32、 研究下面的JAVA代码,输出结果将是( )

public class TestException {

public static void main(String[] args) { int a[] = {0,1,2,3,4}; int sum=0; try{

for(int i=0;i<6;i++)

{

sum+=a[i]; }

System.out.println(\

}catch(java.lang.ArrayIndexOutOfBoundsException e){ System.out.println(\数组下标越界\ }finally{

System.out.println(\程序结束\ } } }

A. 10 数组下标越界 程序结束 B. 10 程序结束

C. 数组下标越界 程序结束 D. 程序结束

33、 研究下面的JAVA代码,输出结果将是( )

public class TestException {

public static void main(String[] args) { try{

System.out.println(\ System.exit(0); }finally{

System.out.println(\ } } }

A. hello,jr

C. hello,jr后是88

B. 88

D. 不能编译

34、 研究下面的JAVA代码,输出结果将是( )

public class Test { String s = \

public void test(String s) {

System.out.println(\

System.out.println(\ this.s=s;

System.out.println(\

System.out.println(\ }

public static void main(String[] args) {

new Test().test(\ } }

A. s:cba this.s:nba s:cba this.s:nba B. s:nba this.s:nba s:nba this.s:nba C. s:cba this.s:nba s:cba this.s:cba D. s:nba this.s:cba s:cba this.s:cba

35、 给定JAVA代码如下,关于super的用法,以下描述正确的是( )class C extends B {

public C() {

super(); } }

A、用来调用类B中定义的super()方法 B、用来调用类C中定义的super()方法 C、用来调用类B中的无参构造方法

D、用来调用类B中第一个出现的构造方法

4. 对于任意一个类,用户所能定义的构造方法的个数至多为 A.0个 B.1个 C.2个 D.任意个 6.关于实例方法和类方法,以下描述正确的是: (D) A. 实例方法只能访问实例变量

B. 类方法既可以访问类变量,也可以访问实例变量 C. 类方法只能通过类名来调用 D. 实例方法只能通过对象来调用

7.接口是Java面向对象的实现机制之一,以下说法正确的是:A. Java支持多重继承,一个类可以实现多个接口; B. Java只支持单重继承,一个类可以实现多个接口; C. Java只支持单重继承,一个类只可以实现一个接口; D. Java支持多重继承,但一个类只可以实现一个接口。 8. 关于接口的定义和实现,以下描述正确的是: (A) A. 接口定义中的方法都只有定义没有实现

D)

。( (B) B. 接口定义中的变量都必须写明final和static

C. 如果一个接口由多个类来实现,则这些类在实现该接口中的方法时应采用统一的代码

D. 如果一个类实现一个接口,则必须实现该接口中的所有方法,但方法未必声明为public.

9. 在 Java的异常处理语句try-catch-final 中,以下描述正确的是: (B)

A. try后面是可能产生异常的代码,catch后面是捕获到某种异常对象时进行处 理的代码,final后面是没有捕获到异常时要执行的代码

B. try后面是可能产生异常的代码,catch后面是捕获到某种异常对象时进行处理的代码,final后面是无论是否捕获到异常都必须执行的代码 C. catch 语句和final语句都可以缺省

D. catch 语句用来处理程序运行时的非致命性错误,而final语句用来处理程序运行时的致命性错误.

10.如果一个程序段中有多个catch,则程序会按如下哪种情况执行?C 找到适合的例外类型后继续执行后面的catch. 找到每个符合条件的catch都执行一次。 找到适合的例外类型后就不再执行后面的catch。 对每个catch都执行一次。

15下列关于继承的说法哪个是正确的?B A.子类只继承父类public方法和属性; B.子类继承父类的非私有属性和方法;

C.子类只继承父类的方法,而不继承父类的属性;’ D.子类将继承父类的所有的属性和方法。 16下面哪个是JAVA的保留字? B run import implement string

17.下列关于抽象类的说法四个是正确的?C

A.某个抽象类的父类是抽象类,则达个子类必须里载父类的所有抽象方法; B.接口和抽象类是同一回事; C.绝对不能用抽象类去创建对象; D.抽象类中不可以有非抽象方法。

2. 请编写一个接口,内容包含加减乘除四个简单四则运算抽象方法,接着通过Example 类加以实现。

3.Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

答:方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被\屏蔽\了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型

4. abstract class和interface的区别

答:声明方法的存在而不去实现它的类叫虚拟类(abstract class).它用于创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况.不能创建abstract class的实例.但是可以声明一个abstract class变量,将其指向其具体子类的一个实例.不能有抽象构造函数或抽象静态方法.Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法. 接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口.接口是一个更纯的抽象类.

5.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)

答:接口可以继承接口。抽象类可以实现(implements)接口,抽象类可继承实体类,但前提是实体类必须有明确的构造函数

本文来源:https://www.bwwdw.com/article/uiwa.html

Top