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 stubreturn super.toString();}重写后的形式:public String toString() {// TODO Auto-generated method stubreturn "我的名字是" + name + "年龄是" + age;}结果:
我的名字是liyu年龄是22
法二:(使用Eclipse提供的方法重写)
在Student类里面按Alt+Shift+S,点击Generate toString(),点击ok生成后的格式:@Overridepublic 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