白小白的日志

一个菜鸡的心酸之路....

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

13.Object类

:是java所有类的基类。

构造方法:可以直接实例化

Object();

1.toString();返回对象的字符串表示形式:让在控制台的打印的可以看懂

复制代码
class Person {
    String name;
    int age;
    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
////等于下列字符串
getClass().getName() + '@' + Integer.toHexString(hashCode())
复制代码

2.equals(Object obj) 指示一些其他对象是否等于此

复制代码
public boolean equals(Object obj) {
     return (this == obj);
 }
//Object 类下面的方法比较的是两个对象的地址。不看内容
//String 类下面的equals比较的是内容,重写了Object的eqalus方法
package com.homework;

import java.util.Objects;

class Person {
    private String name;
    private int age;
    //有参构造

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    //重写equals方法
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Person person = (Person) o;
        return age == person.age && Objects.equals(name, person.name);
    }
//无论何时重写equals方法,通常需要重写`hashCode`方法,以便维护hashCode`方法的通用合同,该方法规定相等的对象必须具有相等的哈希码
    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }

    //tostring

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    //getset

    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 class Demo1 {
    public static void main(String[] args) {
    Person person1 = new Person("小白" ,18);
    Person person2 = new Person("小白" ,18);
        System.out.println(person1.equals(person2));//true
    }
}
复制代码

3.int hashCode(); 在2中得到了实现

 

posted on   白小白的日志  阅读(23)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示