其他分享
首页 > 其他分享> > 20220728-Object类常用方法

20220728-Object类常用方法

作者:互联网

目录


学习来源:《韩顺平零基础30天学会java》 P319-P327
格言:我亦无他,唯手熟尔!
方法:多练习,多总结,多交流


Object类中常用方法

equals方法

1. ==的使用

public class Equals01 {
    public static void main(String[] args) {
        System.out.println(1 == 1.0);
        A a = new A();
        A b = a;
        A c = b;
        System.out.println(a == c);
        System.out.println(b == c);
        B bObj = a;
        System.out.println(bObj == c);
        System.out.println("----------");
        String abc = new String("abc");
        String abc1 = new String("abc");
        System.out.println(abc == abc1);
    }
}
class B {}
class A extends B {}

2. equals方法的使用

public class EqualsExercise {
    public static void main(String[] args) {
        Person person = new Person("A", 10, 'g');
        Person person1 = new Person("A", 10, 'g');
        Person person2 = new Person("A", 11, 'b');
        System.out.println(person.equals(person1));
        System.out.println(person.equals(person2));
    }
}
class Person {
    private String name;
    private int age;
    private char gender;
    public Person(String name, int age, char gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj instanceof Person) {
            Person p = (Person) obj;
            return name.equals(p.name) && age == p.age && gender == p.gender;
        }
        return false;
    }
}

hashcode方法

public class HashCode_ {
    public static void main(String[] args) {
        AA aa1 = new AA();
        AA aa2 = new AA();
        System.out.println(aa1.hashCode());
        System.out.println(aa2.hashCode());
        AA aa3 = aa1;
        System.out.println(aa3.hashCode());
    }
}
class AA{}

toString方法

public class ToString {
    public static void main(String[] args) {
        Monster monster = new Monster("A", "runner", 100);
        System.out.println(monster.toString());
        System.out.println(monster.hashCode());
        System.out.println(Integer.toHexString(monster.hashCode()));
    }
}
class Monster {
    private String name;
    private String job;
    private double salary;
    public Monster(String name, String job, double salary) {
        this.name = name;
        this.job = job;
        this.salary = salary;
    }
    //重写toString方法
    //使用快捷键alt+insert选择toString,默认输出对象的属性
    //当输出一个对象时,默认调用toString方法
    @Override
    public String toString() {
        return "Monster{" + "name='" + name + '\'' + ", job='" + job + '\'' + ", salary=" + salary + '}';
    }
}

finalize方法

public class Finalize_ {
    public static void main(String[] args) throws Throwable {
        Car bwm = new Car("BWM");
        // 此时,bwm对象就是一个垃圾,垃圾回收器就会回收对象
        // 程序员可以在finalize中,写自己的业务逻辑代码(比如释放资源:数据库连接,打开文件等)
        bwm = null;
        //bwm.finalize();
        System.gc();
    }
}
class Car {
    private String name;
    public Car(String name) {
        this.name = name;
    }
    @Override
    protected void finalize() throws Throwable {
        System.out.println("我们销毁汽车"+name);
        super.finalize();
    }
}

标签:常用,String,20220728,Object,System,println,out,public,name
来源: https://www.cnblogs.com/zhanghuaze/p/16528037.html