--JAVA真题及解析--

1.以下属于面向对象的特征的是()

A.重载  B.重写  C.封装  D.继承


1-解析

a)面向对象的特征有:多态、封装、继承(extends);

b)多态包括:重载和重写两种;

c)重载与重写的区别:重载是在同一个类里,方法名相同、参数列表不同(参数个数、数据类型、参数顺序不同不一样)返回类型可以相同;而重写是在子类里面重写父类的某个方法,方法返回类型、方法名及参数列表必须一样,变得只是方法体的语句(访问权限比父类要大)作用就是改写父类!本题选CD;

d)封装主要作用在于对外隐藏内部实现细节,增强程序的安全性

类的封装性即不能让外面的类随意修改一个类的成员变量; 

在定义一个类的成员,使用private关键字说明这个成员的访问权限,只能被这个类的其他成员方法调用,而不能被其他的类中的方法所调用; 

为实现封装性,常将类的成员变量声明为private,再通过public的方法来对这个变量进行访问。对一个变量的操作,一般都有 读取和赋值操作,我们一般定义两个方法来实现这两种操作,即:getxxx()与setxxx(); 

一个类就是一个模块,我们应该让模块仅仅公开必须要让外界知道的内容,而隐藏其他的一切内容。再进行程序设计时,应尽量避免一个模块直接修改或操作另一个模块的数据,模块设计追求强内聚,弱耦合

2.一下代码运行输出是()

public class Person{

private String name="Person";

int age=0;

}

public class Child extends Person{

public String grade;

public static void main(String[] args){

Person p = new Child();

System.out.println(p.age);

System.out.println(p.name);

}

}

A.输出:0 和 Person  B.没有输出 C.编译出错 D.运行出错


2-解析:本题考的是访问权限的问题:访问修饰符有public(任何类都可以访问)、protected(除了不同包的非子类都可以访问)、无访问修饰符(只能在同一个包内部可以访问)、private(只有在同一类里可以访问)

本题p.name中name是Person类的私有属性可以被继承但不可以访问,所以编译都通不过答案选C


3.在使用super和this 关键字时,一下描述正确的是()

A.在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过

B.super()和this()不一定要放在构造方法的第一行

C.this()和super()可以同时出现在一个构造仿函数中

D.this()和super()可以在static环境中使用,包括static方法和static语句块


3-解析:上面已讲的很清楚,super()和this()都必须放在第一行,要注意他们与this与super关键字的区别,this、super可以同时出现在同一个构造函数中,super.方法()和super.属性可以调用父类的所有非私有方法和非私有属性 ,super()可以调用父类的所有非私有构造函数,有疑问可以动手操作一下,答案A


4.下面代码运行结果是:()

public class Demo{

       public int add(int a,int b){

              try{

       return a+b;

}catch(Exception e){

       System.out.println(“catch语句块”);

}finally{

       System.out.println(“finally语句块”);

}

return 0;

}

public static voidmain(String[] args){

       Demo demo = new Demo();

       System.out.println(“和是:”+demo.add(9,34));

}

}

A.编译异常;   B.finally语句块 和是:43;    C.和是:43 finally语句块 ;   D.catch语句块 和是:43

4-解析:从题可知,a+b是不会抛异常的,所以就不会被catch扑捉。然后讨论就是他执行的return还是finally;

其实return a+b 在执行的时候可以分为a+b 看是否有异常,是否被catch扑捉,如果没扑捉就执行finally然后再returna+b的结果。答案是:B


5.以下程序运行结果是()

public class Test {

       publicint div(int a, int b) {

              try {

                     return a / b;

              }catch(Exception e){

                     System.out.println("Exception");

              }catch(NullPointerException e){

                     System.out.println("ArithmeticException");

              }

              catch (ArithmeticException e) {

                     System.out.println("ArithmeticException");

              } finally {

                     System.out.println("finally");

              }

              return 0;

       }

       public static void main(String[] args) {

              Test demo = new Test();

              System.out.println("商是:" + demo.div(9, 0));

       }

}

A.Exception  finally  商是:0          B.ArithmeticException   finally 商是:0       C.finally商是:0    D.编译报错


5-解析:本题考察的是catch捕获异常时排列的顺序,应从小到大一次捕获!本题答案D


       

6.根据下面的代码,

       String  s = null;

会抛出NullPointerException异常的有()。

A.if( (s!=null) & (s.length()>0) )         B.if((s!=null) && (s.length()>0))    C.if((s==null) | (s.length()==0))  D.if((s==null)||(s.length()==0))

6-解析:本题考查的是短路语(&&,||),&&第一个不满足条件后面的就不会执行;||第一个满足就不用执行后面的了;还有一个考点是空指针异常,若s=null,那么s.length()就会报空指针异常,答案是AC


7。

publicclass Testa {

    Integer a = new Integer(10);

   Integer b = new Integer(10);

   public static void main (String[ ] args){

       Testa testA = new Testa();

       if (testA.a==testA.b){

           System.out.print("很");

       }

       if (testA.a.equals(testA.b)){

           System.out.print("好");

       }

    }

}

A.很           B 好           C。很好         D.抛出NullPointerException   E。编译错误


7-解析:-------如果Integer a=127,Integer b=127,他们(==)也成立,(int 在-128到127之间)大于127或小于-128就不行,地址不也一样---------==比较的是地址-------equals比较的是地址里面的值,答案B


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶半欲缺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值