【JavaSE】toString方法基本使用

举报
兮动人 发表于 2021/11/15 00:18:21 2021/11/15
【摘要】 【JavaSE】toString方法基本使用

toString 方法

在这里插入图片描述

  1. 基本介绍
  • 默认返回:全类名+@+哈希值的十六进制,【查看 Object 的 toString 方法】
/*
	Object的toString()方法:
	(1)getClass().getName():全类名(包名+类名)
	(2)Integer.toHexString(hashCode(): 将对象的hashCode值转成16进制字符串
*/	
	public String toString() {
	return getClass().getName() + "@" + Integer.toHexString(hashCode());
	}
  • 子类往往重写 toString 方法,用于返回对象的属性信息。
  1. 重写 toString 方法,打印对象或拼接对象时,都会自动调用该对象的 toString 形式。
public class ToString_ {

    public static void main(String[] args) {

        Monster monster = new Monster("小妖怪", "巡山的", 1000);
        System.out.println(monster.toString());
        System.out.println("十进制:" + monster.hashCode());
        
    }
    
}

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 方法其实就是把对象的 hashCode 值转成 十六进制

  • 重写toString的方法,输出对象的属性值

public class ToString_ {

    public static void main(String[] args) {

        Monster monster = new Monster("小妖怪", "巡山的", 1000);
        System.out.println(monster.toString());
        System.out.println("十进制:" + monster.hashCode());
        
    }
    
}

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;
    }

    @Override
    public String toString() {//重写后,一般是把对象的属性值输出,当然也可以自己定制
        return "Monster{" +
                "name='" + name + '\'' +
                ", job='" + job + '\'' +
                ", sal=" + sal +
                '}';
    }
}

在这里插入图片描述

  1. 当直接输出一个对象时,toString 方法会被默认的调用,比如 System.out.println(monster); 就会默认调用 monster.toString();

在这里插入图片描述
在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。