今日错题积累:
1.(单选题)以下关于面向对象概念的描述中,不正确的一项是( )
A.在现实生活中,对象是指客观世界的实体
B.程序中的对象就是现实生活中的实体对象
C.在程序中,对象是通过一种抽象数据类型来描述的,这种抽象数据类型称 为类(class)
D.在程序中,对象是一组变量和相关方法的集合
我的答案:D
正确答案:B
答案解释:程序中的对象是一种数据信息,并非实现体中的实际物体
2.(单选题)在创建对象时,必须( )
A.先声明对象,然后才能使用对象
B.先声明对象,为对象分配内存空间,然后才能使用对象
C.先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象
D.上述说法都对
我的答案:B
正确答案:C
答案解释:对象是先声明,声明后会在给对象在内存里开辟空间,之后初始化,再进行使用
3.(单选题)关于以下程序代码的说明正确的是( )
class HasStatic {
private static int x = 100;
public static void main(String args[]) {
HasStatic hs1 = new HasStatic();
hs1.x++;
HasStatic hs2 = new HasStatic();
hs2.x++;
hs1 = new HasStatic();
hs1.x++;
HasStatic.x--;
System.out.println("x=" + x);
}
}
A.5 行不能通过编译,因为引用了私有静态变量
B.10 行不能通过编译,因为 x 是私有静态变量
C.程序通过编译,输出结果为:x=103
D.程序通过编译,输出结果为:x=102
我的答案:A
正确答案:D
答案解释:静态变量是所有对象所共享的,所以上述代码中的几个对象操作是同一静 态变量x, 静态变量可以通过类名调用。
4.(多选题)下列说法错误的有( )
A.在类方法中可用 this 来调用本类的类方法
B.在类方法中调用本类的类方法时可直接调用
C.在类方法中只能调用本类中的类方法
D.在类方法中绝对不能调用实例方法
我的答案:A D
正确答案:A C D
答案解释:A在类方法中不能使用 this 关键字。C在类方法中可以调用其它类中的类方法。D在类方法中可以通过实例化对象调用实例方法。
5.(多选题)下面选项中哪两个可以在 A 的子类中使用( )
class A{
protected int method1(int a,int b){
return 0;
}
}
A.public int method1(int a, int b) { return 0; }
B.private int method1(int a, int b) { return 0; }
C.private int method1(int a, long b) { return 0; }
D.public short method1(int a, int b) { return 0; }
我的答案:A D
正确答案:A C
答案解释:B子类重写父类的方法,访问权限不能降低;C属于重载;D子类重写父类的方法如果返回值类型是基本类型的话,要求相同。