| Object类是一个final修饰的类,而且是Java中所有类的父类。我们定义一个类如果没有指定继承某个类,会默认继承Object类,所以Java中所有的类都会直接或间接继承Object类,都可以使用Object类中的所有公开方法。 |
|
| Object类中的方法如下 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| #### 1、toString()方法 |
|
| ```java |
| /* |
| * 关于Object类中的toString方法: |
| * SUN在Object类中设计toString方法的目的:返回java对象的字符串表示形式 |
| * |
| * 在现实的开发过程中,Object中的toString方法已经不够用了 |
| * 因为Object的toString方法实现的结果不满意 |
| * |
| * Object中的toString方法就是要重写的 |
| * SUN是这样实现toString方法的: |
| * |
| * public String toString() { |
| return getClass().getName() + "@" + Integer.toHexString(hashCode()); |
| } |
| Object中toString方法返回:包名.类名@java对象的内存地址经过哈希算法得出的int值 |
| 再转化成十六进制,这个输出结果可以等同看作Java对象 |
| 在堆中的内存地址 |
| */ |
| package rObject类; |
|
| public class Test01 { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| } |
| class Person{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| } |
| ``` |
|
|
|
| #### 2、equals()方法 |
|
| ```java |
| /* |
| * 关于Object中的equals方法 |
| * |
| * equals方法: |
| * |
| * public boolean equals(Object obj) { |
| return (this == obj); |
| } |
| o1.equals(o2):o1是this,o2是obj |
| == 两边如果是引用类型,比较的是内存地址,相同是true,反之是false |
| Object中的equals方法比较的是两个引用的内存地址 |
|
| java语言中equals方法设计的目的:判断两个的对象是否一样 |
|
| */ |
| package rObject类; |
|
| public class Test02 { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| } |
|
| class Star{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| } |
|
| ``` |
|
| Java中比较两个字符串是否相等 |
|
| ```java |
| /* |
| * 关于java语言中如何比较两个字符串是否相等 |
| * |
| * 在java中比较两个字符串是否一致不能用"==" |
| * 只能调用String类的equals方法 |
| */ |
| package rObject类; |
|
| public class Test03 { |
|
|
|
|
|
|
|
|
|
|
|
|
| } |
|
| ``` |
|
|
|
| #### 3、finalize()方法 |
|
| ```java |
| /* |
| * 关于java语言中如何比较两个字符串是否相等 |
| * |
| * 在java中比较两个字符串是否一致不能用"==" |
| * 只能调用String类的equals方法 |
| */ |
| package rObject类; |
|
| public class Test03 { |
|
|
|
|
|
|
|
|
|
|
|
|
| } |
|
| ``` |
|
|
|
| #### 4、hashCode()方法 |
|
| ```java |
| package rObject类; |
|
| import java.util.HashSet; |
|
| public class Test05 { |
|
|
|
|
|
|
|
|
|
|
|
|
|
| } |
|
| ``` |