一、简介
——toString()方法在object类中,也就是说被所有的类继承,所有的类都有一个默认的toString()方法。 ——方法的作用是将对象的内容转换为字符串 ——方法的定义如下:public String toString(){
return getClass().getName() + '@' +
Integer.toHexString(hashcode());
}
返回的是:类名@java对象的内存地址,
内存地址是经过哈希算法得出的int类型值再转换成十六进制;
下面两行代码是等价的:
//Exampleclass是我们创建的类的对象引用
System.out.println(Exampleclass);
System.out.println(Exampleclass.toSting());
输出结果:
Exampleclass@372a1a
Exampleclass@372a1a
二、重写toString()方法
——概述:
在现实的开发过程中,Object中的toString方法返回的结果很多时候不能满足我们的需求,比如我们要格式化输出某些类对象的结果或一些特殊的转换功能时,默认的toString()方法就不能使用了,所有我们要重写toString()方法。
——重写注意事项
①必须被声明为public
②返回类型为String
③方法的名称必须是toString,且没有参数
④在方法体中不要使用System.out.println()方法
——代码演示:
class Chapter_02_Son {
//学生信息类
String name;
int ID;
int classId;
//重写构造方法,初始化类成员变量
Chapter_02_Son(){
this("", 0, 0);
}
Chapter_02_Son(String name, int ID,int classId ){
this.name = name;
this.ID = ID;
this.classId = classId;
}
//重写toString(),格式化输出学生信息
public String toString() {
return "name: " + name +
" ID: " + new DecimalFormat("00000").format(ID) +
" classId: " + new DecimalFormat("00").format(classId) ;
}
public static void main(String[] args) {
Chapter_02_Son student1;
student1 = new Chapter_02_Son("zhangsan", 20212, 5);
//比较打印类对象引用的两种方式
System.out.println(student1);
System.out.println(student1.toString());
}
输出结果:
name: zhangsan ID: 20212 classId: 05
name: zhangsan ID: 20212 classId: 05
输出结果告诉我们几点:
①student1和student.toString()表达式的值是一样的
②我们给classId的值是5,输出时是05,说明按照我们重写的toString()的格式输出了。