定义:
1.Java中的所有类最终都继承于Object。
2.Object类定义了一些有用的方法,这些方法在其他类中都存在,一般是进行了重载或重写,实现了各自的具体功能。
方法:
1.equals()方法
- “==” 与 equals()的区别:
(1)" == " 是一个比较运算符,对于基本数据类型来说,比较的是值;引用数据类型则比较的是地址值
(2) equals()是一个方法,只能比较引用数据类型。重写前比较的是地址值,重写后一般是比较对象的属性。
2.为什么要重写equals()方法
Object类中的equals()方法比较的是两个对象的内存地址,对象之间比较内存地址一般是没有意义的,所以我们一般会重写equals()方法。
举例
public class Coder {
public String name;
public int age;
public Coder(){}
public Coder(String name,int age){
this.name = name;
this.age = age;
}
public boolean equals(Object obj){
//判断本类与Object是否为同一对象
if(this == obj){
return true;
}
//判断是否为null
if(null == obj){
return false;
}
//判断两者类型
if(this.getClass() != obj.getClass()){
return false;
}
//类型转换
Coder coder = (Coder) obj;
//判断数据
if(this.name.equals(coder.name) && this.age == coder.age){
return true;
}
return false;
}
public static void main(String[] args) {
Coder c1 = new Coder("R",26);
Coder c2 = new Coder("R",26);
System.out.println(c1.equals(c2)); //true
}
}
toString()方法
1.把对象以字符串形式返回
2.在打印一个对象的引用时,会打印对象的地址值,其实是打印了这个对象调用了toString方法的结果
System.out.println(test.toString());//返回的是地址值
3.重写toString() 方法,对方法体进行重新定义
public String toString(){
if(this == obj){}
return name+", "+age;
}