java中Object类的方法之toString 、equals

前言

这两天正在学习java常用类及方法,秉着学多少写多少,在这里分享刚刚学的内容。

Object类

Object类存储在java.lang包中,是所有java类(Object类除外)的终极父类。当然,数组也继承了Object类。我又把Object类称之为上帝类,所有的类都默认继承此类

toString方法

它的作用: 将java对象转换成字符串表达形式
默认程序中该toString类方法Object返回一个由其中的对象是一个实例。
该符号字符`的类的名称的字符串@ ”和对象的哈希码的无符号的十六进制表示。
换句话说,这个方法返回一个等于下列值的字符串:
getClass().getName() + ‘@’ + Integer.toHexString(hashCode())
一般程序都希望结果应该是一个简明扼要的表达,容易让人阅读。所以👉 建议所有子类覆盖此方法。
不废话,上代码👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇

package TestCode;
//所有类默认继承object类 其中tostring用于将java对象转换为字符串的形式输出
//需要重写tostring方法
public class OverReadToString {
    public static void main(String[] args) {
        Mytime t=new Mytime(2021,1,20);
        String a=t.toString();
        System.out.println(a);
    }
}
//定义一个类表示时间
 class Mytime{
    int year;
    int month;
    int day;

    //无参构造方法
     public Mytime() {
     }
   //有参构造方法
     public Mytime(int year, int month, int day) {
         this.year = year;
         this.month = month;
         this.day = day;
     }
     //重写toString
     @Override
     public String toString() {
         return "当前时间为:"+this.year+"年"+this.month+"月"+this.day+"日";
     }
 }

这里我们只需要修改toString 方法中的ruturn 为我们希望它输出的内容即可
结果如图

在这里插入图片描述

equals方法

在java中基本数据类型可以直接使用“==”来判断是否相等,那引用数据类型呢?所以有了equals方法
它的作用: 判断两个对象(引用数据类型)是不是相等
比如说我新建两个不同对象,但存入内容相同如👇
在这里插入图片描述
此时我想知道t1和t2是否相同,在这里不能直接用等号判断,因为等号用于判断基本数据类型,
如果使用了它就默认比较内存地址,返回值一定是不相同的,因为是两个对象,所以使用equals。
代码如👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇

package TestCode;

//object 中的equals 用于判断两个对象是否相同
//重写其中的 equals方法
public class OverReadEquals {
    public static void main(String[] args) {
        Mytime1 t1 = new Mytime1(2021,1,20);
        Mytime1 t2 = new Mytime1(2021, 1, 20);
        boolean a = t1.equals(t2);
        System.out.println(a);
    }

}
class Mytime1 {
    int year;
    int month;
    int day;

    public Mytime1() {
    }

    public Mytime1(int year, int month, int day) {
        this.year = year;
        this.month = month;
        this.day = day;
    }
    //重写equals方法
    @Override
    public boolean equals(Object obj){
        //使用instanceof判断书否有继承关系然后进行转型
        if (obj instanceof Mytime1){
            Mytime1 t3=(Mytime1)obj;
            if (this.year == t3.year && this.month==t3.month && this.day== t3.day){
                return true;
            }
        }
        return  false;
    }
}

小白提示:其中无参,有参,重写toString 都是可以非手写的 idea中 ctrl+ins键可快速生成(idea可真是一个强大的开发工具啊)
好了 目前就更新到这~~

声明

本人是刚开始自学java的小白一个,写博客作为练习java的记录,肯定还有诸多问题,评论区欢迎大家指点与讨论。
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值