javaSE习题答案及解析

javaSE习题答案及解析

选择题

  1. 执行代码 int i=6,j=8,k=10,m=7; if(i < j | m > ++k) k++; 后,k的值是多少

    “|”运算符:不论运算符左侧为true还是false,右侧语句都会进行判断.理解这个就会很简单了 答案:12
    
  2. 给出下面代码的运行结果( )
    class Example{
    public static void main(String args[]){
    StringBuffer sb1=new StringBuffer(“String”);
    StringBuffer sb2=new StringBuffer(“String”);
    if(!sb1.equals(sb2)){
    System.out.println(“False”);
    }else{
    System.out.println(“True”);
    }
    }

    答:在String中,实现了.equeal方法,所以比较的内容,而StringBuffer没有,还是进行地址的比较,所以才会答案是 :False
    
  3. public static void main(String[] args) {
    String str=null;
    str.concat(“abc”);
    str.concat(“def”);
    System.out.println(str);
    }

    	String str=null;/*不能调用方法
    concat:将指定字符串连接到此字符串的结尾。如果参数字符串的长度为 0,则返回此 String 对象。否则,创建一个新的 String 对象,用来表示由此 String,对象表示的字符序列和参数字符串表示的字符序列连接而成的字符序列。  
    
  4. public static void main(String []args){
    String s1=“mama”;
    String s2=",I miss you!";
    s1=s1.toUpperCase();
    s2.toLowerCase();
    System.out.println(s1+s2);
    }

    toLowerCase() 方法可以将字符串中的所有字符全部转换成小写,而非字母的字符不受影响
    

toUpperCase() 则将字符串中的所有字符全部转换成大写,而非字母的字符不受影响。

  1. public class Test{
    public static void main(String[] args){
    int[] ary = new int[5]{1,2,3,4,5};
    System.out.println(ary[4]);
    }
    }

    	int [] arr = new int [6];
    	int [] x = {1,2,3,4};
    	int [] y = new int [] {1,2,3,4,5};
    	因为数组创建错误,所以编译出错
    
  2. 下列说法不正确的是( C )
    A)Double是引用数据类型
    B)char是基本数据类型
    C)String是基本数据类型
    D)double是基本数据类型

    基本数据类型包括byte、int、char、long、float、double、boolean和short。 
    
  3. 编译和运行以下程序会有什么结果(“abcxyzabc” )
    class Test{
    public static void main(String args[ ]){
    String s1 = “abc”;
    String s2 = “abc”;
    s1 += “xyz”;
    s2.concat(“pqr”) ;
    s1.toUpperCase() ;
    System.out.println(s1 + s2) ;
    }
    }

    因为String是被final修饰的,定义的东西不可以被修改,在s2.concat("pqr")中就是无效的了
    
  4. 关于抽象类的说法正确的是( )
    A、抽象类中一定包含抽象方法,否则是错误。
    B、包含抽象类方法的类一定是抽象类。
    C、抽象方法可以没有方法体,也可以有方法体。

     /**不可以有方法体
    

    D、抽象类的子类一定不是抽象类。

    如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。
    

简答题

  1. 简述面向对象的三大特征之一:封装?

面向对象的封装就是把描述一个对象的属性和行为的代码封装在一个“模块”中,也就是一个类中,属性用变量定义,行为用方法进行定义,方法可以直接访问同一个对象中的属性。将一个类中的成员变量全部定义成私有的,只有这个类自己的方法才可以访问到这些成员变量,这就基本上实现对象的封装.把握一个原则:把对同一事物进行操作的方法和相关的方法放在同一个类中,把方法和它操作的数据放在同一个类中。

  1. 简述面向对象的三大特征之一:继承?

在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并可以加入若干新的内容,或修改原来的方法使之更适合特殊的需要,这就是继承。继承是子类自动共享父类数据和方法的机制,这是类之间的一种关系,提高了软件的可重用性和可扩展性。

  1. 简述面向对象的三大特征之一:多态?

多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。多态性增强了软件的灵活性和扩展性。

你可能感兴趣的:(编程,习题)