方法签名:public String toString()
① 默认情况下,toString()返回的是“对象的运行时类型 @ 对象的hashCode值的十六进制形式"
② 在进行String与其它类型数据的连接操作时,自动调用toString()方法
Date now=new Date();
System.out.println(“now=”+now); //相当于
System.out.println(“now=”+now.toString());
③ 如果我们直接System.out.println(对象),默认会自动调用这个对象的toString()
因为Java的引用数据类型的变量中存储的实际上时对象的内存地址,但是Java对程序员隐藏内存地址信息,所以不能直接将内存地址显示出来,所以当你打印对象时,JVM帮你调用了对象的toString()。
④ 可以根据需要在用户自定义类型中重写toString()方法 如String 类重写了toString()方法,返回字符串的值。
s1="hello";
System.out.println(s1);//相当于System.out.println(s1.toString());
例如自定义的Person类:
public class Person {
private String name;
private int age;@Override
public String toString() {
return "Person{" + "name='" + name + '\'' + ", age=" + age + '}';
}
}
没有重写前
package chapter07_oop2_teacher.src.com.atguigu07.object.tostring; import java.io.File; import java.util.Date; /** * @author 尚硅谷-宋红康 * @create 1:04 */ public class ToStringTest { public static void main(String[] args) { User u1 = new User("Tom",12); System.out.println(u1.toString());//com.atguigu07.object.tostring.User@1b6d3586 --> User{ name = Tom, age = 12} System.out.println(u1);//com.atguigu07.object.tostring.User@1b6d3586 -> User{ name = Tom, age = 12} String s1 = new String("hello"); System.out.println(s1.toString()); File file = new File("d:\\abc.txt"); System.out.println(file); Date date = new Date(); System.out.println(date); } } class User{ String name; int age; public User() { } public User(String name, int age) { this.name = name; this.age = age; } //手动实现toString() // @Override // public String toString() { // return "User{ name = " + name + ", age = " + age + "}"; // // } // @Override // public String toString() { // return "User{" + // "name='" + name + '\'' + // ", age=" + age + // '}'; // } }
package chapter07_oop2_teacher.src.com.atguigu07.object.tostring; import java.io.File; import java.util.Date; /** * @author 尚硅谷-宋红康 * @create 1:04 */ public class ToStringTest { public static void main(String[] args) { User u1 = new User("Tom",12); System.out.println(u1.toString());//com.atguigu07.object.tostring.User@1b6d3586 --> User{ name = Tom, age = 12} System.out.println(u1);//com.atguigu07.object.tostring.User@1b6d3586 -> User{ name = Tom, age = 12} String s1 = new String("hello"); System.out.println(s1.toString()); File file = new File("d:\\abc.txt"); System.out.println(file); Date date = new Date(); System.out.println(date); } } class User{ String name; int age; public User() { } public User(String name, int age) { this.name = name; this.age = age; } //手动实现toString() // @Override // public String toString() { // return "User{ name = " + name + ", age = " + age + "}"; // // } // @Override // public String toString() { // return "User{" + // "name='" + name + '\'' + // ", age=" + age + // '}'; // } }
重写后
package chapter07_oop2_teacher.src.com.atguigu07.object.tostring; import java.io.File; import java.util.Date; /** * @author 尚硅谷-宋红康 * @create 1:04 */ public class ToStringTest { public static void main(String[] args) { User u1 = new User("Tom",12); System.out.println(u1.toString());//com.atguigu07.object.tostring.User@1b6d3586 --> User{ name = Tom, age = 12} System.out.println(u1);//com.atguigu07.object.tostring.User@1b6d3586 -> User{ name = Tom, age = 12} String s1 = new String("hello"); System.out.println(s1.toString()); File file = new File("d:\\abc.txt"); System.out.println(file); Date date = new Date(); System.out.println(date); } } class User{ String name; int age; public User() { } public User(String name, int age) { this.name = name; this.age = age; } //手动实现toString() // @Override // public String toString() { // return "User{ name = " + name + ", age = " + age + "}"; // // } @Override public String toString() { return "User{" + "name='" + name + '\'' + ", age=" + age + '}'; } }
package chapter07_oop2_teacher.src.com.atguigu07.object.tostring; import java.io.File; import java.util.Date; /** * @author 尚硅谷-宋红康 * @create 1:04 */ public class ToStringTest { public static void main(String[] args) { User u1 = new User("Tom",12); System.out.println(u1.toString());//com.atguigu07.object.tostring.User@1b6d3586 --> User{ name = Tom, age = 12} System.out.println(u1);//com.atguigu07.object.tostring.User@1b6d3586 -> User{ name = Tom, age = 12} String s1 = new String("hello"); System.out.println(s1.toString()); File file = new File("d:\\abc.txt"); System.out.println(file); Date date = new Date(); System.out.println(date); } } class User{ String name; int age; public User() { } public User(String name, int age) { this.name = name; this.age = age; } //手动实现toString() // @Override // public String toString() { // return "User{ name = " + name + ", age = " + age + "}"; // // } @Override public String toString() { return "User{" + "name='" + name + '\'' + ", age=" + age + '}'; } }