Java基础部分面向对象
选择题
1、阅读下列程序:
public class Test {
public static void main (String[]args) {
String foo = args[1]; String bar = args[2]; String baz = args[3];
System.out.printIn(“baz = ” + baz); }
}
输出结果是:
baz = 2
给出的四个命令参数中,哪一个可以得出正确的输出结果( )。
A. Java Test 2222 B. Java Test 1 2 3 2 C. Java Test 4 2 2 3 D. Java Test 43 21 2
2、分析如下所示的Java代码,其中this关键字的意思是( )。
public class Test {
private String name;
public String getName() {
return name; }
public void setName(String name) {
this.name = name; //this关键字所在的行 } }
A. name属性
B. Test类的内部指代自身的引用
C. Test类的对象引用Test类的其他对象 D. 指所在的方法
3、在Java中,下面对于构造函数的描述正确的是( )。
A. 类必须显式定义构造函数 B. 构造函数的返回类型是void
C. 构造函数和类有相同的名称,并且不能带任何参数 D. 一个类可以定义多个构造函数
4、下列选项中关于Java中封装的说法错误的是( )。
A. 封装就是将属性私有化,提供公有的方法访问私有属性 B. 属性的访问方法包括setter方法和getter方法 C. setter方法用于赋值、getter方法用于取值 D. 类的属性必须进行封装,否则无法通过编译
5、下列选项中关于Java中super关键字的说法错误的是( )。
A. super关键字是在子类对象内部指代其父类对象的引用
B. super关键字不仅可以指代子类的直接父类,还可以指代父类的父类 C. 子类可以通过super关键字调用父类的方法 D. 子类可以通过super关键字调用父类的属性
6、构造函数何时被调用( )
A、创建对象时 B、类定义时
C、使用对象的方法时 D、使用对象的属性时
7、给定如下一个Java源文件Child.java,编译并运行,以下结果正确的是( )。
class Parent1 {
Parent1(String s){
System.out.println(s);
} }
class Parent2 extends Parent1{
Parent2(){
System.out.println(\
} }
public class Child extends Parent2 {
public static void main(String[] args) { Child child = new Child();
} }
A. 编译错误:没有找到构造器Child() B. 编译错误:没有找到构造器Parent1() C. 正确运行,没有输出值
D. 正确运行,输出结果为:parent
9、阅读下列程序
class BaseClass{
private float x= 1.0f;
protected void setVar (float f) {x = f;} }
class SubClass extends BaseClass {
private float x = 2.0f; //代码插入行 }
以下哪个选项是对父类函数正确的覆盖? ( )
A. Void setVar(float f) {x = f;} B. Public void setVar(int f) {x = f;}
C. Public void setVar(float f) {x = f;} D. Public double setVar(float f) {x = f;}
10、方法的重载必须满足的条件是( )
A、参数的个数不同,或者是参数的类型不同 C、方法的名字不同
12、看下面一段程序:
class Aclass{ void go(){
System.out.println(\ }
}
public class Bclass extends Aclass{ void go{
System.out.println(\ }
public static void main(String args[]){ Aclass a=new Aclass(); Aclass a1=new Bclass(); a.go(); a1.go(); } }
以上程序运行结果是( )
A、 Aclass B、 Bclass
Aclass Bclass
C、Aclass D、Bclass Bclass Aclass 13、设有下面两个赋值语句:
a = Integer.parseInt(“1024”);
b = Integer.valueOf(“1024”).intValue(); 下述说法正确的是( )。
A、a是整数类型变量,b是整数类对象。
B、a是整数类对象,b是整数类型变量。
C、a和b都是整数类对象并且它们的值相等。 D、a和b都是整数类型变量并且它们的值相等。
B、参数的顺序不同 D、返回类型不同
15、类的设计要求它的某个成员变量不能被外部类直接访问,应该使用下面的哪些修饰符获得需要的访问控制( )?
A、public B、default C、protected D、private 16、编译Java Application 源程序文件产生的字节码文件的扩展名为( )。
A、java B、class C、html D、exe 17、关于方法main()的说法哪个正确( )
A、方法main()只能放在公共类中
B、main()的头定义可以根据情况任意更改 C、一个类中可以没有main()方法
D、所有对象的创建都必须放在main()方法中 18、运行下列程序的结果是哪个( )
abstract class MineBase { abstract void amethod(); static int i; }
public class Mine extends MineBase {
public static void main(String args[]){ int[] ar = new int[5];
for(i = 0; i < ar.length; i++) System.out.println(ar[i]); } }
A、打印5个0。
B、编译出错,数组ar[]必须初始化。 C、编译出错, Mine应声明为abstract。 D、出现IndexOutOfBoundes的例外。 19、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )
A、static void method( ) B、public void method( )
C、final void method( ) D、abstract void method( )
20.设有下面两个类的定义:
class Person { long id; //身份证号
String name; // 姓名 }
class Student extends Person { int score; // 入学总分
int getScore() { return score; } } 问:类Person和类Student的关系是( )
A、包含关系 B、继承关系 C、关联关系 D、无关系,上述类定义有语法错误 21.下列描述正确的是( )
A、多态性就是指子类的某个方法被其父类重写时,可以各自产生自己的功能行为。 B、多态性就是指子类的某个方法被其父类重写时,不能各自产生自己的功能行为。 C、多态性就是指父类的某个方法被其子类重写时,可以各自产生自己的功能行为。 D、以上都不对
22.下列哪个关键字用于实现接口( )
A、implements B、implement C、import D、imports
23.现有两个类A、B,以下描述中表示B继承自A的是( )
A、 class A extends B B、 class B implements A
C、 class A implements B D、 class B extends A 24.对于下列代码:
public class Parent {
public int addValue( int a, int b) { int s; s = a+b; return s;
} }
class Child extends Parent { }
下述哪些方法可以加入类Child可以实现覆盖( )
A、 int addValue( int a, int b ){// do something...}
B、 public void addValue (int a, int b ){// do something...} C、 public int addValue( int a ){// do something...}
D、 public int addValue( int a, int b )throws MyException {//do something...} 25.用abstract定义的类( )
A、可以被实例化 B、不能派生子类
C、不能被继承 D、只能被继承
简答题
什么是实例变量和类变量及他们的区别?
static 类变量 类名.类变量 对象.类变量 (公共的 全局的) 普通变量 对象.变量
类及类成员的访问控制符有哪些,并说明各自权限?
public protected default private
一个类里 √ √ √ √ 一个包里的类 √ √ √ × 在不同包里的子类 √ √ × × 在不同包里的其他类 √ × × ×
抽象类和接口区别
抽象类 模板 接口 标准
覆盖与重载区别
覆盖 对应的是两个继承关系的类
返回值 函数名 参数类型 和 个数 必须一致 权限要大于 父类
重载 在一个类里完成对同名函数的不同参数的 调用
异常和多线程部分
选择题
1、以下哪个方法用于定义线程的执行体( )。