equals():
boolean(返回值类型) equals(Object obj);形参传的是obj类型,不管你要比较的对象是什么,都可以定义为object的子类,用多态进行向上转型,当需要用子类独有的功能时,进行向下转型。
==当两边是基本数据类型时,比较的是是值;
==当两边是引用数据类型时,比较的是地址。
public boolean equals (object obj){
if(obj==null){
return false;
}
if(obj==this){
return true;
}
//向下转型
if(obj instanceof Person){
Person p=(Person)obj;
return this.name.equals(p.name)&&this.age==p.age; 多态(obj访问name访问不到,多态的特点父类有成功,没有失败) 因为name属性是String类型,所以需要用equals方法, 而String类型早已经被jdk写好了。
}
return false;
}
equals()方法用来比较引用数据类型的内容,但对于自己写的类成员变量的内容,需要自己重写equals()方法。
toString()方法:
String toString();返回该对象的字符串表示。
当直接打印一个对象时,默认使用toString()方法。
自己定义的类重写toString()方法:
@Override
public String toString() {
return name+"name="+age+"age=";
}
早已存在的类的toSring()重写方法:
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}