JAVA toString方法详解
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()方法。
来源地址:https://blog.csdn.net/qq_61897054/article/details/123041310
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341