Java练习题3-面向对象(含解析)

  • Post author:
  • Post category:java


🥪🥪🥪各位好,我是小饼干🍪,一个编程界的小学生,每天都希望学习一点点编程相关。最近在CSDN上看到好多的小伙伴都在学java,今天我分享一些习题供大家巩固一下知识,,有些题附上我自己的一些见解,感谢各位的驻足,笔芯♥。

2、下列关于面向对象的说法中,错误的是( )

A、面向对象思想编程,不仅增强代码了复用性,提供了开发效率,而且为程序的修改补充提供了便利。


B、面向对象就是分析解决问题所需要的步骤,然后用函数把这些步骤一一实现,使用的时候一个一个依次调用。


C、面向对象是把解决的问题按照一定规则划分为多个独立的对象,然后通过调用对象的方法来解决问题。

D、面向对象虽然使程序的开发效率提高了,但是程序的处理效率相对面向过程程序要低。

3、“隐藏对象的属性和实现细节,仅对外提供公有的方法”描述的是面向对象的哪个特征( )


A、封装


B、继承

C、多态

D、以上都不是

1、以下关于成员属性与成员方法的描述中,错误的是( )


A、成员属性我们也叫成员变量,它就是描述对象的特征。它可以定义在类中,也可以定义在方法中


B、成员方法用于描述对象的行为

C、在类中定义的变量,我们称为成员变量

D、在类中定义的方法,我们称变成员方法

出现在类体中,方法之外的就是成员属性

类中可以定义成员变量和成员方法,其中成员变量用于描述对象的特征,也被称作属性,成员方法用于描述对象的行为,可简称为方法。定义在类中的变量被称为成员变量,定义在方法中的变量被称为局部变量。

2、以下关于类的描述中,错误的是( )

A、在面向对象的思想中最核心就是对象,为了在程序中创建对象,首先需要定义一个类


B、定义类的关键字是Interface


C、类中的方法叫成员方法,成员方法又分为实例方法与类方法

D、类中的属性叫成员属性,成员属性又分为实例属性与类属性

3、下列关于类和对象的描述,错误的是( )

A、对象是类的实例


B、一个类只能有一个实例化对象


C、类是对象的抽象

D、类用于描述一组对象的共同特征和行为

1、阅读下面的代码

public class Example{
        public static void main(String[] args) {
            String s1=new String("abc");
            String s2=s1.intern();
            String s3="abc";
            System.out.println(s1==s2);
            System.out.println(s2==s3);
            System.out.println(s1==s3);
        }
}

程序的输出结果是()


A、

false

true

false

B、

false

true

true

C、

false

false

true

D、

true

true

false


详细内容


inrern详解

3、阅读下面的代码:

class Person{
     void  say(){
        System.out.println("hello");
    }
}
class Example{
    public static void main(String[] args){
        Person p1 = new Person();
        Person p2 = new Person();
        p2.say();
        p1.say();
        p2=null;
        p2.say();
    }
}

下列选项中,哪个是程序的输出结果?()

A、hello

B、

hello

hello

C、hello

hello

hello


D、

hello

hello

抛出异常

1、如果类的成员被( )访问控制符来修饰,则这个成员只能被该类的其它成员访问,其它类无法直接访问。


A、private


B、default

C、protected

D、public

2、下列关于protected的说法中,正确的是()

A、protected修饰的方法,只能给子类使用

B、protected修饰的类,类中的所有方法只能给子类使用


C、如果一个类的成员被protected修饰,那么这个成员既能被同一包下的其它类访问,也能被不同包下该类的子类访问。


D、以上都不对

1、Java提供了4种访问级别,以下控制级别由小到大依次列出正确的是()


A、private、default、protected public


B、default、private、protected public

C、protected、default、private、public

D、protected、private、default、public

1、下列关于构造方法定义的描述中,错误的是( )

A、方法名与类名相同

B、在方法名的前面没有返回值类型的声明


C、当定义了有参构造方法,系统默认的无参构造方法依然存在


D、在方法中不能使用return语句返回一个值

1、下列关于构造方法的描述中,错误的是( )

A、构造方法的方法名必须和类名一致

B、构造方法不能写返回值类型

C、构造方法可以重载


D、构造方法的访问权限必须和类的访问权限一致

2、下列关于父类方法重写的描述中,错误的是()

A、如果父类方法的访问权限是public,子类重写父类该方法时的访问权限不能是private

B、子类重写父类方法时,重写的方法名、参数列表以及返回值类型必须和父类保持一致

C、如果父类的方法被final修饰,那么该方法不能被子类重写


D、子类继承父类后,可以重写父类定义的所有方法

Java中的类被finel关键字修饰 后,该类将不可以被继承,也就是不能够派生子类。

3、阅读下面的代码

class Demo{
    Demo(){}
   }

下列构造方法中,哪个构造方法可以存在上述Demo类中?( )

A、public Demo(){};

B、private Demo(){};


C、Demo(int age){};


D、String name(){};

1、下列关于多线程中的静态同步方法说法中,正确的是( )


A、静态同步方法的锁不是this,而是该方法所在类的class对象。


B、静态同步方法的锁既可以是this,也可以是该方法所在类的class对象。

C、一个类中的多个静态同步方法可以同时被多个线程执行。

D、不同类的静态同步方法被多线程访问时,线程间需要等待。

如果需要同步的方法是静态方法,静态方法不需要创建对象就可以直接使用类名.方法名()的方式访问调用,这是因为静态同步方法的锁是该方法所在类的class对象,该对象可以直接使用类名.class的方式获取。一个类的同步静态方法,同一时间只能被一个线程执行。不同类的静态同步方法,线程不需要等待。

2、下面关于重载的描述,错误的是()


A、构造方法不能重载


B、重载要求方法名相同,参数列表不同

C、方法重载发生在一个类的内部

D、方法的返回值类型不是区分方法重载的条件

3、下面关于this关键字的描述中,错误的是()

A、如果类的成员变量与方法中的局部变量名相同,那么可以在方法中通过this关键字调用成员变量

B、只能在构造方法中使用this调用其他的构造方法

C、在构造方法中使用this调用构造方法的语句必须是该方法的第一条执行语句,且只能出现一次


D、可以在一个类的两个构造方法中使用this互相调用

1、下面关于静态变量的描述,正确的是( )

A、静态变量可以定义在类中的任意位置

B、静态变量一但被赋值不能被修改


C、静态变量可以被类直接调用,因此可以说静态变量的生命周期与实例无关


D、以上都不对

2、请阅读下面的程序,选择正确的运行结果。()

class Demo{    
    private static int x ;
    public static void main(String[] args){
         System.out.println(x++); 
    } 
}


A、0


B、1

C、无结果

D、编译失败

3、下列关于静态变量的描述中,错误的是( )

A、静态变量指的是被static修饰的变量

B、静态变量是随着类的加载而加载

C、静态变量可以被所有的实例对象共享


D、静态变量同成员变量一样,都需要通过实例对象来调用

1、静态方法运行时,在哪个内存区域中( )


A、栈内存


B、堆内存

C、方法区

D、寄存器

2、

下列程序的运行结果是

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

3、下列关于静态方法的描述中,错误的是( )

A、静态方法指的是被static关键字修饰的方法

B、静态方法不占用对象的内存空间,而非静态方法占有对象的内容空间


C、静态方法内可以使用this关键字


D、静态方法内部只能访问被static修饰的成员

1、阅读下列的程序

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、没有输出结果



版权声明:本文为m0_69528918原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。