第三章 封装 您所在的位置:网站首页 使用new关键字创建对象实例 第三章 封装

第三章 封装

2023-12-22 14:34| 来源: 网络整理| 查看: 265

1、 下列关于构造方法的描述,错误的是() 2分 A、一个类中只能定义一个空参数的构造方法 B、一个类中可以定义多个构造方法 C、构造方法的方法名前面没有返回值类型的声明 D、在构造方法中不能使用return语句返回一个值,但是可以单独使用return作为方法的结束 答案: A 【答案说明】 暂无 2、 以下关于成员属性与成员方法的描述中,错误的是( ) 2分 A、成员属性我们也叫成员变量,它就是描述对象的特征。它可以定义在类中,也可以定义在方法中 B、成员方法用于描述对象的行为 C、在类中定义的变量,我们称为成员变量 D、在类中定义的方法,我们称变成员方法 答案: A 【答案说明】 类中可以定义成员变量和成员方法,其中成员变量用于描述对象的特征,也被称作属性,成员方法用于描述对象的行为,可简称为方法。定义在类中的变量被称为成员变量,定义在方法中的变量被称为局部变量。 3、 下列选项中,哪个可以用来创建对象() 2分 A、new B、this C、super D、abstract 答案: A 【答案说明】 应用程序想要完成具体的功能,仅有类是远远不够的,还需要根据类创建实例对象。在Java程序中可以使用new关键字来创建对象。 4、 float类型成员变量的默认初始化值是( ) 2分 A、0 B、false C、null D、0.0F 答案: D 【答案说明】 实例化对象时 ,Java虚拟机会自动为成员变量进行初始化,针对不同类型的成员变量,Java虚拟机会赋予不同的初始值。float类型的默认初始值是0.0F。 5、 下列关于静态方法的描述中,错误的是( ) 2分 A、静态方法指的是被static关键字修饰的方法 B、静态方法不占用对象的内存空间,而非静态方法占有对象的内容空间 C、静态方法内可以使用this关键字 D、静态方法内部只能访问被static修饰的成员 答案: C 【答案说明】 静态方法内部不可以使用this、super等关键字。 6、 下面关于静态变量的描述,正确的是( ) 2分 A、静态变量可以定义在类中的任意位置 B、静态变量一但被赋值不能被修改 C、静态变量可以被类直接调用,因此可以说静态变量的生命周期与实例无关 D、以上都不对 答案: C 【答案说明】 static关键字只能修饰类的成员,不能随意使用。 静态变量的值可以被修改。 7、 下列关于this关键字的说法中,错误的是( ) 2分 A、this可以解决成员变量与局部变量重名问题 B、this出现在成员方法中,代表的是调用这个方法的对象 C、this可以出现在任何方法中 D、this相当于一个引用,可以通过它调用成员方法与属性 答案: C 【答案说明】 this关键字有三个作用,具体如下: 1、通过this关键字可以明确地去访问一个类的成员变量 2、通过this关键字调用成员方法 3、构造方法中使用“this(参数1,参数2…)”的形式来调用其它的构造方法 8、 下列程序的运行结果是 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(); } } 2分 A、输出lisa B、输出null C、输出name D、编译失败,无法从静态上下文中引用非静态变量name 答案: D 【答案说明】 静态不能直接访问非静态。 9、 下列关于类和对象的说法中,错误的是() 2分 A、类用于描述多个对象的共同特征,它是对象的模板 B、类在Java中是一个可有可无的概念 C、对象是类的具体化,一个类可以对应多个对象 D、类是对事物的抽象描述,对象则是该类事物的个体 答案: B 【答案说明】 暂无 10、 “隐藏对象的属性和实现细节,仅对外提供公有的方法”描述的是面向对象的哪个特征( ) 2分 A、封装 B、继承 C、多态 D、以上都不是 答案: A 【答案说明】 封装是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道具体实现细节,这就是封装思想。 11、 下列关于类的说法中,错误的是( ) 2分 A、Java中创建类的关键字是class。 B、类中可以有属性与方法,属性用于描述对象的特征,方法用于描述对象的行为。 C、Java中对象的创建,首先需要定义出一个类。 D、一个类只能创建一个对象。 答案: D 【答案说明】 类是对象的模板,对象是类的实例,一个类是可以创建多个对象的。 12、 下面关于构造方法的调用,正确的是( ) 2分 A、构造方法在类定义的时候被调用 B、构造方法在创建对象的时候被调用 C、构造方法在调用对象方法时被调用 D、构造方法在使用对象的变量时被调用 答案: B 【答案说明】 调用构造方法创建对象 构造方法的作用是为对象中的属性赋值,在创建对象时,构造方法就会被调用。 13、 如果类的成员被( )访问控制符来修饰,则这个成员只能被该类的其它成员访问,其它类无法直接访问。 2分 A、private B、default C、protected D、public 答案: A 【答案说明】 如果类的成员被private访问控制符来修饰,则这个成员只能被该类的其它成员访问,其它类无法直接访问。类的良好封装就是通过private关键字来实现的。 14、 当成员变量和局部变量重名时,若想在方法内使用成员变量,那么需要使用下列选项中的哪一个关键字( ) 2分 A、super B、import C、this D、return 答案: C 【答案说明】 当成员变量和局部变量重名时,若想在方法内使用成员变量,只能使用this获得成员变量。 15、 为了能让外界访问私有属性,需要提供一些使用( )关键字修饰的公有方法。 2分 A、void B、default C、private D、public 答案: D 【答案说明】 私有属性只能在它所在类中被访问,为了能让外界访问私有属性,需要提供一些使用public修饰的公有方法。 16、 下列选项中,不属于面向对象特征的是( ) 2分 A、继承性 B、封装性 C、跨平台性 D、多态性 答案: C 【答案说明】 面向对象有三种特性,分别是封装性、继承性和多态性。跨平台性是Java语言的特点,而不是面向对象的特征。 17、 Java提供了4种访问级别,以下控制级别由小到大依次列出正确的是() 2分 A、private、default、protected public B、default、private、protected public C、protected、default、private、public D、protected、private、default、public 答案: A 【答案说明】 暂无 18、 下面关于重载的描述,错误的是() 2分 A、构造方法不能重载 B、重载要求方法名相同,参数列表不同 C、方法重载发生在一个类的内部 D、方法的返回值类型不是区分方法重载的条件 答案: A 【答案说明】 暂无解析 19、 下列关于类与对象的说法中,错误的是( ) 2分 A、类是对某一类事物的抽象描述,而对象则是该类事物的个体。 B、对象是类的实例化。 C、类用于描述多个对象的共同特征,它是对象的模板。 D、类与对象没有什么实际关系。 答案: D 【答案说明】 对象是通过类来创建的。 20、 下列关于类和对象的描述,错误的是( ) 2分 A、对象是类的实例 B、一个类只能有一个实例化对象 C、类是对象的抽象 D、类用于描述一组对象的共同特征和行为 答案: B 【答案说明】 类是对象的模板,对象是类的实例,一个类可以创建多个对象。 21、 下面哪个关键字用于将类中的属性私有化( ) 2分 A、default B、public C、private D、protected 答案: C 【答案说明】 将类中的属性私有化,即使用private关键字来修饰。 22、 阅读下面的代码 class Demo{ Demo(){} } 下列构造方法中,哪个构造方法可以存在上述Demo类中?( ) 2分 A、public Demo(){}; B、private Demo(){}; C、Demo(int age){}; D、String name(){}; 答案: C 【答案说明】 暂无 23、 下列关于成员变量默认值的描述中,错误的是( ) 2分 A、byte类型的数据默认值是0 B、int类型的数据默认值是0 C、long类型的数据默认值是0 D、float类型的数据默认值是0.0f 答案: C 【答案说明】 在实例化对象时 ,Java虚拟机会自动为成员变量进行初始化,针对不同类型的成员变量,Java虚拟机会赋予不同的初始值,其中 long类型的数据默认值是0L,而不是0。 24、 以下关于类的描述中,错误的是( ) 2分 A、在面向对象的思想中最核心就是对象,为了在程序中创建对象,首先需要定义一个类 B、定义类的关键字是Interface C、类中的方法叫成员方法,成员方法又分为实例方法与类方法 D、类中的属性叫成员属性,成员属性又分为实例属性与类属性 答案: B 【答案说明】 定义类的关键字是class。 25、 阅读下列的程序 class Person{ static{ System.out.println(“static”); } Person(){ System.out.println(“构造”); } } class Demo{ public static void main(String[] args){ Person p = new Person(); } } 下列选项中,程序的运行结果是() 2分 A、构造 B、 static 构造 C、static D、没有输出结果 答案: B 【答案说明】 静态代码块优先于构造方法运行。 26、 在Java语言中,String类型的成员变量的默认初始值是( ) 2分 A、false B、true C、0 D、null 答案: D 【答案说明】 String类型属于引用类型,引用类型的默认初始值为null。 27、 下列关于构造方法的描述中,错误的是( ) 2分 A、构造方法的方法名必须和类名一致 B、构造方法不能写返回值类型 C、构造方法可以重载 D、构造方法的访问权限必须和类的访问权限一致 答案: D 【答案说明】 构造方法权限不一定和类的访问权限一致。 28、 下列关于父类方法重写的描述中,错误的是() 2分 A、如果父类方法的访问权限是public,子类重写父类该方法时的访问权限不能是private B、子类重写父类方法时,重写的方法名、参数列表以及返回值类型必须和父类保持一致 C、如果父类的方法被final修饰,那么该方法不能被子类重写 D、子类继承父类后,可以重写父类定义的所有方法 答案: D 【答案说明】 暂无 29、 下面关于this关键字的描述中,错误的是() 2分 A、如果类的成员变量与方法中的局部变量名相同,那么可以在方法中通过this关键字调用成员变量 B、只能在构造方法中使用this调用其他的构造方法 C、在构造方法中使用this调用构造方法的语句必须是该方法的第一条执行语句,且只能出现一次 D、可以在一个类的两个构造方法中使用this互相调用 答案: D 【答案说明】 不可以在一个类的两个构造方法中使用this互相调用。 30、 下列关于构造方法定义的描述中,错误的是( ) 2分 A、方法名与类名相同 B、在方法名的前面没有返回值类型的声明 C、当定义了有参构造方法,系统默认的无参构造方法依然存在 D、在方法中不能使用return语句返回一个值 答案: C 【答案说明】 当定义了有参构造方法,系统不再提供默认的构造方法。 31、 请阅读下面的程序,选择正确的运行结果。() class Demo{ private static int x ; public static void main(String[] args){ System.out.println(x++); } } 2分 A、0 B、1 C、无结果 D、编译失败 答案: A 【答案说明】 输出结果为0。 32、 静态方法运行时,在哪个内存区域中( ) 2分 A、栈内存 B、堆内存 C、方法区 D、寄存器 答案: A 【答案说明】 访问运行都在栈内存。 33、 下列关于静态变量的描述中,错误的是( ) 2分 A、静态变量指的是被static修饰的变量 B、静态变量是随着类的加载而加载 C、静态变量可以被所有的实例对象共享 D、静态变量同成员变量一样,都需要通过实例对象来调用 答案: D 【答案说明】 静态变量是通过“类名.变量名”“方式调用的。 34、 下列关键字中,用于创建类的实例对象的是( ) 2分 A、class B、new C、private D、void 答案: B 【答案说明】 Java中使用new关键字创建对象,class用于定义一个类,private是权限修饰符,表示表示只能在本类中访问,void表示无返回值。 35、 下列关于面向对象的说法中,错误的是( ) 2分 A、面向对象思想编程,不仅增强代码了复用性,提供了开发效率,而且为程序的修改补充提供了便利。 B、面向对象就是分析解决问题所需要的步骤,然后用函数把这些步骤一一实现,使用的时候一个一个依次调用。 C、面向对象是把解决的问题按照一定规则划分为多个独立的对象,然后通过调用对象的方法来解决问题。 D、面向对象虽然使程序的开发效率提高了,但是程序的处理效率相对面向过程程序要低。 答案: B 【答案说明】 面向对象是把解决的问题按照一定规则划分为多个独立的对象,然后通过调用对象的方法来解决问题,具有易维护性、质量高、效率高、易扩展性等特点。 满分:30分 得分:1分 36、 重载的构造方法中,可以使用this语句互相调用。 1分 对 错 答案: 错 【答案说明】 构造方法重载,不能在一个类的两个构造方法中使用this互相调用。 37、 使用等号可以为对象赋值。 1分 对 错 答案: 错 【答案说明】 对象是不能被赋值的,只有对象中的属性才能被赋值。 38、 静态代码块中可以对静态成员变量进行赋值。 1分 对 错 答案: 对 【答案说明】 静态代码块中可以对静态成员变量进行赋值。 39、 构造方法没有返回值类型,所以可以写void,也可以不写。 1分 对 错 答案: 错 【答案说明】 构造方法不可以写返回值类型 构造方法没有返回值类型,不能写void。 40、 创建对象时,JVM会找到对应的.java文件,通过.java文件创建对象。 1分 对 错 答案: 错 【答案说明】 创建对象时,JVM会找到对应的.class文件,通过.class文件创建对象,如果没有.class文件会找到.java文件将其生成.class文件再通过.class文件创建对象。 41、 定义在类中的变量叫成员变量,定义在方法中的变量叫局部变量。 1分 对 错 答案: 对 【答案说明】 在Java中,定义在类中的变量被称为成员变量,定义在方法中的变量被称为局部变量。 42、 构造方法可以重载。 1分 对 错 答案: 对 【答案说明】 构造方法的重载,只要每个构造方法的参数类型或参数个数不同即可。 43、 static关键字可以修饰成员变量,也可以修饰局部变量。 1分 对 错 答案: 错 【答案说明】 static关键字只能修饰成员变量,不能修饰局部变量。 44、 静态变量只能在静态方法中使用。 1分 对 错 答案: 错 【答案说明】 静态变量可以被类直接调用也可以被其他静态和非静态成员调用。 静态变量可以在静态和非静态方法中使用。静态变量被所有实例共享,可以使用“类名.变量名”的形式来访问。 45、 在Java语言中,类是对某一类事物个体的具体描述。 1分 对 错 答案: 错 【答案说明】 类是对某一类事物的抽象描述、对象才是对某一类事物个体的具体描述。 46、 只能在构造方法中使用this调用其它的构造方法,不能在成员方法中使用。 1分 对 错 答案: 错 【答案说明】 setter\getter方法中可以调用this关键字。 47、 一个类中如果没有定义构造方法,那么这个类就没有构造方法。 1分 对 错 答案: 错 【答案说明】 没有定义构造方法,类中会有默认的,空参数构造方法 如果在一个类中没有定义构造方法,那么系统会自动为这个类创建一个默认的构造方法。 48、 public class Demo{ public Demo(){} public void Demo(int x){} } 上述代码中的构造方法Demo重载了。

