【java学习】第五天(Object详解-断点调试)
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 版本,已经被弃用了

断点调试



许可协议:
CC BY 4.0