Object类中通用方法之:toString()方法
1、Java所有的对象都是Object类的实例,都可以直接调用该类中定义的方法,这些方法称为通用方法
2、toString()方法即为Object类中定义的通用方法之一
3、平时我们如果在控制台直接打印输出一个对象的实例时,其实调用的就是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的println()方法只能在控制台上输出字符串,而Apple类实例是一个在内存中的对象,当用这种方法输出对象时,实际上输出的是Object类中的toString()方法返回值
2、toStrong()方法是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); } }
运行结果:
热心技术,并兼吃喝,偶谈风月,不言国事.