JAVA练习题二(类与对象)

一.单选题(共61题,100.0分)
1
下列关于面向对象的说法中,错误的是( )。
A、面向对象思想编程,不仅增强代码了复用性,提供了开发效率,而且为程序的修改补充提供了便利。
B、面向对象就是分析解决问题所需要的步骤,然后用函数把这些步骤一一实现,使用的时候一个一个依次调用
C、面向对象是把解决的问题按照一定规则划分为多个独立的对象,然后通过调用对象的方法来解决问题
D、面向对象虽然使程序的开发效率提高了,但是程序的处理效率相对面向过程程序要低
正确答案: B 我的答案:B得分: 1.6分
答案解析:

面向对象是把解决的问题按照一定规则划分为多个独立的对象,然后通过调用对象的方法来解决问题,具有易维护性、质量高、效率高、易扩展性等特点。
2
下列关于this关键字的说法中,错误的是( )

A、
this可以解决成员变量与局部变量重名问题

B、
this出现在成员方法中,代表的是调用这个方法的对象

C、
this可以出现在任何方法中

D、
this相当于一个引用,可以通过它调用成员方法与属性

正确答案: C 我的答案:C得分: 1.6分
3
下面哪一个是正确的类的声明?
A、public void HH{…}
B、public class Move(){…}
C、public class void number{}
D、public class Car{…}
正确答案: D 我的答案:D得分: 1.6分
答案解析:

4
下列类定义中,不正确的是( )。
A、class x { … }
B、class x extends y { … }
C、static class x implements y1,y2 { … }
D、public class x extends Applet { … }
正确答案: C 我的答案:C得分: 1.6分
答案解析:

5
下面选项中,不是面向对象的特征的是( )。
A、封装
B、继承
C、多态
D、重构
正确答案: D 我的答案:D得分: 1.6分
答案解析:

面向对象的特点主要可以概括为封装性、继承性和多态性。
6
先来看一段代码
​class Demo{
Demo(){
}
}
下列构造方法中,可以存在于Demo类中的是()
A、public Demo(){}
B、private Demo(){}
C、Demo(int age,String name)(){}
D、Demo(){}
正确答案: C 我的答案:C得分: 1.6分
答案解析:

7
被声明为private,protected 及public 的类成员,在类的外部则()
A、只能访问到声明为public 的成员
B、只可能访问到声明为protected 和public 的成员
C、都可以访问
D、都不能访问
正确答案: B 我的答案:B得分: 1.6分
答案解析:

声明为protected的类既能被同一包下的其它类访问,也能被不同包下该类的子类访问,声明为public的类可以被任意类访问
8
下面关于调用构造方法的描述中,正确的是( )
A、构造方法在类定义的时候被调用
B、构造方法在创建对象的时候被调用
C、构造方法在调用对象方法时被调用
D、构造方法在使用对象的变量时被调用
正确答案: B 我的答案:B得分: 1.6分
答案解析:

调用构造方法创建对象
构造方法的作用是为对象中的属性赋值,在创建对象时,构造方法就会被调用。
9
下列关于内部类的说法不正确的是
A、内部类的类名只能在定义它的类或程序段中或在表达式内部匿名使用
B、内部类可以使用它所在类的静态成员变量和实例成员变量
C、内部类不可以用abstract修饰符定义为抽象类
D、内部类可作为其他类的成员,而且可访问它所在类的成员
正确答案: C 我的答案:C得分: 1.6分
答案解析:

10
下列内存区域中,哪个是静态方法运行时所存在的?( )
A、栈内存
B、堆内存
C、方法区
D、寄存器
正确答案: A 我的答案:A得分: 1.6分
答案解析:

11
请阅读下面的程序,程序的运行结果是()。
class Person {
String name;
int age;
public Person() {}
public Person(String n, int a) {
name = n;
age = a;
}
public void show() {
System.out.print(name + “—” + age +" ");
}
}
public class Test {
public static void main(String[] args) {
Person p1 = new Person();
p1.show();
Person p2 = new Person(“周星驰”, 27);
p2.show();
}
}
A、null—0 周星驰—27
B、null—27 周星驰—27
C、周星驰—0 null—27
D、周星驰—27 null —27
正确答案: A 我的答案:A得分: 1.6分
答案解析:

