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有什么区别?
版权声明:本文标题:面向对象试题(答案) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1708234031h517126.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论