admin 管理员组

文章数量: 887021


2024年2月18日发(作者:switch程序设计流程图)

CoreJavaOOP考试题

一、 选择题(不定项选择)(22*4=88)

1.

类A,B的定义如下:

class A {

private int a = 100;

A() {

("A()");

n(a);

}

}

class B extends A {

private int a = 200;

B() {

("B()");

n(a);

}

}

运行下面的代码:

new B();

输出的结果是:( A )。

A.

A() 100

B() 200

B.

A() 200

B() 200

C.

B() 200

A() 100

D.

B() 200

A() 200

考试时间:90分钟

考试总分:100分

2. 下列说法正确的是( D )

A. 所有类都必须定义构造方法(构造器)

B. 构造方法必须初始化类的所有数据成员

C. 子类定义了构造器后,不再调用父类的构造器

D. 构造方法可以访问类的非静态成员

3. 在Java中,哪个关键字使类不能派生子类?, ( A )

A : final

B : public

C : private

D : native

4. class Base{

static void test(){

}

}

public class Child extends Base{

static void test(){

}

public static void main(String[] args){

}

}

A. () ()

B. () ()

C. () ()

D. () ()

程序运行的结果是( C )

Base base = new Child();

Child child = new Child();

();

();

n(“()”);

n(“()”);

5.下列哪些叙述是正确的( CD )

A. 在一个类中,方法不能与类名相同

B. abstract 可以修饰属性、方法和类

C. 实例方法可直接调用本类的static方法和非static方法

D. static方法不能调用非static方法

6.以下说法正确的是(ABC)

A. 子类不能继承父类的构造方法

B. 子类的构造方法可以访问父类的构造方法

C. 子类不可直接访问父类的私有属性

D. 子类可以重写父类的所有方法

7.分析选项中关于Java中this关键字的说法正确的是( A )

关键字是在对象内部指代自身的引用

关键字可以在类中的任何位置使用

关键字和类关联,而不是和特定的对象关联

D.同一个类的不同对象共用一个this

8 下列关于继承的说法哪个是正确的 ? ( B )

A.子类只继承父类public方法和属性

B.子类继承父类的非私有属性和方法

C.子类只继承父类的方法,而不继承父类的属性

D.子类将继承父类的所有属性和方法

9.在Java中,关于final关键字的说法正确的是( AC )

A. final修饰的变量,一旦赋值就不能被更改

B. final修饰的类只能被一个子类继承

C. final修饰的方法,不能在子类中被覆盖

D. final修饰的方法,不能被子类继承

10. String s=new String(“xyz”)创建了几个对象(C);

A. 0

B. 1

C. 2

D. 3

11.下列语句的序列执行后,k的值是 ( B )

int m=3,n=6,k=0;

While((m++)<(--n))++k;

A.0 B.1 C.2 D.3

12.下列哪一项不是面向对象的典型特征( D )

A. 封装 B.继承

C. 多态 D.抽象

13.(多选)在java中,关于构造方法,下列说法正确的是

A.构造方法的名称必须与类名相同

B.构造方法可以带参数

C.构造方法不可以重载

D.构造方法绝对不能有返回值

14.下面关于变量的说法正确的是( BC )

A. 实例变量可以通过类名直接调用

B. 类变量可以通过类名直接调用

C. Java中的参数传递都是值传递

D. 在不同的作用域不能定义相同的变量

15.下列代码有编译错误的是第( C )行

1) public class Test{

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

3) int[] arr1 = new int[12];

4) char[] arr2 = new char[];

5) int[] arr3 = {};

6) Object[] obj = new Object[4];

7) Object obj1 = new object[9];

8) }

9) }

ABD ) (

A. 5)

B. 5) 7)

C. 4) 7)

D. 4)

16.下列代码的运行结果是( A )

public class Test{

private int num;

private static Test test;

public Test(int num){

}

static{

int num = 16;

test = new Test(num);

++ ;

}

public static void main(String[] args){

}

}

A. 14

B. 15

C. 16

D. 17

17.仔细分析下列代码,请指出错误的行( D )。

public class SomeThing{

private String str;

public int addOne(final int x){

return ++x;

}

}

A.

public class SomeThing

B.

private String str;

test = new Test(13);

n();

= ++ num;

C.

public int addOne(final int x)

D.

return ++x;

18. Java中访问控制符说法错误的是?, ( B C )

A : protected声明的,在同一package中其他类可以访问。

B : friendly声明,继承类中不可以访问。

C : Java中未声明控制符的,默认为public。

D : public声明的,非同一个package也能访问。

19.查看如下代码:

public class Foo {

public void method(String str,int age){ }

}

下列选项中,和 Foo 类中 method 方法重载的方法是(BCD)。

int method(String str,int age){}

void method(int year,String s){}

int method(int year,String s){}

int method(String str){}

20.下列语句创建对象的总个数是:(A)。

String s=“a”+”b”+”c”;

A.1

B.2

C.3

D.4

21. Question ( D ) public class Test {

public static void main(String[] args) {

String str="420";

str+=42;

n(str);

}}

What is the output?

A. 42 B.420 C. 462 D 42042 E Compliation fails.

F An exception is thrown at runtime.

Card{}下列不属于Card 类构造方法是:( C )

A. Card(){}

B. public Card(){}

C. public void Card(){}

D. private Card(){}

二、 简答题(2*6 = 12分)

重写:发生在父子类中,方法名称相同,参数列表相同,方法体不同

遵循"运行期绑定",看对象的类型来调用方法.

重载:发生在一个类中,方法名称相同,参数列表不同,方法体不同

遵循"编译期绑定",看参数引用的类型来绑定调用方法.

2. final的特性?

final:最终的

1)修饰变量:变量不能被改变

2)修饰方法:方法不能被重写

3)修饰类:类不能被继承

三、附加题编程题(选做)

(1)定义一个ManKind类,包括

成员变量 int sex 和 int salary;

方法 void manOrWorman():根据sex的值显示“man”(sex==1)或者“women”(sex==0);

方法 void employeed():根据salary的值显示“no job”(salary==0)或者“ job”(salary!=0)。

(2)定义类Kids1继承ManKind,并包括

成员变量 int yearsOld;

方法 printAge() 打印 yearsOld 的值。

(3)在Kids1类的main方法中实例化Kids1的对象 someKid,用该对象访问其父类的成员变量及方法。

1. Overload和Override有什么区别?


本文标签: 方法 下列 不能 继承 父类