12
下列关于类与对象的说法中,错误的是( )。
A、类是对某一类事物的抽象描述,而对象则是该类事物的个体。
B、对象是类的实例化
C、类用于描述多个对象的共同特征,它是对象的模板
D、类与对象之间没有关系
正确答案: D 我的答案:D得分: 1.6分
答案解析:

对象是根据类创建出来的,类是对象的模板,对象是类的实例。
13
以下代码执行后的结果是:( )
public class Person {
String name = “小芳”;
public Person(String name) {
name = “小兰”;
}
public void show() {
this.name = “小翠”;
}
public static void main(String[] args) {
Person p = new Person(“小凤”);
System.out.print(p.name);
p.show();
System.out.print(p.name);
}
}
A、小兰小翠
B、小凤小翠
C、小芳小翠
D、程序编译失败
正确答案: C 我的答案:C得分: 1.6分
答案解析:

14
下列关于构造方法定义的描述中,错误的是( )。
A、方法名与类名相同
B、在方法名的前面没有返回值类型的声明
C、当定义了有参构造方法,系统默认的无参构造方法依然存在
D、在方法中不能使用return语句返回一个值
正确答案: C 我的答案:C得分: 1.6分
答案解析:

15
下列关于成员变量默认值的描述中,错误的是( )
A、byte类型的数据默认值是0
B、int类型的数据默认值是0
C、long类型的数据默认值是0
D、float类型的数据默认值是0.0f
正确答案: C 我的答案:C得分: 1.6分
答案解析:

16
下列关于静态方法的描述中,错误的是( )。
A、静态方法属于类的共享成员
B、静态方法是通过"类名.方法名"的方式来调用
C、静态方法只能被类调用,不能被对象调用
D、静态方法中可以访问静态变量
正确答案: C 我的答案:A得分: 0.0分
答案解析:

17
下列关于成员属性与成员方法的描述中,错误的是( )
A、成员属性我们也叫成员变量,它就是描述对象的特征。它可以定义在类中,也可以定义在方法中
B、成员方法用于描述对象的行为
C、在类中定义的变量称为成员变量
D、在类中定义的方法称变成员方法
正确答案: A 我的答案:A得分: 1.6分
答案解析:

18
请阅读下面的程序代码
Class Person{
void say(){
System.out.println(“hello”);
}
}
class Example{
public static void main(String[] args){
Person p2 = new Person();
Person p1 = new Person();
p2.say();
p1.say();
p2=null;
p2.say();
}
}
下列关于程序运行结果的描述中,正确的是()
A、输出1个hello
B、输出2个hello后会抛出异常
C、输出3个hello后会抛出异常
D、不会输出hello,直接抛出异常
正确答案: B 我的答案:B得分: 1.6分
答案解析:

程序中创建了2个Person对象p1、p2,并分别调用了say()方法输出两个hello,然后将p2对象置为null,使p2对象失去了引用,因此再次使用p2对象调用say()方法时,会抛出异常。
19
阅读下面的代码
class Demo{
private String name;
Demo(String name){this.name = name;}
private static void show(){
System.out.println(name)
}
public static void main(String[] args){
Demo d = new Demo(“lisa”);
d.show();
}
}
下列关于程序运行结果的描述中,正确的是()
A、输出 lisa
B、输出null
C、输出name
D、编译失败,无法从静态上下文中引用非静态变量name
正确答案: D 我的答案:D得分: 1.6分
答案解析:

20
下列关于构造方法的描述,错误的是( )。
A、一个类中只能定义一个构造方法
B、一个类中可以定义多个构造方法
C、如果在一个类中定义有参的构造方法,jvm就不会提供默认的无参构造方法
D、构造方法的作用是用来给属性进行初始化的
正确答案: A 我的答案:A得分: 1.6分
答案解析:

21
请阅读下面的代码
String s1=new String(“abc”);
String s2=s1.intern();
String s3=”abc”;
System.out.println(s1s2);
System.out.println(s2
s3);
System.out.println(s1==s3);
下列选项中,程序的输出结果为()
A、false true false
B、false false false
C、false true true
D、false false true
正确答案: A 我的答案:A得分: 1.6分
答案解析:

22
类的定义必须包含在以下哪种符号之间?
A、[]
B、{}
C、""
D、()
正确答案: B 我的答案:B得分: 1.6分
答案解析:

