Java学习之toString方法

目录

toString方法的功能

Object类的toString方法

源代码

子类没有重写的案例

 子类重写toString

使用Alt+Insert自动重写

输出结果

 最后一条

 例子


toString方法的功能

返回该对象的字符串表示。默认返回:全类名(包名+类名)+@+哈希值的十六进制(哈希值就是通过hashCode方法得到的一个整数)

Object类的toString方法

源代码

/*
    Object类中toString方法的源码
    //getClass().getName() 类的全类名
    //Integer.toHexString(hashCode()):把对象的hashCode值转换成十六进制
    public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }
     */

子类没有重写的案例
 

package com.hspedu.object_;

public class ToString {
    public static void main(String[] args) {
        /*
    Object类中toString方法的源码
    //getClass().getName() 类的全类名
    //Integer.toHexString(hashCode()):把对象的hashCode值转换成十六进制
    public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }
     */
        Monster monster = new Monster("小钻风", "巡山", 4500);
        //调用这个对象的toString方法,
        // 此时在子类-Monster中并没有重写toString方法,所以调用的是Object类的toString方法
        //返回:com.hspedu.object_.Monster@4eec7777
        //com.hspedu.object_.Monster为全类名
        //4eec7777为monster的hashCode值的1324119927十六进制
        System.out.println(monster.toString());
        System.out.println(monster.hashCode());//输出1324119927(十进制)
    }

}
class Monster{
    private String name;
    private String job;
    private double sal;

    public Monster(String name, String job, double sal) {
        this.name = name;
        this.job = job;
        this.sal = sal;
    }
}

 子类重写toString

使用Alt+Insert自动重写

重写之后可以打印出对象的属性

    @Override
    public String toString() {//shuchu
        return "Monster{" +
                "name='" + name + '\'' +
                ", job='" + job + '\'' +
                ", sal=" + sal +
                '}';
    }
子类重写toString之后,再调用时,根据运行类型,就会首先调用子类的toString方法

输出结果

 最后一条

当直接输出一个对象时,toString方法会被默认的调用

 例子

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值