Object類是所有類的父類,若沒有明確使用extends關鍵字明確表示該類繼承哪個類,那么它就默認繼承Object類,也就可以使用Object中的方法:
1.toString
如果輸出一個對象的時候,會使用Object類的toString方法,結果會輸出一個對象的哈希code碼,地址的字符串
Bridge bri=new Bridge(); System.out.println(bri);
通過重寫toString方法來輸出對象的屬性
String name="子類的名字"; int age=3; @Override public String toString() { return "Bridge [name=" + name + ", age=" + age + "]"; }
返回的是一個字符串
2.equals()方法
(1)默認的方法是比較對象的引用是否在同一地址
Bridge bri=new Bridge(); Bridge bri2=new Bridge(); if (bri.equals(bri2)) { System.out.println("倆個對象相同"); }else{ System.out.println("倆個對象不相同"); }
如果用bri==bri2是比較的倆個引用變量,所以也是比較的內存地址
(2)重寫以后可以比較倆個對象的值是否相同
public class Bridge{ public int age=3; @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Bridge other = (Bridge) obj; if (age != other.age) return false; return true; } }
public class Test { public static void main(String[] args) { Bridge bri=new Bridge(); bri.age=1; Bridge bri2=new Bridge(); bri2.age=1; if (bri.equals(bri2)) { System.out.println("倆個對象相同"); }else{ System.out.println("倆個對象不相同"); } } }
equals和==詳解見http://www.cnblogs.com/zhxhdean/archive/2011/03/25/1995431.html