23
下列关于this的说法中,错误的是( )
A、只能在构造方法中使用this调用其它的构造方法,不能在成员方法中使用
B、在构造方法中,使用this调用构造方法的语句必须位于第一行,且只能出现一次
C、this关键字可以用于区分成员变量与局部变量
D、this可以出现在任何方法中
正确答案: D 我的答案:D得分: 1.6分
答案解析:

24
为了能让外界访问私有属性,需要提供一些使用( )关键字修饰的公有方法。
A、void
B、default
C、private
D、public
正确答案: C 我的答案:C得分: 1.6分
答案解析:

25
当一个类中成员变量和局部变量重名时,可以使用哪个关键字进行区分( )
A、super
B、this
C、public
D、true
正确答案: B 我的答案:B得分: 1.6分
答案解析:

26
定义类A如下:
class A{
int a,b,c;
public void B(int x,int y, int z){ a=x;b=y;c=z;}
}
下面对方法B的重载哪些是正确的( )
A、public void A(int x1,int y1, int z1){ a=x1;b=y1;c=z1;}
B、public void B(int x1,int y1, int z1){ a=x1;b=y1;c=z1;}
C、public void B(int x,int y){ a=x;b=y;c=0;}
D、public B(int x,int y, int z){ a=x;b=y;c=z;}
正确答案: C 我的答案:C得分: 1.6分
答案解析:

27
下列关于类与对象的说法中,正确的是( )
A、类可以看做是一个具体的实例
B、没有类,也可以创建对象
C、类是对某一类事物的抽象描述,而对象用于表示现实中该类事物的个体
D、以上说法都不对
正确答案: C 我的答案:C得分: 1.6分
答案解析:

28
方法内定义的变量( )
A、一定在方法内所有位置可见
B、可能在方法的局部位置可见
C、在方法外可以使用
D、在方法外可见
正确答案: B 我的答案:B得分: 1.6分
答案解析:

29
下列方法定义中,方法头不正确的是( )
A、public static x(double a){…}
B、public static int x(double y){…}
C、void x(double d){…}
D、public int x(){…}
正确答案: A 我的答案:A得分: 1.6分
答案解析:

30
float类型成员变量的默认初始化值是( )。

A、
0

B、
false

C、
‘’

D、
0.0F

正确答案: D 我的答案:D得分: 1.6分
答案解析:

实例化对象时 ,Java虚拟机会自动为成员变量进行初始化,针对不同类型的成员变量,Java虚拟机会赋予不同的初始值。float类型的默认初始值是0.0F。

31
下列关于静态方法的描述中,错误的是( )。
A、静态方法指的是被static关键字修饰的方法
B、静态方法不占用对象的内存空间,而非静态方法占有对象的内容空间
C、静态方法内可以使用this关键字
D、静态方法内部只能访问被static修饰的成员
正确答案: C 我的答案:C得分: 1.6分
答案解析:

32
“隐藏对象的属性和实现细节,仅对外提供公有的方法”描述的是面向对象的哪个特征( )
A、封装
B、继承
C、多态
D、以上都不是
正确答案: A 我的答案:A得分: 1.6分
答案解析:

封装是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道具体实现细节,这就是封装思想。
33
在Java语言中,封闭是借助于( )实现的
A、对象
B、类
C、数组
D、成员
正确答案: D 我的答案:D得分: 1.6分
答案解析:

34
下列关于构造方法重载的说法中,错误的是()。
A、不同构造方法中调用本类其它的构造方法时,需要使用this([参数1,参数2…])的形式
B、不同构造方法中调用本类其它的构造方法时,必须放在第一行
C、构造方法的重载和普通方法一样,方法名的前面需要声明返回值类型
D、构造方法重载时,只要每个参数类型或参数个数不同即可
正确答案: C 我的答案:C得分: 1.6分
答案解析:

35
下列关于使用this调用构造方法的说法中,错误的是?( )
A、使用this调用构造方法的格式为this([参数1,参数2…])
B、只能在构造方法中使用this调用其它的构造方法
C、使用this调用其它构造方法的语句必须放在第一行
D、在一个类的两个构造方法中可以使用this互相调用
正确答案: D 我的答案:D得分: 1.6分
答案解析:

36
下列选项中,不属于面向对象特征的是( )。
A、继承性
B、封装性
C、跨平台性
D、多态性
正确答案: C 我的答案:C得分: 1.6分
答案解析:

