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