Java中toString方法和equals方法的详解

toString方法的详解:

1.toString可以用作返回一个Number对象值的字符串.

  • 如果是参数是原生数据类型,返回的是原生数据类型的String类型
  • 如果方法有两个参数,返回以第二个参数为基数有第一个参数来表示的String类型.
Integer c = 1;
        System.out.println(Integer.toString(12));
        System.out.println(c.toString());

在这里插入图片描述
2.toString还可以用作数组的表示.

import java.util.Arrays;

public class ToStringDemo {
    public static void main(String[] args) {
        //子类可以重写toString
        //可以用作数组的表示
        int[] arr={1,2,5,7,8,9,6,5,4};
        System.out.println(Arrays.toString(arr));

在这里插入图片描述

3.toString可以进行重写供子类更好的使用

public class ToStringDemo {
    String name;
    int old;

    public ToStringDemo(String name,int old){
        this.name=name;
        this.old=old;
    }
    /*
    * Object是所有类的首领
    * 当输出一个对象时,会默认调用类中toString()方法,把对象以字符串形式输出
    * 类中没有toString(),那么会调用父类(object)中的toString();
    * public Stirng toString(){
    * Object类中的默认输出类的名字和对象在内存中的地址(10进制转为16进制)
    * }
    * 需要重写
    *     * */

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


    public static void main(String[] args) {
        ToStringDemo toStringDemo=new ToStringDemo("张三",20);
        System.out.println(toStringDemo);
    }
}

  • toString 本身就在Object类中存在,如果不重写的话会自动返回对象的哈斯特码值,在打印对象的时候,会自动调用toSrtring方法.在重写方法后可以实现在此类中的作用.

equal方法的详解

  • equals方法如果不在其他类中重写的话,父类中的equals比较的就是对象中的地址,起不到类似于比较字符串是否相等的作用.
public class ArraysEquals

 - List item

Demo {
    public static void main(String[] args) {
        int[] a={1,2,3};
        int[] b={1,2,3};
        System.out.println(a==b);
        System.out.println(a.equals(b));

在这里插入图片描述

  • 其中==在于比较对象时候也是比较的对象的地址.
  • 这时候的equals没有重写,还是父类Objects中的equals方法,所以还是比较两个对象之间的对象地址.
  • 但是当equals在类中被重写的时候:
public class ArraysEqualsDemo {
    public static void main(String[] args) {
        int[] a={1,2,3};
        int[] b={1,2,3};
        System.out.println(Arrays.equals(a,b));
    }
}

在这里插入图片描述
此时equals就是比较的是对象中的属性.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值