了解返回实例变量而没有返回它的方法

时间:2017-02-18 02:44:10

标签: java equals instance-variables

所以我只是在寻求澄清。我有一个equals方法,它能够通过传递对象的cv.ch返回实例变量而不返回它。这是怎么回事?

public static class Test {
    private int v;

    private char ch;

    public Test(int v, char ch) {

        this.v= v;

        this.ch= ch;

    }

    public boolean equals(Object o) {
        if ( this == o ) return true;
        if ( o == null || this.getClass() != o.getClass() )
            return false;
        Test cv = (Test) o; 
        if ( this.v == cv.v && this.ch == cv.ch) 
            return true; 
        return false; 

    }

}

编辑:我改述了我的问题,以便更好地理解

1 个答案:

答案 0 :(得分:0)

私有成员变量可由拥有它们的类访问,即Test。 Test中的任何代码都可以访问这些字段,无论它是通过“this”还是其他变量进行访问。

具体来说,JLS表示“[I]如果成员或构造函数被声明为私有,那么当且仅当它发生在包含声明的顶级类(第7.6节)的主体内时才允许访问成员或构造函数。“