Java学习-Object类

一、含义

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。
  }
}

猜你喜欢

转载自blog.csdn.net/lizengbao/article/details/86611952