Java Object类

Java Object类教程

Java 语言 中所有的类都有一个公共的父类 Object,一个类只要没有显示的继承一个类,则肯定是 Object 的子类。下面的这两个语句的效果是一样的。

class 类名 extends Object{} class 类名{}

Java Object常用方法

每个类都继承了 Object,那么 Object 有以下常用的方法:

方法名称 描述
public boolean equals(Object object) 比较两个对象是否相等
public int hashCode() 取得对象的 hash 值
public String toString() 打印对象的里面的数据值

equals 主要是针对引用类型的数据比较,比较他们之间的内容是否相等。与 == 差别是,== 比较的地址,equals比较的内容。

案例

定义一个普通类

package com.haicoder.net.haistr; public class StrClass { private String name; private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } }

定义一个测试类

package com.haicoder.net.haistr; public class StringTest { public static void main(String[] args) { System.out.println("嗨客网(www.haicoder.net)\n"); StrClass strClass = new StrClass(); System.out.println("strClass : " + strClass); System.out.println("strClass.toString() : " + strClass.toString()); System.out.println(""); StrClass strClass1 = new StrClass(); System.out.println("strClass.equals(strClass1) : " + strClass.equals(strClass1)); } }

运行结果如下:

14 object.png

我们看到有 toString 和没有 toString 打印出来的结果是一样的,都将对象的地址打印出来了。equals 是对两个对象内容的比较,由于 strClass 和 strClass1 两个地址内容不一样,所以判断的结果为 0 。

Java Object总结

默认情况下,每个对象的 toString 方法打印的是对象的地址,equals 方法比较的是两个对象的地址。

因为所有的类都是 Object 的子类,所以每个对象都是有 toString 和 equals 方法的。在正式编程工作时一般都会重写类里面的 toString 方法和 equals 方法。

Object 类可以接受任意的引用数据类型,所以在很多的类库设计上面都采用 Object 作为方法的参数,这样操作起来就会比较方便。