"> ');

【java学习】第五天(Object详解-断点调试)

quange 2022-4-14 279 4/14

Object详解

【java学习】第五天(Object详解-断点调试) 【java学习】第五天(Object详解-断点调试)

重写equals 方法

【java学习】第五天(Object详解-断点调试)

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 方法

【java学习】第五天(Object详解-断点调试)

toString 方法

【java学习】第五天(Object详解-断点调试)

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 版本,已经被弃用了

【java学习】第五天(Object详解-断点调试)

【java学习】第五天(Object详解-断点调试)

断点调试

【java学习】第五天(Object详解-断点调试)

【java学习】第五天(Object详解-断点调试) 【java学习】第五天(Object详解-断点调试)

 

- THE END -
最后修改:2022年4月14日
1

版权声明:
一、本站致力于为软件爱好者提供国内外软件开发技术和软件共享,着力为用户提供优资资源。
二、本站提供的所有下载文件均为网络共享资源,请于下载后的24小时内删除。如需体验更多乐趣,还请支持正版。
三、我站提供用户下载的所有内容均转自互联网。如有内容侵犯您的版权或其他利益的,请编辑邮件并加以说明发送到站长邮箱。站长会进行审查之后,情况属实的会在三个工作日内为您删除。

共有 1 条评论

  1. quange博主

    签到成功!签到时间:2022-04-14 23:04:45,每日打卡,生活更精彩哦~