一、前言
本文将讲述有关于Object类相关知识点
二、概述
1.API帮助文档
Object类所在包是java.lang包,Object 是类层次结构的根,每个类都可以将 Object 作为超类。所有类都直接或者间接的继承自该类;换句话说,该类所具备的方法,其他所有类都继承了。
2.使用方法
一般情况下我们很少去主动的创建Object类的对象,调用其对应的方法;更多的是创建Object类的某个子类对象,然后通过子类对象调用Object类中的方法
三、常用方法
1.toString方法
1️⃣格式
public String toString()
2️⃣实例
这里我们构造一个Person类,在测试类的main方法中去创建Person对象,然后调用该对象的toString方法获取该对象的字符串表现形式,并将结果进行输出
Person类
public class Person { String name; String sex; int age; public Person() { } public Person(String name, String sex, int age) { this.name = name; this.sex = sex; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
test类
public class test { public static void main(String[] args) { Person p = new Person("张三","男",20); String person1 = p.toString(); System.out.println(person1); } }
输出结果
TestToString.Person@4554617c
3️⃣源码阅读
这里输出的是地址值,而这与toString的源码有关系。我们选中toString后Ctrl+B跟进查看一下源码,发现底层源码的逻辑就是输出地址值,那么要输出成员变量的字符串形式要进行其它操作
4️⃣快捷键重写方法
- 在Person类的空白处(建议在成员属性下方空白处)使用Alt+Insert快捷键,点击toString
- 选中所有的属性后点击确定
- IDEA自动重写toString方法
- 再运行test类查看结果
Person{name=‘张三’, sex=‘男’, age=20}
2.equals方法
1️⃣格式
public boolean equals(Object obj)
2️⃣实例
这里我们构造一个Person类,在测试类的main方法中去创建两个Person对象,然后调用该对象的equals方法获取该对象的字符串表现形式,并将结果进行输出
Person类
public class Person { String name; String sex; int age; public Person() { } public Person(String name, String sex, int age) { this.name = name; this.sex = sex; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
public class Test2 { public static void main(String[] args) { Person p1 = new Person("张三","男",20); Person p2 = new Person("张三","男",20); boolean result = p1.equals(p2); System.out.println(result); } }
false
3️⃣源码阅读
选中equals后使用快捷键Ctrl+B跟进查看源码,通过源码我们可以发现默认情况下equals方法比较的也是对象的地址值,所以我们要重写该方法,比较两个对象的属性
4️⃣重写方法
- 在空白处(建议在重写的toString方法下)使用Alt+Insert快捷键,选择equal和hashCode()
- 直接点击下一个
- equals包含字段要把三个属性都勾选上
- hashCode包含字段所有属性要取消勾选
- 点击确定后会自动重写方法,这里需要把重写hashCode方法删除
- 再运行一次,查看结果
最终结果
true
3.对象克隆
这个会在下一篇文章中具体讲述,其中包含浅克隆和深克隆以及实例解读
四、结语
接下来会细讲Object类中的对象克隆方法(深克隆和浅克隆)