Object类
- 一、前言
- 二、概述
- 1.API帮助文档
- 2.使用方法
- 三、常用方法
- 1.toString方法
- 1️⃣格式
- 2️⃣实例
- 3️⃣源码阅读
- 4️⃣快捷键重写方法
- 2.equals方法
- 1️⃣格式
- 2️⃣实例
- 3️⃣源码阅读
- 4️⃣重写方法
- 3.对象克隆
- 四、结语
一、前言
本文将讲述有关于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类中的对象克隆方法(深克隆和浅克隆)