面向对象有三种特性,分别是封装性、继承性和多态性。跨平台性是Java语言的特点,而不是面向对象的特征。
37
阅读下列的程序
public class Test3 {
public static void main(String[] args) {



}
}
class Outer {
static class Inner {
public void method () {
System.out.println(“method”);
}
}
}
下列选项中,可以正确输出method()方法的是( )
A、Outer o = new Outer();
o.method();
B、Inner I = new Inner();
i.method();
C、Outer.Inner oi = new Outer.Inner();
C、oi.method();
D、以上答案都不对
正确答案: CC 我的答案:C得分: 1.6分
答案解析:

38
下列关于类和对象的描述,错误的是( )
A、对象是类的实例
B、一个类只能有一个实例化对象
C、类是对象的抽象
D、类用于描述一组对象的共同特征和行为
正确答案: B 我的答案:B得分: 1.6分
答案解析:

类是对象的模板,对象是类的实例,一个类可以创建多个对象。
39
下列关键字中,用于创建类的实例对象的是( )。
A、class
B、new
C、private
D、void
正确答案: B 我的答案:B得分: 1.6分
答案解析:

Java中使用new关键字创建对象,class用于定义一个类,private是权限修饰符,表示表示只能在本类中访问,void表示无返回值
40
Outer类中定义了一个成员内部类Inner,需要在main()方法中创建Inner类实例对象,以下四种方式哪一种是正确的?
A、Inner in = new Inner()
B、Inner in = new Outer.Inner();
C、Outer.Inner in = new Outer.Inner();
D、Outer.Inner in = new Outer().new Inner();
正确答案: D 我的答案:C得分: 0.0分
答案解析:

41
以下关于类的描述中,错误的是( )
A、在面向对象的思想中最核心就是对象,为了在程序中创建对象,首先需要定义一个类
B、定义类的关键字是Interface
C、类中的方法叫成员方法,成员方法又分为实例方法与类方法
D、类中的属性叫成员属性,成员属性又分为实例属性与类属性
正确答案: B 我的答案:B得分: 1.6分
答案解析:

42
String、StingBuffer都是( )类,都不能被继承。
A、static
B、abstract
C、final
D、private
正确答案: C 我的答案:C得分: 1.6分
答案解析:

43
下列修饰符中,成员内部类被( )修饰后,可以被外界访问。
A、default
B、protected
C、public
D、private
正确答案: C 我的答案:C得分: 1.6分
答案解析:

44
阅读下列的代码
public class Test {
public static void main(String[] args) {



}
}
class Outer {
static class Inner {
public void method () {
System.out.println(“method”);
}
}
}
下列选项中,填写在空白处可以使程序正常运行的是()
A、Outer o = new Outer(); o.method();
B、Inner I = new Inner(); i.method();
C、Outer.Inner oi = new Outer.Inner(); oi.method();
D、以上答案都不对
正确答案: C 我的答案:C得分: 1.6分
答案解析:

45
阅读下面的程序
class Person{
static{
System.out.println(“static”)
}
Person(){
System.out.println(“构造”)
}
}
class Demo{
public static void main(String[] args){
Person p = new Person();
}
}
下列关于程序运行结果的描述中,正确的是
A、输出:构造
B、输出:static 构造
C、输出:static
D、没有输出结果
正确答案: B 我的答案:B得分: 1.6分
答案解析:

因为静态方法中输出的name没有先定义就使用了,所以会编译失败。
46
下面选项中,可以提取文档注释中作者信息的是( )
A、javadoc –d . Demo1.java
B、javadoc –d . –public Demo1.java
C、javadoc –d . –version Demo1.java
D、javadoc –d . –author Demo1.java
正确答案: D 我的答案:D得分: 1.6分
答案解析:

47
在Java语言中,String类型的成员变量的默认初始值是( )。
A、false
B、""
C、0
D、N
正确答案: D 我的答案:C得分: 0.0分
答案解析:

String类型属于引用类型,引用类型的默认初始值为null
48
下面哪个关键字用于将类中的属性私有化( )
A、default
B、public
C、private
D、protected
正确答案: C 我的答案:C得分: 1.6分
答案解析:

49
重载指的是方法具有相同的名字,但这些方法的参数必须不同。下列哪种说法不属于方法参数的不同( )
A、形式参数的个数不同
B、形式参数的类型不同
C、形式参数的名字不同
D、形式参数类型的排列顺序不同
正确答案: C 我的答案:C得分: 1.6分
答案解析:

