深入Java万物之母Object类详情
介绍
Java中的所有类都继承自Object类并拥有它的所有方法。Object类是Java程序设计中非常重要的类,其包含的方法可以适用于所有的Java对象。本篇攻略将深入探讨Object类的细节内容。
Object类的基本方法
equals(Object obj)
equals方法是用于比较两个对象是否“相等”的方法。在Object类中,equals方法使用的是“==”操作符,即判断两个引用是否指向同一个对象。我们经常需要用equals方法来比较值相等的对象,例如:
String s1 = "Hello";
String s2 = new String("Hello");
System.out.println(s1.equals(s2)); // true
在上述示例中,s1和s2的值都是“Hello”,虽然他们不是同一个对象,但equals方法仍返回true。
hashCode()
hashCode方法返回当前对象的哈希码。哈希码可以用于将一个对象放入哈希表等数据结构中,因此hashCode方法在Java程序设计中也很常用。
toString()
toString方法将当前对象转换成一个字符串,通常用于输出调试信息。在Object类中,toString方法返回的是这个对象所属的类的名字和该对象的哈希码,例如:
String s = new String("Hello");
System.out.println(s.toString()); // java.lang.String@hashcode
getClass()
getClass方法返回当前对象所属的类的Class对象。在Java中,每个类都有一个对应的Class对象,可以用来获取类的信息,例如:
String s = new String("Hello");
System.out.println(s.getClass().getName()); // java.lang.String
示例
示例1:equals方法
下面是一个使用equals方法的示例:
class Person {
private String name;
private String id;
public Person(String name, String id) {
this.name = name;
this.id = id;
}
@Override
public boolean equals(Object obj) {
if (!(obj instanceof Person)) {
return false;
}
if (this == obj) {
return true;
}
Person p = (Person) obj;
return this.id.equals(p.id);
}
}
Person p1 = new Person("Tom", "123456");
Person p2 = new Person("Jack", "123456");
System.out.println(p1.equals(p2)); // true
在上述示例中,equals方法被重写为比较Person对象的id属性是否相等。p1和p2的id属性都是"123456",因此equals方法返回true。
示例2:toString方法
下面是一个使用toString方法的示例:
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 + "}";
}
}
Person p = new Person("Tom", 20);
System.out.println(p.toString()); // Person{name=Tom, age=20}
在上述示例中,toString方法被重写为返回一个包含Person对象属性的字符串。使用toString方法输出Person对象时,将会输出该对象的属性信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:深入Java万物之母Object类详情 - Python技术站