黑马程序员技术交流社区

标题: [哈尔滨校区]关于toString方法输出结果 [打印本页]

作者: sky123    时间: 2015-12-6 21:46
标题: [哈尔滨校区]关于toString方法输出结果
首先先查阅API,可以知道Object类中


toString方法是返回类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制(地址值)表示组成。
而以下代码:
package com.hei.lixi;
public class Test15_Array {
        public static void main(String[] args) {
                A:{
                        System.out.println("A:");
                        int[] i = {1,23,4,5};
                        System.out.println(i.toString());
                }
                B:{
                        System.out.println("B:");
                        byte[] b = {97,98,99,100,101};
                        System.out.println(b.toString());
                }
                C:{
                        System.out.println("C:");
                        byte[] b = {97,98,99,100,101};
                        String strb = new String(b);
                        System.out.println(strb);
                }
                D:{
                        System.out.println("D:");
                        char[] c = {'4','1','5','4','3','2'};
                        System.out.println(c.toString());
                }
                E:{
                        System.out.println("E:");
                        char[] c = {'4','1','5','4','3','2'};
                        String strc = new String(c);
                        System.out.println(strc);               
                }
        }
}

输出结果为
A:
[I@bcda2d
B:
[B@97d01f
C:
abcde
D:
[C@e0a386
E:
415432

可以看出,当一个类型转成String型时,输出的是他本身字符串,通过查阅API,String类中重写了toString方法如下:

得出结论,当调用的toString方法是Object类中的方法时,输出值为地址值,而将类型转换成String类时,就会调用String类中重写的方法
则输出本身字符串,其中byte在转成String型时,会转码,所以97,98,99,100,101——>abcde.






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2