toString()方法是在Object类里面的方法,它返回的是String型的数据:类名+@+哈希值的16进制形式.
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
} 返回该对象的字符串表示。
toHexString(int i)方法:
以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式
Eg:
import com.hpe.bean.Student;
public class Demo2_ToString {
public static void main(String[] args) {
Student stu = new Student("liyu",22);
String str = stu.toString();
System.out.println(str);
}
结果:
我的名字是liyu年龄是22
重写toString()方法(用上述例子继续举例):
法一:(自己重写)
在Student类里面按Alt+Shift+S,点击Override,选择toString()方法
toString()方法原本形式:
public String toString() {
// TODO Auto-generated method stub
return super.toString();
}
重写后的形式:
public String toString() {
// TODO Auto-generated method stub
return "我的名字是" + name + "年龄是" + age;
}
结果:
我的名字是liyu年龄是22
法二:(使用Eclipse提供的方法重写)
在Student类里面按Alt+Shift+S,点击Generate toString(),点击ok
生成后的格式:
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}
结果:
Student [name=liyu, age=22]
tostring()方法的作用:可以更方便的显示属性值
toString()方法与getXxx()的区别
toString()方法只是显示属性值
getXxx()方法可以显示,更多的是赋值,或对数据做其它操作
直接打印对象的引用,会默认调用toString()方法
Eg:
import com.hpe.bean.Student;
public class Demo2_ToString {
public static void main(String[] args) {
Student stu = new Student("liyu",22);
//String str = stu.toString();
System.out.println(stu);
}
结果:
Student [name=liyu, age=22]
如果打印对象的引用,输出的不是类名+@+哈希值,则证明重写了toString方法
原文链接:https://blog.csdn.net/dianmomanxue/article/details/81428126