3 回答

JFSL
TA貢獻(xiàn)5條經(jīng)驗(yàn) 獲得超0個(gè)贊
一般默認(rèn)情況下都是默認(rèn)對(duì)比兩個(gè)對(duì)象的地址(String對(duì)象除外,String中的equals方法重寫了,改成了對(duì)比字符串),自己也可以重寫,但必須遵循規(guī)則。

四無(wú)小青年
TA貢獻(xiàn)88條經(jīng)驗(yàn) 獲得超43個(gè)贊
不知道你所說(shuō)的equals()訪問(wèn)私有域是在哪看到的,在java中如果是普通對(duì)象,那它的equals()只是單純的使用==來(lái)比較的。
?//這是jdk1.7中的源碼 ?public?boolean?equals(Object?obj)?{ ????????return?(this?==?obj); ????}
而字符串的equals()也沒(méi)有你所說(shuō)的訪問(wèn)私有域
//這是jdk1.7中的源碼 ?public?boolean?equals(Object?anObject)?{ ????????if?(this?==?anObject)?{ ????????????return?true; ????????} ????????if?(anObject?instanceof?String)?{ ????????????String?anotherString?=?(String)?anObject; ????????????int?n?=?value.length; ????????????if?(n?==?anotherString.value.length)?{ ????????????????char?v1[]?=?value; ????????????????char?v2[]?=?anotherString.value; ????????????????int?i?=?0; ????????????????while?(n--?!=?0)?{ ????????????????????if?(v1[i]?!=?v2[i]) ????????????????????????????return?false; ????????????????????i++; ????????????????} ????????????????return?true; ????????????} ????????} ????????return?false; ????}
望采納

紛飛無(wú)悔3342058
TA貢獻(xiàn)4條經(jīng)驗(yàn) 獲得超0個(gè)贊
equals比較的是字符的hashcode()值,平常我們比較相同的時(shí)候一般都是重寫equals方法的。我不清楚你說(shuō)的私有域是什么意思,大概是private所修飾的吧,想訪問(wèn)可以通過(guò)反射來(lái)訪問(wèn),反射很強(qiáng)大的!
添加回答
舉報(bào)
0/150
提交
取消