打印对象System,out.println() 与 toString方法

Object有个toString实例方法。
Object类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at标记符“@”和此对象哈希码的无符号十六进制表示组成。
换句话说,该方法返回一个字符串,它的值等于:

getClass().getName()   '@'   Integer.toHexString(hashCode())

 

在Java中,所有的对象都是继承自Object,因此所有的Java对象(不管什么类型的)都具有toString方法。

但很多类都重写了Object类的toString 方法,用于返回可以表述该对象信息的字符串。

 

所有的Java对象都可以和字符串进行连接运算,当Java对象和字符串进行连接运算的时候,系统自动调用Java对象的 toString方法的返回值 和字符串进行连接运算即下面两行代码的结果相同

String pstr=p+””

String pstr=p.toString+””

 

String toString():返回该对象(不管什么类型)的字符串表示。
当程序使用System,out.println()方法输出一个对象,或者把某个对象和字符串进行连接运算时,系统会自动调用该对象的toString方法返回该对象的字符串表示。也就是说,下面两行代码是等价的:

System.out.println(p)

System.out.println(p.toString())

 

空引用变量调用toString方法,会引起空指针异常

 

参考博客:
https://www.cnblogs.com/summer94/articles/6001248.html

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java中可以作为参数传入System.out.println()方法,被直接打印的容器包括: 1. 字符串(String) 2. 字符数组(char[]) 3. 布尔类型(boolean) 4. 整数类型(byte、short、int、long) 5. 浮点数类型(float、double) 除此之外,其他容器类型需要先转换为字符串类型才能作为参数传入System.out.println()方法被直接打印。例如,List、Map、Set等容器类型,可以使用toString()方法将其转换为字符串类型,然后作为参数传入System.out.println()方法被直接打印。 ### 回答2: 在Java中,可以将以下容器传递给`System.out.println()`方法进行直接打印: 1. 字符串(String):String类是Java中表示字符串的容器,可以直接将字符串传递给`System.out.println()`进行打印,例如:`System.out.println("Hello World");` 2. 字符串缓冲区(StringBuffer和StringBuilder):StringBuffer和StringBuilder类是可变的字符串容器,可以直接将它们的实例作为参数传递给`System.out.println()`进行打印。例如:`System.out.println(new StringBuffer("Hello"));` 3. 字符数组(char[]):字符数组可以作为参数传递给`System.out.println()`进行打印。例如:`char[] array = {'H', 'e', 'l', 'l', 'o'}; System.out.println(array);` 4. 基本数据类型的包装类(Integer,Double,Boolean等):基本数据类型的包装类也可以作为参数传递给`System.out.println()`进行打印。例如:`System.out.println(new Integer(10));` 5. 其他容器的toString()方法返回的字符串:许多Java容器类都有一个`toString()`方法,该方法返回包含容器内容的字符串,这个字符串可以直接作为参数传递给`System.out.println()`进行打印。例如:`System.out.println(Arrays.toString(array));` 需要注意的是,以上容器作为参数传递给`System.out.println()`时,会自动调用相应容器的`toString()`方法来获取打印内容。如果想要自定义打印内容的格式,可以重写各自容器类的`toString()`方法。例如,重写`toString()`方法可以实现自定义打印格式:`System.out.println(array.toString());` ### 回答3: 在Java中,可以直接将字符串(String)作为参数传入System.out.println()方法被直接打印。这意味着我们可以将任何一个字符串直接打印到控制台,例如:"Hello World!"。 除了字符串,还可以将字符(char)数组作为参数传入System.out.println()方法被直接打印。如下所示: char[] array = {'H', 'e', 'l', 'l', 'o'}; System.out.println(array); 这样就可以将字符数组直接打印到控制台。 此外,还可以将基本数据类型的变量作为参数传入System.out.println()方法被直接打印,如整数(int)、浮点数(float)、布尔值(boolean)等。例如: int num = 10; System.out.println(num); 上面的代码将会把整数变量num的值直接打印到控制台。 需要注意的是,虽然容器类型(如List、Set、Map等)不能直接作为参数传入System.out.println()方法被直接打印,但我们可以先将它们转化为字符串,然后再使用System.out.println()方法进行打印。例如: List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); System.out.println(list.toString()); 上面的代码将会把list的内容转化为字符串,并直接打印到控制台。 但需要注意的是,toString()方法的结果可能不如我们所期望,因此在遇到复杂的容器类型时,我们通常会使用其他的打印方式来输出容器的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值