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比较内容