1分 对 错 答案: 错 【答案说明】 没有重载,构造方法不能写返回值类型。 49、 静态方法可以被类名调用,也可以被对象调用。 1分 对 错 答案: 对 【答案说明】 静态方法可以被类名调用,也可以被对象调用。 50、 如果类中没有定义构造方法,则系统会自动创建默认的构造方法。 1分 对 错 答案: 对 【答案说明】 如果类中没有定义构造方法,则系统会自动创建默认的构造方法。 51、 Java允许在一个程序中定义多个同名的方法,但是参数的类型或个数必须不同,这就是方法的重载。 1分 对 错 答案: 对 【答案说明】 Java允许在一个程序中定义多个同名的方法,但是参数的类型或个数必须不同,这就是方法的重载。 52、 在一个类中可以定义多个构造方法,只要每个构造方法的参数类型或参数个数不同即可。 1分 对 错 答案: 对 【答案说明】 构造方法重载:在一个类中可以定义多个构造方法,只要每个构造方法的参数类型或参数个数不同即可。 53、 静态方法随着类的加载而加载,随着类的消失而消失。 1分 对 错 答案: 对 【答案说明】 静态方法是随着类的加载而加载,随着类的消失而消失。 54、 成员变量在整个类中有效,而局部变量只在定义它的方法内有效。 1分 对 错 答案: 对 【答案说明】 成员变量在整个类中有效,而局部变量只在定义它的方法内有效。 55、 在Java中判断方法重载的条件除了参数外,还可以通过返回值类型判断。 1分 对 错 答案: 错 【答案说明】 方法重载与返回值无关,只可以通过参数来判断。 56、 Java是一种面向对象的程序设计语言。 1分 对 错 答案: 对 【答案说明】 Java是一种面向对象的程序设计语言。 57、 Java程序中,可以使用关键字new创建新的对象。() 1分 对 错 答案: 对 【答案说明】 Java程序中,使用new关键字可以创建类的实例对象。 58、 当一个类中局部变量与成员变量同名时,“this.变量名”访问的是局部变量。 1分 对 错 答案: 错 【答案说明】 通过this关键字可以明确地去访问一个类的成员变量,解决与局部变量名称冲突问题。 59、 Java中可以通过this关键字解决成员变量与局部变量名称冲突问题。 1分 对 错 答案: 对 【答案说明】 通过this关键字可以明确地去访问一个类的成员变量,解决与局部变量名称冲突问题。 60、 protected修饰的方法,只能给子类使用。 1分 对 错 答案: 错 【答案说明】 同一包下的类也可以使用。 61、 一个类中可以定义多个同名的方法,只要他们的返回值类型不同即可。 1分 对 错 答案: 错 【答案说明】 方法的重载与返回值类型无关,只要参数列表不同即可。 62、 静态代码块不会优先于构造代码块运行。 1分 对 错 答案: 对 【答案说明】 静态代码块是随着类的加载而加载,而构造代码块是在创建对象时执行的。 63、 封装就是隐藏对象的属性和实现细节,仅对外提供公有的方法。 1分 对 错 答案: 对 【答案说明】 封装就是隐藏对象的属性和实现细节,仅对外提供公有的方法。 64、 this关键字可以在所有的方法中使用。 1分 对 错 答案: 错 【答案说明】 this关键字只能在成员方法、构造方法中使用,不能在静态方法中使用。 65、 当系统创建该类的实例时,系统自动为成员变量分配内存空间,并在分配内存空间后,自动为成员变量指定初始值。 1分 对 错 答案: 对 【答案说明】 当系统创建该类的实例时,系统自动为成员变量分配内存空间,并在分配内存空间后,自动为成员变量指定初始值。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有