Java深入讲解Object类常用方法的使用攻略
介绍
在Java中,所有的类都默认继承自Object类,Object类是Java中非常重要的一个类。Object类中拥有很多方法,本攻略主要介绍Object类常用方法的使用。
常用方法列表
下面列举了Object类中的常用方法:
equals(Object obj)
:判断对象是否相等。toString()
:将对象转换成字符串。hashCode()
:获取对象的哈希码值。getClass()
:获取对象的类。clone()
:复制一个对象。finalize()
:垃圾回收机制调用的方法,用于在对象被回收之前执行必要的清理工作。notify()
:唤醒在此对象监视器上等待的单个线程。notifyAll()
:唤醒在此对象监视器上等待的所有线程。wait()
:在此对象上等待。wait(long timeout)
:在此对象上等待指定毫秒数。wait(long timeout, int nanos)
:在此对象上等待指定毫秒数加上指定纳秒数。
equals()方法
equals(Object obj)
方法是用来判断两个对象是否相等的。该方法的默认实现是比较两个对象的引用是否相等。如果想要比较两个对象的内容是否相等,需要重写该方法。
示例代码:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object obj) {
if (obj instanceof Person) {
Person otherPerson = (Person) obj;
return this.name.equals(otherPerson.name) && this.age == otherPerson.age;
}
return false;
}
}
上述代码中,我们重写了equals(Object obj)
方法,以判断两个Person对象是否相等。在该方法中,我们首先判断传入的对象是否属于Person类,然后比较两个对象的成员变量是否相等。
hashCode()方法
hashCode()
方法是获取对象的哈希码值。哈希码值可以用于快速查找对象。Object类中的hashCode()
方法的默认实现是返回对象的内存地址。如果想要使用对象的内容来计算哈希码值,则需要重写hashCode()
方法。
示例代码:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (obj instanceof Person) {
Person otherPerson = (Person) obj;
return this.name.equals(otherPerson.name) && this.age == otherPerson.age;
}
return false;
}
}
上述代码中,我们重写了hashCode()
方法。在该方法中,我们使用成员变量name
和age
来计算哈希码值。在计算哈希码值时,我们使用了常量31
作为乘数,这个乘数是一个质数,并且越大,哈希冲突的概率越小。
总结
本攻略介绍了Object类常用方法的使用。在使用Object类的方法时,一定要注意区分默认实现和重写实现。特别是equals(Object obj)
方法和hashCode()
方法,在实现时需要慎重考虑。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java深入讲解Object类常用方法的使用 - Python技术站