package com.xiao.equals;
/**
* @author 笑笑
* @Date 2018年4月12日下午10:16:09
*
*/
public class Phone {
private String name;
private double price;
//重写equals方法,比较name属性是否相等,相等返回true,不等返回false
@Override
public boolean equals(Object obj) {
//入参类型是Object类型,父类不能调用子类特有的属性或方法,需要向下转型
//并且由入参是Object类型,也就是说任何类型的参数都能进来
//这样就得先判断入参类型是否是Phone类型(还可以加非空判断、是否是自己比较自己判断等)
if(this == obj){
return true;
}
if(obj instanceof Phone){
Phone p = (Phone)obj;
return this.name == p.name;
}
return false;
}
//空参构造
public Phone(){
}
//有参构造
public Phone(String name, double price) {
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
package com.xiao.equals;
/**
* @author 笑笑
* @Date 2018年4月12日下午10:18:34
*
*/
public class Test {
public static void main(String[] args) {
Phone p1 = new Phone("大哥大",999.0);
Phone p2 = new Phone("大哥大",999.0);
//调用重写后的equals方法,p1和p2的name属性值相等,返回true
boolean b = p1.equals(p2);
//打印为true
System.out.println(b);
}
}