**Object类是所有类、数组、枚举类的父类,**也就是说,Java允许把任何类型的对象赋值给Object类型的变量。任何Java对象都可以调用Object类的方法。
一.toString()方法
返回该对象的字符串表示,当程序使用System.out.println()方法输出一个对象或者把某个对象和字符串进行连接运算时,系统会自动调用该对象的toString()方法返回该对象的字符串表示
- 举个例子
char a ='b';
String objStr = obj.toString();
System.out.println(objStr);
//输出为Chapter18.DemoObject@@3ce53108
System.out.println(objStr+a);
//输出为Chapter18.DemoObject@3ce53108b
//此处+a的加号是连接符
查看Object类的toString()方法源代码`
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
发现Object类的toString()方法返回的就是getClass().getName() + “@”+16十六进制的hashCode这就是该对象的字符串表示。
注: toHexString是将整数类型转换成十六进制数,全世界公用,返回当前对象的哈希码,哈希码一般不会改变,每个对象都有唯一的hashCode,有产生相同的可能(哈希碰撞)。
Integer.toHexString(hashCode)的使用
int hashCode = obj.hashCode();
System.out.println("十六进制数"+Integer.toHexString(hashCode));
System.out.println("这个对象的hashCode->" + hashCode);
//输出为十六进制数6af62373
//hashCode->1794515827
二、toString()的使用
toString 一般用法,自定义格式并输出,这样的好处是方便我们直接观看可视化对象信息
示例代码如下:
public class bool {
public static void main(String[] args){
person22 person22 = new person22();
System.out.println(person22.toString());
} //输出为person [age= 10,name=张三]
}
class person22{
int age = 10;
String name = "张三";
@Override
public String toString() {
return "person [age= " +age+ ",name=" + name + "]";
}
}