欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java中Object类的方法之toString 、equals

程序员文章站 2022-07-05 16:42:40
前言这两天正在学习java常用类及方法,秉着学多少写多少,在这里分享刚刚学的内容。Object类Object类存储在java.lang包中,是所有java类(Object类除外)的终极父类。当然,数组也继承了Object类。我又把Object类称之为上帝类,所有的类都默认继承此类。toString方法它的作用: 将java对象转换成字符串表达形式 。默认程序中该toString类方法Object返回一个由其中的对象是一个实例。该符号字符`的类的名称的字符串@ ”和对象的哈希码的无符号的十...

前言

这两天正在学习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 为我们希望它输出的内容即可
结果如图

java中Object类的方法之toString 、equals

equals方法

在java中基本数据类型可以直接使用“==”来判断是否相等,那引用数据类型呢?所以有了equals方法
它的作用: 判断两个对象(引用数据类型)是不是相等
比如说我新建两个不同对象,但存入内容相同如????
java中Object类的方法之toString 、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的记录,肯定还有诸多问题,评论区欢迎大家指点与讨论。
java中Object类的方法之toString 、equals

本文地址:https://blog.csdn.net/dm1215104744/article/details/112908912

相关标签: java object