欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > > 文章正文

Java中重写toString方法,java重写tostring

来源: javaer 分享于  点击 33125 次 点评:243

Java中重写toString方法,java重写tostring


    类 Object 是类层次结构的根(父)类, 每个类(Person,Student...)都使用 Object 作为超(父)类,所有对象(包括数组)都实现这个类的方法,其中tostring方法,默认输出的是类名和内存地址值。

JDK中源码:

public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

解析: 

  getClass():返回一个字节码对象 

  Integer.toHexString():返回指定参数的十六进制字符串形式         

  hashCode():返回该对象的哈希码值(内部地址)


创建一个Person类(没有重写toString方法):

public class Person {
    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

创建测试类:

public class Demo {

    public static void main(String[] args) {

        Person p = new Person("张三",18);
               
        System.out.println(p.toString);// com.hxd.Person@75412c2f
        
        System.out.println(p);//直接打印对象的名字,其实就是调用对象的toString方法

    }
}

 

直接打印对象的地址值没有意义,需要重写Object类中的toString方法,打印对象的属性;

创建一个Person类(重写了toString方法):

public class Person {
    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    //重写toString()方法
    @Override
    public String toString() {
        return "Person{" + "name='" + name + "',age=" + age + "}";
    }
}

创建一个测试类:

public class Test {

    public static void main(String[] args) {

        Person p = new Person("张三",18);
        
        System.out.println(p);// Person{name='张三',age=18}

    }
}

这个时候toString输出的东西就是按照指定格式打印出Person这个类的具体内容了。

在Object类里面定义toString()方法的时候返回的对象的哈希code码,这个hashcode码不能简单明了的表示出对象的属性,所以要重写toString()方法。

 

第一次写博客,略有粗糙,感谢观看。

相关文章

    暂无相关文章

用户点评