当在print语句中写入方法签名时,输出是什么?

时间:2014-06-15 08:19:14

标签: java

好的,现在这太令人困惑了。我曾经记得当在print语句中写入方法签名时,它只用于打印该方法的返回值,它不打印方法本身,只是返回值被打印。而且我们不能在print语句中编写一个方法,该方法不返回任何值。

但是现在我看到它完全不同我相信当上述情况不正确时,它会发出错误。但是现在当我在print语句中编写方法时,不仅返回值而且方法中打印的值也被打印出来......这是怎么发生的?

1 个答案:

答案 0 :(得分:0)

这是预期的。这是一个例子:

private String hello() {
    System.out.println("hello");
    return "world";
}

System.out.println(hello());

那么执行这条线会发生什么?您要求代码打印String类型的表达式hello()。因此,它首先通过执行hello()来评估表达式,然后将评估结果打印到System.out。所以hello()首先被执行。

hello()做的第一件事就是将"hello"打印到System.out。这就是发生的事情。然后hello()返回"world",此返回值将打印到System.out。所以最终的结果是

hello
world

正在打印。

这不是魔术,并且方法的作用不会改变它是否被称为“在打印声明中”。如果执行了一个方法并写入System.out,那么无论调用它的方式如何,它都会写入System.out。