Java Object类的toString()方法

Java只要定义一个类,那么它都在继承,没有说明它在继承哪个类的时候,则默认继承java.lang.Object类,也就是说Object类是所有类的父类。看下面一段代码。

public class ObjectInstance{   //没有继承类则默显示继承Object类
public static void main(String[] args){
ObjectInstance o1=new ObjectInstance();
Object o2=new Object();   //因为继承了Object类,所以可以创建Object类的对象,注意Object首字母大写  
System.out.println(o1.toString());
System.out.println(o2.toString());
Person p1=new Person("张三",32);
System.out.println(p1.toString());
}
}
class Person{
String name;
int age;
Person(String name,int age){  //构造方法
this.name=name;
this.age=age;
}
public String toString(){
return "Person[name=" + this.name + ",age=" + this.age + "]"; 
}
}

上面这段代码根据需要重写了toString()方法,在Object中设计toSring()方法的目的:返回java对象的字符串表示。而在现实的开发过程中,Object里边的toString()方法已经不够用了,因为Object中的toString()方法实现的结果不太满意,Object中的toString()方法就是要被重写的。上面这段代码可以拆分来看:

public class ObjectInstance{   //没有继承类则默显示继承Object类
public static void main(String[] args){
ObjectInstance o1=new ObjectInstance();
Object o2=new Object();   //因为继承了Object类,所以可以创建Object类的对象,注意Object首字母大写  
System.out.println(o1.toString());
System.out.println(o2.toString());
}
}

这就是原始的Object类中的toString()方法,它将创建的o1,o2对象的字符串形式表示出来。接下来在创建Person类,默认继承默认继承Object类,重写toString()方法。

class Person{
String name;
int age;
Person(String name,int age){  //构造方法
this.name=name;
this.age=age;
}
public String toString(){   //重写toString()方法
return "Person[name=" + this.name + ",age=" + this.age + "]"; 
}
}

之后创建对象,并调用重写的toString()方法。代码如下:

Person p1=new Person("张三",32);
System.out.println(p1.toString());

整段代码运行后输出:

ObjectInstance@15db9742
java.lang.Object@6d06d69c
Person[name=张三,age=32]

wx搜索“程序员考拉”,专注java领域,一个伴你成长的公众号!


原文地址:https://www.cnblogs.com/naihuangbao/p/9445031.html