一开始看APi文档云里雾里,这写的什么玩意啊?比如toString 的说明,什么public String toString() 下面一堆中文说明(我下的中文版1.6的API),这简直就是我不认识它,它也不认识我,视频里也许是老师觉得这玩意太简单了。也并没有详细而认真的去说,迷茫了一个月啊我是,昨天灵光一闪!还真就TM 想通 了。
拿 Java lang object 类里的equals 来举例 equals
public boolean equals(Object obj)指示其他某个对象是否与此对象“相等”。 //我们明明在一些视频里看到格式是A .equals(B),为什么
说明文档里是public boolean equals(Object obj)这么个玩意,反正一开始我真看不懂,昨天想通了也就明白了。首先object类是祖宗类,这个我已经知道了,恩,所有类都继承了老祖宗,而equals则是obj类里一个java做好的方法,所以我们就可以通过重写,来调用object类里的equals方法,也就导致了让我 一直疑惑的为啥api文档我看不懂的情况的产生?
equals 方法在非空对象引用上实现相等关系:
自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true。
对称性:对于任何非空引用值 x 和 y,当且仅当 y.equals(x) 返回 true 时,x.equals(y) 才应返回 true。
传递性:对于任何非空引用值 x、y 和 z,如果 x.equals(y) 返回 true,并且 y.equals(z) 返回 true,那么 x.equals(z) 应返回 true。
一致性:对于任何非空引用值 x 和 y,多次调用 x.equals(y) 始终返回 true 或始终返回 false,前提是对象上 equals 比较中所用的信息没有被修改。
对于任何非空引用值 x,x.equals(null) 都应返回 false。
Object 类的 equals 方法实现对象上差别可能性最大的相等关系;即,对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true(x == y 具有值 true)。
注意:当此方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode 方法的常规协定,该协定声明相等对象必须具有相等的哈希码。
参数:
obj - 要与之比较的引用对象。
返回:
如果此对象与 obj 参数相同,则返回 true;否则返回 false。
另请参见:
hashCode(), Hashtable
视频里老师经常会说,你自己去验证啊! 我去,怎么验证啊?我连敲都不会敲啊!所以说。。。。这个首先你得入门!掌握了一定的解决问题的思路和代码量,然后你才能自己去验证一个问题,不是说让你验证,你就能验证的,连怎么实现一些功能的步骤的代码你都不熟悉,都没掌握,没法验证的,得出了验证也往往不一定正确,比如我昨天验证子类调用爷爷类的指定构造函数,有一部少加了2个形参,结论就错了,所以验证问题的时候 马虎不得也是必须的 |