关于今天笔试关于java一些基础题的疑惑

  • 关于super和this是否可以不在构造函数的第一行,第二行行不行呢?经过我刚才实验,发现不管是调用父类构造函数,还是调用平级的构造函数都必须放在第一行。也就是super和this必须放在第一行。

  • 关于 try -catch-finally代码块有return语句,那么他返回的到底是什么。

关于这儿问题是,只要有finally语句块并在其中有return语句,那么以finally块中的为准。同时因为finally块中有了return语句,那么在代码块之外就不能在有return语句了。
如果finally块中没有return语句,那么返回的return语句就不会受finally块代码的影响了。

//返回1,从调试中可以知道Finally中的赋值语句的确被执行了,而执行完这条finally语句后的下一条语句就是catch中的return语句,
//这个例子说明finally代码块中只要没有return语句就不能改变return的返回值。
 public int getString(String name) {
    int ret = 0;
    try {
        throw new Exception();
    } catch (Exception e) {
        ret = 1;
        return ret;
    } finally {
        ret = 2; // return ret;}return ret;
    }

    }
//返回"try statement"
    public String getString(String name) {
    String result;
    try {
        result = "try statement";
        return result;
    } catch (Exception e) {
        // TODO: handle exception
        result = "catch";
        return result;

    } finally {
        result = "ldf";
    }

    }
//返回ldf
    public String getString(String name) {
    String result;
    try {
        result = "try statement";
        return result;
    } catch (Exception e) {
        // TODO: handle exception
        result = "catch";
        return result;

    } finally {
        result = "ldf";
        return result;
    }

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值