初学Java,toString

来源:互联网 发布:mac 邮件登录企业邮箱 编辑:程序博客网 时间:2024/05/20 04:49

C#里面也有个ToString,注意大小写的不同

Java的toString的和C#的ToString完全不是同一概念,首先toString是一个"自我描述"的方法,然后它可以被重写

[java] view plain copy print?
  1. public class Person    
  2. {  
  3.     private String name;  
  4.     public Person(String name)  
  5.     {  
  6.         this.name = name;  
  7.     }  
  8.     public void info()  
  9.     {  
  10.         System.out.println("此人名为: " + name);  
  11.     }  
  12. }  
  13.   
  14. public class PrintObject   
  15. {  
  16.     public static void main(String[] args)   
  17.     {  
  18.         Person p = new Person("孙悟空");  
  19.         System.out.println(p);  
  20.     }  
  21. }  

这里面println(p)默认调用了toString方法,和println(p.toString())是等同的效果

最后打印出的结果为Person@9945ce,@后面16进制数可能发生改变.这个toString方法是由Object类提供的,它返回的是类名+@+hashCode 值.

最后如果需要自定义toString的内容,就必须重写该方法

[java] view plain copy print?
  1. public class  Apple  
  2. {  
  3.     private String color;  
  4.     private double weight;  
  5.     public Apple(){}  
  6.     public Apple(String color,double weight)  
  7.     {  
  8.         this.color = color;  
  9.         this.weight = weight;  
  10.     }  
  11.         public String toString()  
  12.     {  
  13.         return "一个苹果,颜色是: " + color + ", 重量是: " + weight;  
  14.     }  
  15. }  
  16.   
  17. public class TestToString    
  18. {  
  19.     public static void main(String[] args)   
  20.     {  
  21.         Apple a = new Apple("红色",5.68);  
  22.         System.out.println(a);  
  23.     }  
  24. }  

输出结果: 一个苹果,颜色是:红色,重量是:5.68

toString的格式可以改为如下更清晰的格式

类名[属性 1=值 1, 属性 2 = 值 2,...] 

[java] view plain copy print?
  1. public String toString()  
  2. {  
  3.        return "Apple[color=" + color + ",weight=" + weight + "]";  

0 0
原创粉丝点击