再美不及姑娘你
又见西风上碧树
posts - 135,comments - 7,views - 48101

一、概述:

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

有一个构造方法 public Object()

面向对象中子类的构造方法默认访问的是父类的无参构造方法的原因就是因为最顶级的父类只有无参构造方法

二、Object类中常用的方法

1.Object类的toString方法

格式:public String toString()

返回对象的字符串表示形式:一般来说toString方法返回一个toString代表这个对象的字符串,结果应该是简明扼要的表达,容易让人阅读。所以要求所有子类重写此方法,一般采用自动重写,在子类中用alt+ins选择toString()

 //alt+ins
  @Override
  public String toString() {
      return "Student{" +
              "name='" + name + '\'' +
              ", age=" + age +
              '}';
  }
}
/*测试类
* */
public class ObjectDemo {
  public static void main(String[] args) {
      Student s=new Student();
      s.setName("张三");
      s.setAge(18);
      System.out.println(s.toString());
  }
}

image-20220321191720015

2.Object类的equals方法

用于比较两个对象的内容是否相同,默认是比较的地址值,重写后可以比较内容

比如有两个学生对象,我要判断两个对象的内容是否相同

/*测试类
* */
public class ObjectDemo {
  public static void main(String[] args) {
      Student s=new Student();
      s.setName("张三");
      s.setAge(18);
      Student s1=new Student();
      s1.setName("张三");
      s1.setAge(18);
      //判断两个对象内容是否相同
      System.out.println(s==s1);//返回false
      System.out.println(s.equals(s1));//返回false
       
  }
}

直接进行比较返回的是false,直接使用equals方法返回的也是false因为默认比较的是地址值,,所以我们要到子类中重写这个方法重写后可以比较内容,方式与toString重写相同,只不过需要把自动生成的hashCode()方法删除掉

   @Override
  public boolean equals(Object o) {
  /*
  this--s
  o--s1
  */
        if (this == o) return true;
        //判断两个参数是否为null,判断两个对象是否来自同一个类
      if (o == null || getClass() != o.getClass()) return false;
      //向下转型
      Student student = (Student) o;//student =s2
      //比较姓名内容是否相同
      return age == student.age && Objects.equals(name, student.name);
  }
 

 

posted on   再美不及姑娘你  阅读(112)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示