zoukankan      html  css  js  c++  java
  • Java面向对象——Object类的使用及常用方法

    Object类是所有Java类的根父类

    如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类

    1.Object的属性和方法:

    自JDK1.0开始就是所有类的父类

     属性:无

    方法:

    • equals():比较两个对象是否相等
      • ==和equals的区别
        • ==:是个运算符。可以使用在基本数据类型变量中和引用数据类型变量中
          • 如果比较基本数据类型变量,就是比较两个变量保存的数据是否相等,且存在基本类型提升不一定要类型相同
          • 如果比较引用数据类型变量,比较两个对象的地址值是否相同,即两个引用是否指向同一个对象实体
          • 使用时,必须保证符号左右的变量类型一致
        • equals:是个方法。只能适用于引用数据类型
          • Person p1=new Person();
            Person p2=new Person();
            System.out.println(p1.equals(p2));  // false
            System.out.println(new String("aaa").equlas(new String("aaa")));  // true
          •  Object这个类中equals源码和==的作用相同,比较地址值

          • 而String这个类中的equals()方法进行了重写,此时比较的是两个对象的实体内容是否相等。其他如Date、File、包装类都重写了Object中的equals()方法
          • 如何手动重写equals方法:
            • 需求:需要比较两个对象的实体内容是否相等,需要重写Object的equals方法
            • //    构造器
                  public Person(String name,int age) {
                      this.name=name;
                      this.age=age;
                  }
              
              //    重写equals方法
                  
                  public boolean equals(Object obj) {
                      if(this==obj) {
                          return true;
                      }
                      
                      if(obj instanceof Person) {
                          Person m=(Person)obj;        // 向下转型
              //            比较两个对象的每个属性是否相同
                          return this.age==m.age && this.name.equals(m.name);
                      }
                      return false;
                  } 
            • 使用:
              Person p1=new Person("a",12);
              Person p2=new Person("a",12);
              System.out.println(p1.equals(p2));  // true
              
              Person p1=new Person("a",12);
              Person p2=new Person("b",12);
              System.out.println(p1.equals(p2));  // fals
            • 自动重写:source>Generate HashCode() and equals()...即可自动生成equals方法
            • null和所有的equals比较都是false
    • toString()
      • 输出结果是地址值(虚拟的内存地址)。即输出一个对象的引用时,实际上就是调用当前对象的toString()方法
      • 像String、Date、File、包装类等都重写了Object类中的toString()方法,使得在调用toString方法时,返回的时实体内容
      • source>Generate toString()也可以自动生成对象的toString方法
    • getClass()
    • hashCode()
    • clone()
    • finalize()
    • wait()
    • notify()/notifyAll()
  • 相关阅读:
    Core Data 入门
    iOS布局之Auto Layout
    iOS 布局之 Springs and Struts
    Soul 学习笔记---使用 nacos 实现数据同步上篇(七)
    Soul 学习笔记---使用 zookeeper 实现数据同步(六)
    Soul 学习笔记---数据同步 websocket 连接建立过程分析(五)
    Soul 学习笔记---soul 数据同步的浅显分析(四)
    Soul学习笔记---运行 soul-examples-dubbo(三)
    Soul学习笔记---运行 soul-examples-http(二)
    windows下安装zookeeper 及 遇到的问题---打开zkServer.cmd闪退,此时不应有 Javajdk1.8.0_144
  • 原文地址:https://www.cnblogs.com/codexlx/p/13538399.html
Copyright © 2011-2022 走看看