本帖最后由 李天甲 于 2012-6-6 08:59 编辑
这个代码里面隐含了一点东西,就是为什么输出的值是1而不是2呢?
大家都觉得finally里面的东西都会执行,代码给了我们错觉,让我们觉得执行到x=1之后输出的值是1就不再执行++x了.
这是因为用的是int 类型的缘故,如果要是类型的话,返回的代码铁定是被finally修改之后的.呵呵..
上代码....- class Test {
- public static void main(String[] args) {
- System.out.println(test().getName());
- }
- static Person test() {
- Person p=new Person("张三");
- try {
- System.out.println("之前输出");
- return p;
- } finally {
- p.setName("超级张三");
- System.out.println("执行了");
- }
- }
- }
复制代码- class Person{
- String name;
- Person(String name) {
- this.name = name;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- }
复制代码 插入代码怎么突然没格式了... |