各位看官们,大家好,上一回中咱们说的是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
的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!