如何在Java中打印出返回值的字段

时间:2015-05-12 20:11:48

标签: java drjava

我想要它返回新的Dillo并打印出新Dillo的长度。当我编译代码时,它会说:错误:行System.out.println(this.length);无法访问的代码我该如何解决这个问题?谢谢

import tester.* ;

class Dillo {
    int length ;
    Boolean isDead ;

    Dillo (int length, Boolean isDead) {
      this.length = length ;
      this.isDead = isDead ;
    }

    // produces a dead Dillo one unit longer than this one
    Dillo hitWithTruck () {
      return new Dillo(this.length + 1 , true) ;
      System.out.println(this.length);
    } 
}

  class Examples {
    Examples () {} ;
    Dillo deadDillo = new Dillo (2, true) ;
    Dillo bigDillo = new Dillo (6, false) ;
 }

4 个答案:

答案 0 :(得分:3)

返回后有System.out

Dillo hitWithTruck () {
    System.out.println(this.length);
    return new Dillo(this.length + 1 , true) ;
}

答案 1 :(得分:1)

您在print语句之前返回值,因此在打印长度之前总是退出方法。编译器将此视为无法访问的代码,因为它永远不会执行。更改代码:

    // produces a dead Dillo one unit longer than this one
Dillo hitWithTruck () {
  return new Dillo(this.length + 1 , true) ;
  System.out.println(this.length);
}

为:

    // produces a dead Dillo one unit longer than this one
Dillo hitWithTruck () {
  System.out.println(this.length);
  return new Dillo(this.length + 1 , true) ;
}

答案 2 :(得分:1)

以gaston的答案为基础:

Dillo hitWithTruck () {
    Dillo d = new Dillo(this.length + 1 , true);
    System.out.println(d.length);
    return d;
}

你回来后打印出来的长度,所以你永远不会得到这个价值。如果你想打印出你要回来的Dillo的长度,你应该试试我上面的snippit。

答案 3 :(得分:0)

您的print语句永远不会被执行,因为您之前有一个return语句。

// produces a dead Dillo one unit longer than this one
    Dillo hitWithTruck () {
      System.out.println(this.length+1);
      return new Dillo(this.length + 1 , true) ;

    } 

return 语句用于显式从方法返回。也就是说,它使程序控制转移回方法的调用者。因此,它被归类为跳转声明。返回语句执行后没有任何内容。

更多信息

https://docs.oracle.com/javase/tutorial/java/javaOO/returnvalue.html