50
当成员变量和局部变量重名时,若想在方法内使用成员变量,那么需要使用下列选项中的哪一个关键字( )。
A、super
B、import
C、this
D、return
正确答案: C 我的答案:C得分: 1.6分
答案解析:

当成员变量和局部变量重名时,若想在方法内使用成员变量,只能使用this获得成员变量。
51
请阅读下面的程序,选择正确的运行结果。
class Demo{
private static int x ;
public static void main(String[] args){
System.out.println(x++);
}
}
A、0
B、1
C、无结果
D、编译失败
正确答案: A 我的答案:A得分: 1.6分
答案解析:

52
下列关于构造方法的描述中,错误的是( )
A、构造方法的方法名必须和类名一致
B、构造方法不能写返回值类型
C、构造方法可以重载
D、构造方法的访问权限必须和类的访问权限一致
正确答案: D 我的答案:C得分: 0.0分
答案解析:

53
下列关于单例设计模式的描述中,正确的是( )
A、将一个类设计为单例设计模式,在其他类中可以创建这个类对象
B、将一个类设计为单例设计模式,必须私有其空参数构造方法,并且还不能定义有参数的构造方法
C、将一个类设计为单例设计模式,需要定义一个静态的成员方法将本类创建的对象返回给调用者
D、以上答案都不对
正确答案: B 我的答案:B得分: 1.6分
答案解析:

54
类的定义必须包含在以下哪种符号之间?
A、方括号[]
B、花括号{}
C、双引号""
D、圆括号()
正确答案: B 我的答案:B得分: 1.6分
答案解析:

55
Person p = new Person(“张三”,23);这条语句会调用下列哪个构造方法给属性进行初始化( )
A、public Person(){}
B、public Person(String name,int age) { this.name = name; this.age = age; }
C、public Person(int age,String name) { this.age = age; this.name = name; }
D、public Person(String name) { this.name = name; }
正确答案: B 我的答案:B得分: 1.6分
答案解析:

创建对象时会找到匹配的构造方法给属性进行初始化,由于Person p = new Person(“张三”,23);这条语句中有两个参数,而且第1个参数是String类型的,第2个参数是int类型的,因此会调用B选项中的构造方法。
56
下列关于类的说法中,错误的是( )
A、Java中创建类的关键字是class
B、类中可以有属性与方法,属性用于描述对象的特征,方法用于描述对象的行为
C、Java中对象的创建,首先需要定义出一个类
D、一个类只能创建一个对象
正确答案: D 我的答案:D得分: 1.6分
答案解析:

57
下列选项中,哪个可以用来创建对象?()
A、new
B、this
C、super
D、abstract
正确答案: A 我的答案:A得分: 1.6分
答案解析:

应用程序想要完成具体的功能,仅有类是远远不够的,还需要根据类创建实例对象。在Java程序中可以使用new关键字来创建对象
58
请阅读下面的代码
class A{
int x;
static int y;
void fac(String s){
System.out.println(“字符串:”+s);
}
}
下列选项中描述正确的是( )
A、x , y和s 都是成员变量
B、x 是实例变量,y是类变量,s是局部变量
C、x和y是实例变量,s是参数
D、x ,y和s都是实例变量
正确答案: B 我的答案:B得分: 1.6分
答案解析:

在方法中声明的s是局部变量,使用static关键字修饰的y是类变量,在类中定义的x是实例变量。
59
下列修饰符中,哪个修饰内部类后,会使内部类会随着外部类的加载而加载。
A、static
B、protected
C、public
D、private
正确答案: A 我的答案:A得分: 1.6分
答案解析:

内部类被static修饰后,会随着外部类的加载而加载。所以,可以把一个静态内部类理解为一个外部类。
60
阅读下列的程序
class Person{
static{
System.out.println(name);
}
private static String name = “hello”;
}
class Demo{
public static void main(String[] args){
Person p = null;
}
}
下列关于程序运行结果的描述中,正确的是()
A、无结果输出
B、输出 null
C、输出 hello
D、编译失败
正确答案: D 我的答案:D得分: 1.6分
答案解析:

61
在以下什么情况下,构造方法会被调用?
A、类定义时
B、创建对象时
C、调用对象方法时
D、使用对象的变量时
正确答案: B 我的答案:B得分: 4.0分
答案解析:

  • 3
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值