【java.lang.object】在Java编程语言中,`java.lang.Object` 是所有类的根类。也就是说,Java中的每一个类都直接或间接地继承自 `Object` 类。这个类位于 `java.lang` 包中,是Java语言的核心类之一,提供了许多基础方法,供其他类使用。
一、总结
`java.lang.Object` 是Java中所有类的基类,它定义了多个常用的方法,如 `toString()`、`equals()`、`hashCode()` 等。这些方法可以被子类覆盖以实现特定的行为。理解 `Object` 类的结构和方法对于掌握Java面向对象编程至关重要。
二、关键方法一览表
方法名 | 返回类型 | 说明 |
`toString()` | `String` | 返回该对象的字符串表示,默认返回类名@哈希码 |
`equals(Object obj)` | `boolean` | 判断两个对象是否相等,默认比较引用 |
`hashCode()` | `int` | 返回该对象的哈希码值,用于哈希表等数据结构 |
`getClass()` | `Class>` | 返回该对象的运行时类 |
`clone()` | `Object` | 创建并返回该对象的一个副本(需实现 `Cloneable` 接口) |
`finalize()` | `void` | 在对象被垃圾回收之前调用(已不推荐使用) |
三、使用示例
```java
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{name='" + name + "', age=" + age + "}";
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (!(obj instanceof Person)) return false;
Person person = (Person) obj;
return age == person.age && name.equals(person.name);
}
@Override
public int hashCode() {
return name.hashCode() 31 + age;
}
}
```
在这个例子中,`Person` 类继承自 `Object`,并重写了 `toString()`、`equals()` 和 `hashCode()` 方法,以提供更符合业务逻辑的比较和显示方式。
四、注意事项
- `Object` 类的方法可以被覆盖,但应遵循其设计规范。
- `equals()` 和 `hashCode()` 应当一起重写,以保证一致性。
- `finalize()` 方法在Java 9之后已被标记为过时,不建议使用。
通过了解 `java.lang.Object` 的基本结构和方法,开发者可以更好地控制对象的行为,提升代码的可读性和可维护性。