Java学习-Object类

本文详细探讨了Java中Object类的toString()和equals()方法,包括它们的默认行为和重写后的效果。通过实例展示了如何自定义对象的字符串表示和进行属性值比较,帮助读者理解并正确使用这两个核心方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、含义

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。
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值