JAVA toString方法

在Java中,我们经常会编写许多自定义类。在使用时,我们如何打印出这些类中实例变量?

class  value {
    private int s;
    public void set(int i) {
        this.s = i;
    }
    public int get() {
        return this.s;
    }
}

在上例中,我们编写了一个简单的类,该类中包含一个属性 s ,在使用时我们可以用方法set()、get()来实现对属性s 的赋值和获取。但在Java中给我们提供了一种更加有效快捷方法来打印类中属性。

to String()方法

to String()方法是Object类中的方法,而Java中所有的类都继承了object类。我们在使用时可以将其重写。那么,to String方法如何使用呢?

class test{
    int m;
    public test(int m) {
        this.m = m;
    }
    public test() {
    }
    public void setM(int m) {
            this.m = m;
        }
    @Override
    public String toString() {
        return "test{" +
                "m=" + m +
                '}';
    }
} 
public static void main(String[] args) {
        test tests = new test(10);
        System.out.println(tests);
}

首先,我们在test类中重写了toString()方法;然后在打印时直接在println()中输入类对象名。
运行后便会打印出test类中的属性。

通过上面的例子,我们看到to String()方法会返回一个String类型的数据。
在官网的注释toStirng():
toString用于类 的方法Object 返回一个字符串,该字符串由对象作为实例的类的名称,符号字符“ @”和对象的哈希码的无符号十六进制表示组成。
当然,用户也可以自己改变输出的字符串。

to String()方法与数组

在数组中,也会使用到 to String()方法。

        int[] a={1,3,4,56,6};
        System.out.println(Arrays.toString(a));

运行后打印出该数组的内容。
上例中,可以通过to String()方法打印出数组的内容,在使用时调用的时Arrays类中的to String()方法。

to String()方法与对象数组

to string()方法能够输出数组的内容。那么,是否能输出对象数组呢?

class  value {
    private int s;
    public void set(int i) {
        this.s = i;
    }
    public int get() {
        return this.s;
    }
    @Override
    public String toString() {
        String s = "value{" +
                "s=" + this.s +
                '}';
        return s;
    }
}  
public static void main(String[] args) {
        value [] ta=new value[10];//对象数组
        for (int i=0;i<ta.length;i++){//初始化对象
            ta[i]=new value();
            ta[i].set(i);
        }
        System.out.println(Arrays.toString(ta));//数组使用是要用Arrays类 
}

运行结果:

从上例中我们看到,对象数组依然可以使用toi String()方法输出。但是,在使用时要重写类中的to String()方法,并且在调用方法时要调用Arrays类中的to String()方法。
小结:
1、to String()方法用途广泛,可以输出数组的内容和类中的属性。
2、to String()方法与类使用要重写该方法,可自定义输出内容。
3、to String() 方法与数组使用时,调用Arrays中的to string()方法。
4、to String()方法还可以用于对象数组,使用时既要在类中重写to String()方法又要调用Arrays类的to String()方法。

更多推荐

JAVA toString方法详解