Object类九大方法之toString方法
class Apple{ private String color; private double weight; private String name; public Apple(){ } public Apple(String name){ this.name=name; } } public class ToStringTest{ public static void main(String[] args){ Apple p=new Apple("张三"); //-下面两个输出结果完全一致, //-虽然输出的是Apple类的实例对象 //-其实输出的是Object类的toString()方法 //-可以用重写Object类toString()方法的这种方式来给对象写一个"自我描述" System.out.println(p); System.out.println(p.toString()); } }
输出结果:
针对上面的输出结果进行分析:
1.System.out的print()方法只能在控制台上输出字符串,而Apple类实例是一个在内存中的对象,当用这种方法输出对象时,实际上输出的是Object类中的toString()方法返回值.
2.toString()方法是Object类里的一个实例方法,所有的java类都是Object的子类,所以所有java对象都有toString()方法.
3.toString()方法是一个"自我描述"的方法,当输出某实例对象时,可以通过重写自定义等方式为对象输出自我的描述信息.
4.Object类的toString()方法默认返回该对象实现类的"类名+@+hashcode"值,这个返回值不能实现自我描述功能,所以需要重写Object类的toString()方法来实现.如下;
class Apple{ private String color; private double weight; private String name; public Apple(){ } public Apple(String name){ this.name=name; } public Apple(String color,double weight){ this.color=color; this.weight=weight; } //-重写Object类的toString()方法 public String toString(){ return "这是Apple类,里面有一个苹果,颜色是:"+this.color+",重量是:"+weight; } } public class ToStringTest{ public static void main(String[] args){ Apple p=new Apple("红色",3.2); System.out.println(p); } }
运行结果: