Object类

一、object类是所有类的父类

例:
class person extends Object{//person类继承了Objext类,但是在正常情况下,可以默认不写extends Object
	public String name;
	public int age;
}

class student extends person{
	public String class;//student类继承了person类的属性。
}

二、toString()方法

toString()方法:把对象以字符串的形式打印,打印的是对象的内存地址。
object类中的toString()源码:
public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
在打印对象的引用时,默认调用这个对象的toString()
public static void main(String[] args) {
		Person p1=new Person("张三",18);
		System.out.println(p1);
		System.out.println(p1.toString());//这两个输出的结果是一样的,都是p1在内存中的地址。
}
如果打印对象时想要显示对象的基本信息,需要去对应类中重写toString(),因为子类对象调用的是子类中重写的方法。
例:
class person extends Object{//person类继承了Objext类,但是在正常情况下,可以默认不写extends Object
	public String name;
	public int age;
	@Override
	public String toString() {
	return "Person [name=" + name + ", age=" + age + "]";
	}
}
public class ObjectDemo extends Object{
	public static void main(String[] args) {
		Person p=new Person("张三",18);
		System.out.println(p1.toString());//输出Person [name=张三 , age=18]
	}
}

三、object类中的equals()方法

equals()方法:比较对象是否相等。
object类中的equals()源码:
public boolean equals(Object obj) {
        return (this == obj);
}

根据源码可知,在object类中的equals()方法就是==。

当使用equals()时比较的还是这个对象的地址
public static void main(String[] args) {
		Person p1=new Person("张三",18);
		Person p2=new Person("张三",18);
		System.out.println(p1==p2);
		System.out.println(p1.equals(p2));//这两个输出的结果都是false,因为比较的是p1和p2在内存中的地址。
}
可以重写equal()方法来达到自己想要的效果
例:
class person extends Object{//person类继承了Objext类,但是在正常情况下,可以默认不写extends Object
	public String name;
	public int age;
	@Override
	public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
		return (this.id == ((Person)obj).id &&this.name.equals(((Person)obj).name)));
	}
}
public class ObjectDemo extends Object{
	public static void main(String[] args) {
		Person p=new Person("张三",18);
		Person p2=new Person("张三",18);
		System.out.println(p1==p2);//false
		System.out.println(p1.equals(p2));//true
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值