例子2:
1 public class Orc 2 { 3 public static class A 4 { 5 public String toString() 6 { 7 return "this is A"; 8 } 9 } 10 public static void main(String[] args) 11 { 12 A obj = new A(); 13 System.out.println(obj); 14 } 15 } //输出结果!!
例子2:
1 public class Orc 2 { 3 public static class A 4 { 5 public String getString() 6 { 7 return "this is A"; 8 } 9 } 10 public static void main(String[] args) 11 { 12 A obj = new A(); 13 System.out.println(obj); 14 System.out.println(obj.getString()); 15 } 16 }
看出区别了吗,toString的好处是在碰到“println”之类的输出方法时会自动调用,不用显式打出来。
一 概念简介
1、打印对象和toString方法:toString方法是系统将会输出该对象的“自我描述”信息,用以告诉外界对象具有的状态信息。
2、Object 类提供的toString方法总是返回该对象实现类的类名 + @ +hashCode值。
二 打印对象示例
1、程序示例
1 class Person 2 { 3 private String name; 4 public Person(String name) 5 { 6 this.name = name; 7 } 8 } 9 public class PrintObject 10 { 11 public static void main(String[] args) 12 { 13 // 创建一个Person对象,将之赋给p变量 14 Person p = new Person("林冲"); 15 // 打印p所引用的Person对象 16 System.out.println(p); 17 } 18 }
2、运行结果
Person@1db9742
3、结果分析
当使用该方法输出Person对象时,实际输出的是Person对象的toString方法。
三 重写toString方法示例
1、程序示例
1 class Apple 2 { 3 private String color; 4 private double weight; 5 public Apple(){ } 6 //提供有参数的构造器 7 public Apple(String color , double weight) 8 { 9 this.color = color; 10 this.weight = weight; 11 } 12 13 // color的setter和getter方法 14 public void setColor(String color) 15 { 16 this.color = color; 17 } 18 public String getColor() 19 { 20 return this.color; 21 } 22 23 // weight的setter和getter方法 24 public void setWeight(double weight) 25 { 26 this.weight = weight; 27 } 28 public double getWeight() 29 { 30 return this.weight; 31 } 33 // 重写toString方法,用于实现Apple对象的"自我描述" 34 public String toString() 35 { 36 return "一个苹果,颜色是:" + color 37 + ",重量是:" + weight; 38 } 39 40 // public String toString() 41 // { 42 // return "Apple[color=" + color + ",weight=" + weight + "]"; 43 // } 44 45 } 46 public class ToStringTest 47 { 48 public static void main(String[] args) 49 { 50 Apple a = new Apple("红色" , 2.38); 51 // 打印Apple对象 52 System.out.println(a); 53 } 54 }
2、运行结果
一个苹果,颜色是:红色,重量是:2.38
3、结果分析
从上面的运行结果来看,通过重写Apple类的toString方法,就可以让系统在打印Apple对象时打印出该对象的“自我描述”信息。