返回线有什么作用?

时间:2014-06-21 18:25:26

标签: java return this

我有Estado课程,如:

public class Estado implements Comparable {
    public int x;
    public int y;
    .
    .
    .


    public boolean equals(Object x) {
        Estado e = (Estado) x;
        return this.x==e.x && this.y==e.y;
    }
}

该行

  

返回this.x == e.x&& this.y == e.y;

办?

1 个答案:

答案 0 :(得分:3)

return ...;表示"评估...并退出该函数,使得结果值成为函数的返回值。"

所以让我们分解一下:

this.x==e.x

==equality operator。该行检查以查看this.x是否等于e.x(并且this.y==e.yy s执行相同操作。

让我们调用x支票xResult的结果以及y支票yResult的结果。

接下来,我们有&&

xResult && yResult

&&是一个布尔值" AND"运算符(规范称之为"Conditional-And operator"):如果它的两个操作数都是true,则true false如果其中任何一个是false true }。

因此,如果两个条件都为真,函数将返回false,如果任一条件为假,则返回Estado e = (Estado) x;


旁注:正如chrylis在评论中指出的那样,该函数可以另一种方式终止:称为exception的东西。函数的第一行Estado可能会"抛出" (cause)如果传递给函数的参数确实引用了一个对象,但该对象不是(Estado)x对象(因此" cast" null是无效);如果传递给函数的参数是return(没有引用任何对象),那么您询问的行可能会抛出异常。在函数内抛出异常而不是"捕获"通过函数中的代码,函数停止运行,但不是通过{{1}}语句。