object类

1.Object类的概述

1.所有的类都直接或者间接的继承该类   (object)

2.Object类中的 hashCode() 方法

1.public hashCode() 

  返回该对象的哈希码值,默认情况下会根据对象的地址去计算,

  不同对象的 hashCode() 一般来说不会相同,但不同对象的 hashCode() 肯定相同

  

1 Object o = new Object();
2        int hashCode = o.hashCode();  // 查看源码的方式:ctrl + 鼠标左键
3        System.out.println(hashCode); //1163157884
4 
5        Student s = new Student("zhangsan",19);
6        Student s2 = new Student("lisi",23);
7        System.out.println(s.hashCode());
8        System.out.println(s2.hashCode());  // ctrl + alt + 向下

3.Object类的 getClass()方法

  1.public final Class getClass()

   返回此 Object 的运行类,返回类名 ,包名

4.toString()方法

  public String toString ()

  返回该对象的在字符串表示        (地址值十六进制的形式出现)

  默认数据: getClass().getName() + "@" + Integer.toString(hashCose)   

  默认数据一般对我们来说没意义,建议重写该方法

  在输出对象名时显示

5.equals()方法

  调用对象是否与输入对象”相等“

  默认情况比较的时对象的引用是否相等,但比较对象引用没意义,所以建议重写

  

1 public boolean equals(Object obj){
2     Student s = (Student)obj;//向下转型到Student类中
3     return(this.name.equals(s.name)&&this.age == s.age)
4     }

6. ==  和 equals 的区别

   ==     比较运算符,即可以比较基本数据类型,也可以比较引用数据类型,

         基本数据类型比较的是值,引用数据类型比较的是地址值

   equals   只是一个方法,只能比较引用用数据类型,所有对象都会继承Object类中的方法,

        如果没有重写Object类中的equals方法,那equals和== 的比较引用数据类型没有区别

        重写后equals方法比较的是对象中的属性

     在比较引用数据类型时 == 比较地址值   equals比较内容

  

原文地址:https://www.cnblogs.com/xsh726/p/11365168.html