常用类-Object

Object

参考黑马程序员

概述

Object是类层次结构的根,每个类都可以将Object作为超类。所有类都直接或者间接的继承自该类

构造方法:public Object()

回想面向对象中,为什么说子类的构造方法默认访问的父类的无参构造方法?

因为它们的顶级父类只有无参构造方法。



Object类的常用方法

方法名说明
public String toString() 返回对象的字符串表示形式。建议所有子类重写该方法,自动生成
public boolean equals(Object obj) 比较对象是否相等。默认比较地址,重写可以比较内容,自动生成


代码

Student

public class Student {

   private String name;
   private int age;

   public Student() {
  }

   public Student(String name, int age) {
       this.name = name;
       this.age = age;
  }

   public String getName() {
       return name;
  }

   public void setName(String name) {
       this.name = name;
  }

   public int getAge() {
       return age;
  }

   public void setAge(int age) {
       this.age = age;
  }

   @Override
   public String toString() {
       return "Student{" +
               "name='" + name + '\'' +
               ", age=" + age +
               '}';
  }

   @Override
   public boolean equals(Object o) {
       /*
           this --- s1
           o --- s2
        */
       //比较地址是否相同,如果相同,直接返回true
       if (this == o) return true;

       //判断参数是否为null
       //判断两个对象是否来自同一个类
       if (o == null || getClass() != o.getClass()) return false;

       //向下转型
       Student student = (Student) o;//student = s2

       //比较年龄是否相同
       if (age != student.age) return false;

       //比较姓名内容是否相同
       return name != null ? name.equals(student.name) : student.name == null;
  }

}

ObjectDemo

public class ObjectDemo {
   public static void main(String[] args) {
       Student s1 = new Student();
       s1.setName("赵彦凯");
       s1.setAge(99);

       Student s2 = new Student();
       s2.setName("赵彦凯");
       s2.setAge(99);


       System.out.println(s1);
       System.out.println(s2);

       System.out.println(s1.equals(s2));
  }
}

 

posted @ 2021-03-18 09:05  i爱在西元前  阅读(335)  评论(0)    收藏  举报