一起Talk Android吧(第八十二回:Java中的超级类-Object之toString)

各位看官们,大家好,上一回中咱们说的是Java中的超级类-Object之hashCode的例子,这一回咱们继续说的是Object之toString。闲话休提,言归正转。让我们一起Talk Android吧!

看官们,我们在前面章回中提到了超级类提供的三大方法,这一回中我们详细介绍第三大方法:toString

看官们toString()方法用来返回对象的信息。Object类的toString方法默认返回类名@散列码。只有一个类名和散列码,这点信息对于一个类来说少的可怜。通常情况还应该输出类中成员变量的数值。要得到该结果,我们只能重写该方法。重写的原则是让它返回字符串,字符串的内容为:类名[成员名=值,....]。下面是示例代码,请参考:

        @Override
        public String toString() {
            // TODO Auto-generated method stub
            String className = this.getClass().getName();
            return className+"[mIntValue: "+mIntValue+" mStrValue: "+mStrValue+" ]";
        }

在上面的代码中,我们使用this.getClass().getName()来获取当前类的名字。另外,代码中mIntValue和mStrValue是自定义类中的两个成员变量,我们把这两个变量的数值和类名组合成字符串,该字符串就是toString方法的返回值。

看官们,我们在实际项目中经常使用该方法,只是感觉不到而已,比如在调试语句中使用“+自定义对象”时就会调用该方法。当然了也可显式地去使用它:obj.toString()。接下来我们举个例子来看看,重写该方法的重要性,下面是示例代码,请参考:

        int [] array1 = new int [] {1,2,3};
        int [] array2 = new int [] {1,2,3};
        //使用Object类默认的方法来输出两个数组的信息
        System.out.println("array1 = "+array1.toString());
        System.out.println("array2 = "+array2.toString());

        //使用Arrays类中重写的方法来输出两个数组的信息
        System.out.println("array1 = "+Arrays.toString(array1));
        System.out.println("array2 = "+Arrays.toString(array2));

下面是程序的运行结果,请大家参考:

array1 = [I@1db9742
array2 = [I@106d69c
array1 = [1, 2, 3]
array2 = [1, 2, 3]

从该结果中可以看到,使用Object类默认的方法来输出两个数组的信息时,得到的字符串内容是类名@散列码,我们从中得到的信息量太少。而使用Arrays类中重写的方法来输出两个数组的信息时,得到的字符串内容是数组名和该数组中的每个元素,我们从中可以得到数组中全部成员的信息,这样的信息对我们来说用处更大。

各位看官,关于Java中的超级类-Object之toString的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!


猜你喜欢

转载自blog.csdn.net/talk_8/article/details/80831233
今日推荐