知识单元三 面向对象-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中,方法的所有参数都是“传值”的,也就是说,方法中参数变量的值是调用者指定的实参值的拷贝
[判断题] *

(正确答案)