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