您的位置:首页 > 编程语言 > Java开发

java打印对象和toString方法

2014-11-17 23:01 513 查看
class Person
{
    private String name;
    public Person(String name)
    {
        this.name=name;
    }
}
public classPrintObject {
    public static voidmain(String[] args)
    {
        Person2 p=new Person("ping");
        System.out.println(p.toString());
    }
 
}


上面程序创建了一个Person对象,然后使用System.out.println()方法输出Person对象,结果如下:

Person@15db9742

System.out的println方法只能在控制台输出字符串,而Person实例是一个内存中的对象,怎么能直接转换为字符串输入呢?当使用该方法输出Person对象时,实际上输出Person对象的toString()方法的返回值,也就是这面代码效果相同

System.out.println(p);

System.out.println(p.toString());

toString方法是Object类里的一个实例方法,所有Java类都是object类的子类,因此所有Java对象都具有toString方法。

不仅如此,所有Java对象都可以和字符串进行连接运算,当Java对象和字符串进行连接运算时,系统自动调用Java对象toString()方法返回值和字符串进行连接运算下面代码效果相同

String pStr=p+””;

StringpStr=p.toString()+””;

toString()方法是一个非常特殊的方法,是一个“自我描述”方法,该方法通常用于实现当程序员直接打印该对象时,系统将会输出该对象的“自我描述”信息,用以告诉外界该对象具有的状态信息。

Object类提供的toString()方法总是返回该对象实现类的”类名+@+hashCode”值,这个返回值不能真正实现“自我描述”功能,因此我们可以重写object的toString()方法。



class Apple1
{
    private String color;
    private double weight;
    public Apple1(String color,double weight)
    {
        this.color=color;
        this.weight=weight;
    }
 
public StringtoString()
{
    return "Apple["+color+",weight:"+weight+"]";
}
}
 
public classToStringTest {
    public static voidmain(String[] args)
    {
    Apple1 a=new Apple1("红色", 5.68);
    System.out.println(a);
    }
   
   
   
}


运行结果

Apple[color=红色,weight=5.68]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