java里所有类的父类都是Object,都直接或者间接继承Object
类,toString是Object里自带的方法,在没有重写tostring的前提下,每次执行System.out.println()
这个方法默认就会调用一个继承自Object
类型对象的toString
方法,这点是非常重要的基础前提!
简单一句话就是重写toString() 可以理解为是对对象在打印输出时候的一种格式化。这样做符合业务逻辑,显示结果人性化。
object类里的toString只是把字符串的直接打印,数字的要转化成字符再打印,而对象,则直接打印该对象的hash码
新建一个对象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");//打印字符串 则直接输出字符串
}
}