- 因面向对象中Object类中toString方法不能返回对象中属性,而返回的是对象的hashcode码,所以,重写toString方法,返回对象属性
重写toString()方法
源码笔记
package com.tao.tostring_;
/**
* Create By 刘鸿涛
* 2021/12/19 18:35
*/
public class ToString {
public static void main(String[] args) {
/**
* //Object.toString()方法源码
* public String toString() {
* return getClass().getName() + "@" + Integer.toHexString(hashCode());
* }
*/
Monster monster = new Monster("小妖怪","巡山的",1000);
System.out.println(monster.toString()); //返回Object.toString()。得到十六进制的hashcode;
System.out.println("hashcode=" + monster.hashCode()); //得到原版hashcode
System.out.println(monster); //等价monster.toString();
}
}
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;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public double getSal() {
return sal;
}
public void setSal(double sal) {
this.sal = sal;
}
//重写toString方法,输出对象属性
//使用快捷键 alt + insert -> toString
@Override
public String toString() { //重写后,一般是把对象的属性值输出。当然程序员也可以自己设定
return "Monster{" +
"name='" + name + '\'' +
", job='" + job + '\'' +
", sal=" + sal +
'}';
}
}
重写前的Object.toString()方法
重写后的Object.toString()方法
这里注意一下-hashcode码
- 学习使用程序员计算器进行进制转换
- DEC:十进制
- HEX:十六进制
- OCT:八进制
- BIN:二进制