知识单元三 面向对象-2
1. 设 x、 y为已定义的类名,下列声明x类的对象x1的语句中正确的是( )。 [单选题] *
| static x x1; |
| public x x1=new x(int 123); |
| y x1; |
| x x1=new x( );(正确答案) |
2. 类的设计要求它的某个成员变量不能被外部类直接访问。应该使用下面的哪些修饰符获得需要的访问控制?
[单选题] *
| public |
| 不加修饰符 |
| protected |
| private(正确答案) |
3. 为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为()
[单选题] *
| static void method( )(正确答案) |
| public void method( ) |
| final void method( ) |
| abstract void method( ) |
4. 关于类和对象的叙述正确的是:( )
[单选题] *
| Java的类分为两大部分:系统定义的类和用户自定义的类(正确答案) |
| 类的静态属性和全局变量的概念完全一样,只是表达形式不同 |
| 类的成员至少有一个属性和一个方法 |
| 类是对象的实例化 |
5. 关于对象成员占用内存的说法哪个正确? ( )
[单选题] *
| 同一个类的对象共用同一段内存 |
| 同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间(正确答案) |
| 对象的方法不占用内存 |
| 以上都不对 属性必须是简单变量 |
6. 下列哪个叙述是正确的?
[单选题] *
| 类体中必须先声明成员变量,然后再定义方法。 |
| 类体中成员变量的声明和方法的定义可以交叉进行(正确答案) |
| 类体中必须先定义构造方法才可以定义其他方法 |
| 类体中必须先定义实例变量,才可以再定义static变量 |
7. "对于下列Tom类,哪个叙述是正确的?
public class Test{
public static void main(String[] args){
Tom cat=new Tom();
}
}
class Tom{
void Tom(){
System.out.println("ok");
}
Tom(){
System.out.println("你好");
}
}" [单选题] *
| 程序运行时输出:ok |
| 有两个构造方法 |
| 有编译错误 |
| 程序运行时输出:你好(正确答案) |
8. "对于下列Tom类,哪个叙述是正确的?
public class Test{
public static void main(String[] args){
Tom cat=new Tom();
}
}
class Tom{
void Tom(){
System.out.println("ok");
}
Tom(int m){
System.out.println("你好");
}
}" [单选题] *
| 程序运行时输出:ok |
| 没有构造方法 |
| 有编译错误,因为Tom类中提供了带参的构造方法,将不再提供默认的构造方法,创建对象cat使用的默认构造方法不存在(正确答案) |
| 程序运行时无任何输出结果 |
9. 下列哪个叙述是正确的?
[单选题] *
| 方法中声明的局部变量有默认值 |
| 方法中声名的局部变量不可以用static修饰(正确答案) |
| this关键字也代表某个实例方法 |
| 构造方法也可以有返回类型 |
10. 下列哪个叙述是正确的?
[单选题] *
| 源文件可以有2条包语句(package) |
| 源文件不可以有多条import语句 |
| 如果源文件有package语句,该语句也可以是源文件的第2条语句 |
| 类中的类方法(static方法)只能操作类变量(static变量),不可以操作实例变量(正确答案) |
11. 下列哪个叙述是正确的?
[单选题] *
| 构造方法的访问权限可以不是public(正确答案) |
| 方法中声名的局部变量可以用static修饰 |
| 构造方法不可以重载 |
| static方法不可以重载 |
12. 下列哪个叙述是正确的?
[单选题] *
| 当this关键字出现在实例方法中时,就代表正在调用该方法的当前对象(正确答案) |
| 一个Java源文件必须要有package语句 |
| 成员变量没有默认值 |
| 成员变量的名字不可以和局部变量的相同 |
13. 下列哪个叙述是正确的?
[单选题] *
| 当类中没有定义任何构造方法时,Java编译器将为这个类提供默认构造方法(正确答案) |
| Java编译器提供默认构造方法,也可以为成员变量重新赋值 |
| Java编译器会为所有的类提供默认构造方法 |
| 如果在一个类中定义的构造方法都是有参数的,Java编译器将为这个类提供默认的构造方法 |
14. 下列哪个叙述是错误的?
[单选题] *
| 实例变量是类的成员变量 |
| 在方法中定义的局部变量在该方法被执行是分配内存 |
| 局部变量在使用前必须要有值 |
| 实例变量用关键字static修饰(正确答案) |
15. "对于下列代码E.java,哪个叙述是正确的?
pubic class E{
int x;
static int y;
void start(){
x=100;
y=200;
}
static void stop(){
x=1000;
y=2000;
}
}"
[单选题] *
| 代码没有编译错误 |
| 代码可以通过编译,但运行时触发NullPointException |
| 代码有编译错误提示:无法从静态方法stop中引用非静态变量x(正确答案) |
| start方法中操作变量y导致编译错误 |
16. 下列哪个叙述是错误的?
[单选题] *
| 类中的static方法可以用类名调用 |
| 实例方法可以操作static变量 |
| 类方法(static方法)可以操作实例变量(正确答案) |
| 类方法(static方法)可以操作static变量 |
17. "下列哪行代码有错误?
1.public class People{
2. int m=10,n;
3. n=200;
4. void f(){
5. if(m==n)
6. n=n+m;
7. else
8. n=n-m;
}
}"
[单选题] *
| 2 |
| 3(正确答案) |
| 6 |
| 8 |
18. 公有成员变量MAX_LENGTH是一个int型值,变量的值保持常数值100,定义这个变量的代码为? (多选)
*
| public int MAX_LENGTH=100; |
| final int MAX_LENGTH=100; |
| final public int MAX_LENGTH=100;(正确答案) |
| public final int MAX_LENGTH=100;(正确答案) |
19. 下列整型的常量属性i的定义中,正确的是() [单选题] *
| static final int i=100;(正确答案) |
| final int i; |
| static int i; |
| final float i=1.2f; |
20. 在Java中,方法的所有参数都是“传值”的,也就是说,方法中参数变量的值是调用者指定的实参值的拷贝
[判断题] *
| 对(正确答案) |
| 错 |