周末联系——>Java易错题

来源:互联网 发布:数据可视化 地图 编辑:程序博客网 时间:2024/06/05 22:53
  1. 选择输出的结果

    public static void main(String[] args) {

    String classFile = "com. xc. ". replaceAll(".", "/") + "MyClass.class";

    System.out.println(classFile);

    }

    A.com. jd

    B.com/jd/MyClass.class

    C.///////MyClass.class

    D.com.jd.MyClass

  2. package test;

    import java.util.Date;

    public class Test extends Date{

    private static final long serialVersionUID = 1L;

    private void test(){

    System.out.println(super.getClass().getName());

    }

    public static void main(String[]args){

    new Test().test();

    }

    }

    A.Test

    B.Test.class

    C.test.Test

    D.test.Test.class

  3. public class Test{

    private int a, b, c;

    public void Test() {

    a = 3;

    b = 5;

    c = a + b;

    }

    public void test() {

    System.out.println("The value of c :" + c);

    }

    public static void main(String[] args) {

    Test c = new Test();

    c.test();

    }

    }

    输出结果是什么呢?

答案:

  1. C

    由于replaceAll方法的第一个参数是一个正则表达式,而"."在正则表达式中表示任何字符,

    所以会把前面字符串的所有字符都替换成"/"。如果想替换的只是".",那么久要写成"\\."

  2. C

    Test和Date的getClass都没有重写,他们都是调用Object的getClass,而Object的getClass作用是返回的是运行时的类的名字。这个运行时的类就是当前类。要返回Date类的名字需要写super.getClass().getSuperclass()

  3. The value of c :0

    public void Test() {

    a = 3;

    b = 5;

    c = a + b;

    }这个方法不是构造函数。。。所以调用的是初始值0.。。。

喜欢的关注一波~

原创粉丝点击