01Object的方法
一、回顾 == 的使用:
== :运算符
1.可以使用在基本数据类型变量和引用数据类型变量中
2.如果比较的是基本数据类型变量:比较两个变量保存的数据是否相等。(可以数据类型不同)
int a = 10; int b = 10;
double c = 10.0;
char d = 10;
a == b == c == d 为true
如果比较的是引用数据类型变量:比较两个对象的地址值是否相同。即两个引用是否指向同一个对象实体
二、equals()方法的使用:
1.是一个方法,非运算符
2.只能适用于引用数据类型
3.Object类中equals()的定义:
public boolean equals(Object obj){
return (this == obj);
}
//说明:Object类中定义的equals()和 == 的作用是相同的:比较两个对象的地址值是否相同。即两个引用是否指向同一个实体对象
4.像String、Date、File、包装类等都重写了Object类中的equals()方法。重写以后,比较的不是两个引用的地址是否相同,而是比较的两个对象的“实体内容”是否相同。
5.通常情况下,我们自定义的类如果使用equals()的话,也通常是比较两个对象的“实体内容”是否相同。那么,我们就需要对Object类中的equals()进行重写
重写的原则:比较两个对象的实体内容(即:对象的属性)是否相同
//手动实现equals方法的重写 或者类似getset方法、构造器一样直接快速生成
@Override
public boolean equals(Object obj){
if(this == obj){
return true;
}
if(obj instanceof Customer){
Customer cust = (Customer)obj;
//比较两个对象的每个属性是否都相同
// if(this.age == cust.age && this.name.equals(cust.name)){
// return true;
// }else{
// return false;
// }
//或
return this.age == cust.age && this.name.equals(cust.name)
}else{
return false;
}
}
}
Object类中toString() 的使用
1.当我们输出一个对象的引用时,实际上就是调用当前对象的toString()
2.Object类中toString()的定义:
public String toString(){
reurn getClass.getName()+"@"+Integer.toHexString(hashCode());
}
3.像String、Date、File、包装类等都重写了Object类中的toString()方法。
使得在调用对象的toString()时,返回“实体内容”信息
4.自定义类也可以重写toString方法,调用此方法时,返回对象的“实体内容“
//自动重写 同上
@Override
public String toString(){
return "Customer[name = " + name + ",age = " + age + "]";
}

浙公网安备 33010602011771号