Object详解
重写equals 方法
package com.quange.object;
public class EqualsExercise01 {
public static void main(String[] args) {
Person person1 = new Person("jack", 10, '男');
Person person2 = new Person("jack", 10, '男');
System.out.println(person1.equals(person2));
}
}
class Person{
private String name;
private int age;
private char gender;
// 重写Object 的 equals 方法
public boolean equals(Object obj){
// 判断如果比较的两个对象是同一个对象,则直接返回true
if (this == obj){
return true;
}
// 如果是Person,进行比较
if (obj instanceof Person){
// 进行向下转型,因为我需要得到obj的各个属性
Person p = (Person) obj;
return this.name.equals(p.name) && this.age == p.age && this.gender == p.gender;
}
return false;
}
public Person(String name, int age, char gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public char getGender() {
return gender;
}
public void setGender(char gender) {
this.gender = gender;
}
}
true
进程已结束,退出代码0
hashcode 方法
toString 方法
package com.quange.object;
public class ToString {
public static void main(String[] args) {
Monster monster = new Monster("逍遥客", "巡逻的", 2000);
System.out.println(monster.toString() + monster.hashCode());
System.out.println("当直接输出一个对象时,toString 方法会被默认的调");
System.out.println(monster); // 等价于 monster.toString()
}
}
class Monster{
private String name;
private String job;
private double sal;
public Monster(String name, String job, double sal) {
this.name = name;
this.job = job;
this.sal = sal;
}
// 重写toString 方法,输出对象的属性
// 使用快捷即可 alt + insert
@Override
public String toString() { // 重写后,一般是把对象的属性值输出,也可以程序员自己定制输出
return "Monster{" +
"name='" + name + '\'' +
", job='" + job + '\'' +
", sal=" + sal +
'}';
}
}
Monster{name='逍遥客', job='巡逻的', sal=2000.0}1740035246
当直接输出一个对象时,toString 方法会被默认的调
Monster{name='逍遥客', job='巡逻的', sal=2000.0}
进程已结束,退出代码0
finalize 方法
finalize 是 java.lang.object 的一个方法,它的设计目的是保证对象在被垃圾手机之前完成特定资源的回收。JDK 9 以后已经不推荐使用。
我用的jdk11 版本,已经被弃用了
断点调试
评论区