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

🥪🥪🥪各位好,我是小饼干🍪,一个编程界的小学生,每天都希望学习一点点编程相关。最近在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、没有输出结果

 

  • 31
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 40
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值