关于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;
}
}