文章目录
一、含义
Object类是所有类的父类。
如果一个类没有使用extends关键字明确标识继承另外一个类,则默认继承Object类。
二、常用方法——toString()
2.1 未重写toString()方法时
输出对象的结果:为哈希码。即对象地址字符串。
package com.baidu;
public class People{
private String name;
public People(String name){
this.name = name;
}
public static void main(String[] args){
People p = new People("张三");
System.out.println(p);
// 结果:com.baidu.People@60ec2ea8。
}
}
2.2 重写toString()方法时
输出对象的结果:可以自定义形式。
package com.baidu;
public class People{
private String name;
public People(String name){
this.name = name;
}
@Overwrite
public String toString(){
return "People[name=" + name + "]";
}
public static void main(String[] args){
People p = new People("张三");
System.out.println(p);
// 结果:People[name=张三]。
}
}
三、常用方法——equals()
3.1 未重写equals()方法时
比较是:对象的引用是否指向同一块内存地址。
package com.baidu;
public class People{
private String name;
public People(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public static void main(String[] args){
People p1 = new People("张三");
People p2 = new People("张三");
System.out.println(p1.equals(p2));
// 结果:false。
System.out.println(p1==p2);
// 结果:false。
}
}
3.2 重写equals()方法时
比较是:对象的属性值。
package com.baidu;
public class People{
private String name;
public People(String name){
this.name = name;
}
@Overwrite
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
People other = (People) obj;
if (name != other.name)
return false;
return true;
}
public static void main(String[] args){
System.out.println(p1.equals(p2));
// 结果:true。
System.out.println(p1==p2);
// 结果:false。
}
}