理解toString方法

本文介绍了Java中所有类都继承自Object类,因此默认拥有toString方法。在未重写toString时,打印对象会输出对象的哈希码。通过重写toString方法,可以自定义对象打印的格式,使其更具可读性。示例代码展示了如何创建一个类并展示其成员变量,通过对比重写前后toString方法的效果,强调了重写toString在输出对象信息时的重要性。
摘要由CSDN通过智能技术生成

java里所有类的父类都是Object,都直接或者间接继承Object 类,toString是Object里自带的方法,在没有重写tostring的前提下,每次执行System.out.println() 这个方法默认就会调用一个继承自Object 类型对象的toString 方法,这点是非常重要的基础前提!

简单一句话就是重写toString() 可以理解为是对对象在打印输出时候的一种格式化。这样做符合业务逻辑,显示结果人性化。

object类里的toString只是把字符串的直接打印,数字的要转化成字符再打印,而对象,则直接打印该对象的hash码

img

在这里插入图片描述

新建一个对象p,并打印打

package heima601;

public  class ToStringtest {
	private String name;
	private int age;
	
	public ToStringtest(String name,int age) {
		this.name=name;
		this.age=age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}
	
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return super.toString();//没有重写toString方法
	}
	
	public static void main(String[] args) {
		ToStringtest p=new ToStringtest("tt",3);
		System.out.println(p);
	}
}

运行结果:

在这里插入图片描述

package heima601;

public  class ToStringtest {
	private String name;
	private int age;
	
	public ToStringtest(String name,int age) {
		this.name=name;
		this.age=age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}
	
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return "我的名字叫:"+this.name+",今年"+this.age+"岁";//只改变返回类型看看效果
	}
	
	public static void main(String[] args) {
		ToStringtest p=new ToStringtest("tt",3);
		System.out.println(p);//没有重写答应对象输出hash码,
    System.out.println(1);//打印数字 先转换为字符串再输出数字
		System.out.println("ee");//打印字符串 则直接输出字符串
	}
}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值