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()方法。