Object中有哪些公共方法?
在 Java 中,Object
类是所有类的根类,所有 Java 类都直接或间接地继承自 Object
类。Object
类提供了一些公共方法,这些方法可以在任何 Java 对象上调用。以下是 Object
类中定义的主要公共方法及其简要说明:
public final native Class<?> getClass()
Class
对象,它表示此 Object
的运行时类。public int hashCode()
public boolean equals(Object obj)
protected Object clone() throws CloneNotSupportedException
Cloneable
接口才能使用。public String toString()
public final void notify()
public final void notifyAll()
public final void wait() throws InterruptedException
notify()
方法或 notifyAll()
方法。public final void wait(long timeout) throws InterruptedException
notify()
方法或 notifyAll()
方法,或指定的时间已过。public final void wait(long timeout, int nanos) throws InterruptedException
notify()
方法或 notifyAll()
方法,或指定的时间已过(以纳秒为单位)。以下是一个简单的示例,展示了如何使用 Object
类的一些方法:
public class ObjectExample {
private String name;
public ObjectExample(String name) {
this.name = name;
}
@Override
public String toString() {
return "ObjectExample{name='" + name + "'}";
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
ObjectExample that = (ObjectExample) obj;
return name.equals(that.name);
}
@Override
public int hashCode() {
return name.hashCode();
}
public static void main(String[] args) {
ObjectExample obj1 = new ObjectExample("Test");
ObjectExample obj2 = new ObjectExample("Test");
System.out.println("obj1: " + obj1.toString());
System.out.println("obj1 equals obj2: " + obj1.equals(obj2));
System.out.println("obj1 hashCode: " + obj1.hashCode());
System.out.println("obj2 hashCode: " + obj2.hashCode());
}
}
Object
类提供了一些基本的方法,这些方法在 Java 编程中非常重要。理解这些方法的作用和如何重写它们是编写高质量 Java 代码的基础。