山东大学软件学院面向对象程序设计期中测试题-创新互联
序号可能有问题
成都创新互联公司-专业网站定制、快速模板网站建设、高性价比湾里网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式湾里网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖湾里地区。费用合理售后完善,十余年实体公司更值得信赖。OO期中题目2022.04
- 选择题:(每题2分,共40分)
- 在Java中,已定义两个接口B和C,要定义一个类同时实现这两个接口,正确的是( )
A、 interface A extends B,C
B、 interface A implements B,C
C、 class A implements B,C
D、 class A implements B, implements C
- 如下所示代码:
public class Test05_01{
private float a;
public static void m ( ){ }
}
如何使成员变量a被方法m( )访问( )。
A、将private float a改为public float a
B、将private float a改为static float a
C、将private float a改为protected float a
D、将private float a改为float a
- 下列哪种类成员修饰符修饰的变量只能在本类中被访问( )。
A、protected B、default C、private D、public
- 在Java中,如果父类中的某些方法不包含任何逻辑,并且需要由子类重写,应该使用( )关键字来声明父类的这些方法
A、final B、 abstract C、static D、void
- 下面关于方法的说法不正确的一项是( )。
A、类的私有方法不能被其他类直接访问。
B、Java中的构造方法名必须和类名相同。
C、方法体是对方法的实现,包括变量声明和合法语句。
D、如果一个类定义了构造方法,也可以用该类的默认构造方法。
- 设 i,j 为类 x 中定义的 double 型变量名,下列 x 类的构造函数中不正确的是( )。
A、double x(double k ){ i=k; return i; }
B、x(double m, double n ){ i=m; j=n; }
C、x( ){i=0;j=0 }
D、x(double k ){ i=k; }
- 下列程序的运行结果是( )。
public class Test05_02 extends x{
int ab(){
static int a = 10;
a++;
System.out.println(a);
}
public static void main(String[] args) {
Test05_02 b = new Test05_02 ();
b.ab();
}
}
A、10 B、编译错误
C、11 D、运行成功,但不输出
- f1 f2同一类两个成员函数,但f1不能调用f2,说明( )。
A、f1 f2都是静态函数
B、f1是静态,f2不是
C、f1不是,f2是静态
D、f1 f2都不是静态函数
- 在派生类中能直接访问基类的( )。
A、公有成员,私有成员 B、保护成员,私有成员
C、不可访问成员,私有成员 D、公有成员,保护成员
- 下面关于构造方法的描述有误的一项是( )。
A、构造方法必须要有返回类型的声明。
B、构造方法和类中的方法很相似:有访问修饰符、方法名、参数列表、方法体。
C、构造方法当成是一个特殊的方法,这个方法的作用就是用来产生一个类的实例。
D、构造方法的方法名必须和类名完全相同。
- 下面关于变量说法错误的一项是( )。
A、对于成员变量,我们可以不需要手动的显式初始化,因为系统在创建一个新的对象的时候,会给这些成员变量赋一个初值。
B、对于引用变量,它的默认初值是null而非相应的引用类型对象,也就是说,它并不是指向任何对象的首地址。
C、系统会对全局(成员)变量指定默认的值,也会对局部变量赋值。
D、局部变量在使用之前,必须对其进行显式初始化。
- 对下列程序说法正确的是( )
public class Test7{
public static void main(String[] avgs){
String s1 = "Hello world";
String s2 = "Hello";
s2 = s2 + " world";
System.out.println(s1 == s2);
}
}
A、 true B、false C、编译错误 D、Hello world
- 给定JAVA代码如下,关于super的用法,以下描述正确的是( )
class C extends B {
public C(){
super();
}
}
A、用来调用类B中定义的super()方法
B、用来调用类C中定义的super()方法
C、用来调用类B中的无参构造方法
D、用来调用类B中第一个出现的构造方法
- 如果局部变量和成员变量同名,如何在局部变量作用域内引用成员变量( )。
A、不影响,系统可以自己区分
B、不能引用,必须改名,使它们的名称不相同
C、在成员变量前加this,使用this访问该成员变量
D、在成员变量前加super,使用super访问该成员变量
- 下列关于内部类说法错误的一项是( )。
A、内部类可用private或protected修饰符修饰
B、内部类不能有自己的成员方法和成员变量
C、除static内部类外,不能在类内声明static成员
D、内部类可以作为其他类的成员,而且可访问它所在的类的成员
- 下面说法不正确的一项是( )。
A、abstract和final能同时修饰一个类
B、抽象类既可以做父类,也可以做子类
C、声明为final类型的方法不能在其子类中重新定义
D、抽象类中可以没有抽象方法,有抽象方法的类一定是抽象类或接口
- 有一个类MyClass,它的构造方法声明正确的是( )
A) void MyClass(int x) {...} B) Myclass(int x){...}
C) public MyClass(int x){…} D) public void MyClass(int x){…}
- 重载函数在调用时选择的依据中,( )是错误的。
A、参数个数 B、参数的类型 C、参数的顺序 D、函数类型
- 某一基类有构造函数A(),析构函数~A(),其派生类B的构造函数析构函数分别为B(),~B(),程序说明B的对象b时,下列说法正确的是( )
A. 开始时,先调用 A(),再调用B(),结束时,先调用~A(),再调用~B()
B. 开始时,先调用 A(),再调用B(),结束时,先调用~B(),再调用~A()
C. 开始时,先调用 B(),再调用A(),结束时,先调用~A(),再调用~B()
D. 开始时,先调用 B(),再调用A(),结束时,先调用~B(),再调用~A()
- 以下哪一项属于面向对象方法的多态性( )。
A、一个类可以派生出多个特殊类
B、一个对象在不同的运行环境中可以有不同的变体
C、针对同一消息,不同的对象可以以适合自身的方式加以响应
D、一个对象可以是由多个其他对象组合而成的
- 简答题:(每题2分,共20分)
- 我们使用 ________ 这一术语表示类的一个具体代表或者范例,使用 ________ 来表示它所维护的内部变量,并且客户不能直接改变这些数值,只有和类相关的 ________ 才能改变它们。
- 对于任何消息传递表达式都有3个确定的部分:________ 、________ 和用于响应消息的 ________ 。
- 构造函数的两项主要任务是 ________________________ 和 ________________________ 。
- 检验两个概念是否为继承关系,采用 ___________ 规则。
- 一个对象可以有两个或更多的父类,这种特性称作___________________ 。
- 简答题:(每题10分,共40分)
- 在类的定义中,可视性修饰符的作用是什么?以Java或C++语言进行说明。
- 类的实例变量/方法和类变量/类方法的区别是什么?使用Java语言为类Animal定义一个类方法getNumbers(),并写出访问这一方法的代码。
- 请分别描述封装、继承的含义,并用Java或C++说明OOPL分别怎样实现了这两种面向对象的特征。
- 请说明重载、重置、重定义的区别,并分别用代码举例说明。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
分享标题:山东大学软件学院面向对象程序设计期中测试题-创新互联
文章起源:http://abwzjs.com/article/pspgg.html