toString方法

      Java对象都是Object类的实例,都可直接调用该类中定义的方法,这些方法提供了处理Java对象的通用方法。

         class person

         {

                private String name;

                public Person(String name)

                {

                       this.name=name;

                }

               public void info()

               {

                    System.out.println("此人名为:"+name);

               }

        }

        public class PrintObject

        {

                  public static void main(String args[])

                  {

                        Person p=new Person("孙悟空");

                        System.out.println(p);

                   }

         }

      运行结果:Person@18a992f

     当运行上面程序时,可能看到不同的输出结果:@符号后的6位十六进制数字可能发生改变。System.out.println方法只能在控制台输出字符串,而Person实例是一个内存中的对象,当使用该方法输出Person对象时,实际上输出的是Person对象的toString()方法的返回值。也就是说,下面两行代码的效果完全一样。

     System.out.println(p);

     System.out.println(p.toString());

     toString()方法时Object类里的一个实例方法,所有的Java类都是Object类的子类,因此所有Java对象都具有toString()方法。

     所有Java对象都可以和字符串进行连接操作,下面两行代码效果完全一样。

    String pStr=p+"";

    String pStr=p.toString()+"";

    toString()是一个非常特殊的方法,他是一个“自我描述”方法,该方法通常用于实现这样一个功能:当程序员直接打印该对象时,系统将会输出该对象的“自我描述”信息,用以告诉外界该对象具有的状态信息。

    Object类提供的toString方法总是返回该对象实现类的“类名+@+hashcode”值,这个返回值并不能真正实现“自我描述”的功能,因此如果用户需要自定义类能实现“自我描述”的功能,就必须重写Object类的toString方法。

    例如:

    class Apple

   {

        private String color;

        private double weight;

        public Apple(){ }

        public Apple(String color,double weight)

        {

             this.color=color;

             this.weight=weight;

       }

     //省略color、weight属性的setter和getter方法

     public String toString()    //重写toString方法,用于实现Apple对象的“自我描述”

     {

            return"一个苹果,颜色是:"+color+",重量是:"+weight;

     }

   }

   public class ToStringTest

   {

         public static void main(String args[])

         {

               Apple a=new Apple("红色",5.68);

               System.out.println(a);

          }

   }

   运行结果:一个苹果,颜色是:红色,重量是5.68

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值