目录
习题见:2021-09-09 第二次周考试题_zz2097831284的博客-优快云博客
一、单选题(每题 2 分,共 40 分)
1.给出如下代码:
class Test{
private int m;
public static void fun() {
//some code?
}
}
如何使成员变量 m 可以被函数 fun()直接访问( C )
A.将 private int m 改为 protected int m
B.将 private int m 改为 public int m
C.将 private int m 改为 static int m //静态方法直接访问静态变量,所以转static
D.将 private int m 改为 int m
2.已知 A 类在 package A 中, B 类在 package B 中,且 B 类被声明为 public,且
有一个成员变量 x 被声明为 protected 控制方式。C 类也位于 package A 包
中,且继承了 B 类。则以下说法正确的是( C )
A.A 类的实例不能访问到 B 类的实例 //A能访问B的public
B.A 类的实例能够访问到 B 类一个实例的 x 成员 //protected限制子类同包类
C.C 类的实例可以访问到 B 类一个实例的 x 成员 //子类可以访问父类的protected
D.C 类的实例不能访问到 B 类的实例 //子类可以访问父类非私有
3.从下面四段(A,B,C,D)代码中选择出正确的代码段( C )
A.abstract class Name {
private String name;
public abstract boolean isStupidName(String name) {} //抽象方法不能有方法体
}
B.public class Something {
void doSomething () {
private String s = ""; //局部变量不能有访问权限修饰符
int l = s.length();
}
}
C.public class Something {
public static void main(String[] args) {
Other o = new Other();
new Something().addOne(o);
}
public void addOne(final Other o) {
o.i++;
}
}class Other {
public int i;
}
D.public class Something {
public int addOne(final int x) { //final修饰的变量不可变
return ++x;
}
}
4.下列哪一种叙述是正确的( D )
A.abstract 修饰符可修饰字段、方法和类 //不能修饰字段
B.抽象方法的 body 部分必须用一对大括号{ }包住
C.声明抽象方法,大括号可有可无
D.声明抽象方法不可写出大括号 //抽象方法不能有方法体{}
5.已知如下代码,下列选项中哪个表达式会编译出错( C )
interface IFace{}
class CFace implements IFace{}
class Base{}
public class ObRef extends Base{
public static void main(String argv[]){
ObRef ob = new ObRef();
Base b = new Base();
Object o1 = new Object();
IFace o2 = new CFace();
}
}
A.o1=o2; //Object父类指向子类CFace
B.b=ob; //Base父类指向子类ObRef
C.ob=b; //子类不能指向父类
D.o1=b; //