【JAVA】Object类所有方法的介绍(持续更新)

目录

前言

Object类

Object类方法

 To String()方法

        1.To String()方法是什么?

        2.To String()方法的实际例子

        3. to String()的实现过程

equals方法

        1. equals方法是什么

        2. equals方法的使用实例(比较对象中内容)


前言

本篇博文是我在学习Object类中方法的一些感悟和自己的总结。目前只列举了to string, equal两个方法,后续将进行持续更新。

Object类

Object类是什么?简单的说,Object类是所有类的超类(父类)。

Object类也像一个容器,可以用Object类型的变量引用任何类型的变量。 

    Object obj = new EmployeeC'Harry Hacker", 35000);

当然, Object 类型的变量只能用于作为各种值的通用持有者。要想对其中的内容进行具体的操作, 还需要清楚对象的原始类型, 并进行相应的类型转换:

    Employee e = (Employee) obj ;

Object类方法

     Object类的方法有很多,如下图所示。

 To String()方法

        1.To String()方法是什么?

  一般来说,toString方法会返回一个字符串,以“文本形式”表示当前对象。 它的返回值是以字符串的形式表示对象。

        2.To String()方法的实际例子

package demo1;

  //定义了一个Student类,并给出了其姓名,年纪和分数的初始值
class Student{   
    String name = "张三";
    int age = 18;
    double score = 81.0;

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

public class Test1 {
    public static void main(String[] args) {
        Student student = new Student();
        System.out.println(student);
    }
}

上述代码很简单,我定义了一个Student类,并给出了其姓名,年纪和分数的初始值。并实现了to string()方法。在main函数就能打印改对象,事实上是以文本的形式表示该对象。其结果如下

        3. to String()的实现过程

接下来我们就具体讲讲to String()的实现过程,怎么他就调用了子类的to String()方法呢? 且看下图分解。

 我们可以看到,在main()函数中,把new Student()的引用赋值给了student,并且传给了System.out.println()。

在println()函数中,用Obejcet 类 x接收了student对象,接着函数value of()有用Obejct类 obj接收了student对象。事实上,Obejct类 obj接收了student对象的过程发生了向上转型,子类Student重写了父类Object类中的to string()方法,最后obj.toString()的过程用父类调用了子类的toString()对象,发生了动态绑定的过程。 因此,最后实现了打印子类对象的过程。

equals方法

        1. equals方法是什么

Object 类中的 equals 方法用于检测一个对象是否等于另外一个对象。其在object类中的定义如下:

public boolean equals(Object obj) {  
    return (this == obj);  
}  

可以看到,在 Object 类中,这 个方法将判断两个对象是否具有相同的引用。如果两个对象具有相同的引用, 它们一定是相等的。

注意

在Java中,==进行比较时:

  • a.如果==左右两侧是基本类型变量,比较的是变量中值是否相同
  • b.如果==左右两侧是引用类型变量,比较的是引用变量地址是否相同
  • c.如果要比较对象中内容,必须重写Object中的equals方法,因为equals方法默认也是按照地址比较的:

        2. equals方法的使用实例(比较对象中内容)

package demo1;

  //定义了一个Student类,并给出了其姓名,年纪和分数的初始值
class Student{
    String name = "张三";

      @Override
      public boolean equals(Object obj) {   // 重写了equals方法。
          if(obj == null) {
              return false;
          }
          //指向的是同一个对象
          if(this == obj) {
              return true;
          }
          if(! (obj instanceof Student)) {
              return false;
          }
          Student student = (Student ) obj;
         if (this.name.equals(student.name)){
             return true;
         } else {
             return false;
         }
      }


}

public class Test1 {
    public static void main(String[] args) {
        Student student1 = new Student();
        Student student2 = new Student();
        System.out.println(student1.equals(student2));

    }
}

hashCode方法(后期补充)

        1. hashCode 是什么?

所谓hashCode()这个方法,他帮我算了一个具体的对象位置。他返回的是一个对象的哈希值。


版权声明:本文为m0_49425260原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。