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 { |
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
``` |