java 中关于System.out.println()的问题

Java 的输出知识

1.System.out.println()不能直接写在类中,例如:

因为在 Class A{

       //成员变量

       //构造方法

       //普通方法

       //内部类

}

如果硬是想使用System.out.println("我想输出!"),可以加上一个大括号,让他成为普通块,所谓的普通块就是将普通方法去掉前面的声明,本身也是属于普通方法。

即: 

 

2.println输出问题

   char[] ch=new char[]{‘a’,'b','c'};  System.out.println(ch);

   char[] ch=new char[]{‘a’,'b','c'};  System.out.println("ch="+ch);

这是println()方法的重载,java打印输出System.out.println会自动调用输入参数的toString方法,输出内容时toString方法的返回值。println的参数分基本类型,一个是String 另一个是Object类型。

System.out.println(ch)   println()自动调用println(char[] ) 也就是Object类型 所以输出‘a’ 'b' 'c'

然而System.out.println("ch="+ch)   "+"是字符串连接符,自动调用println(String ),也就是String类型 输出的是xxx@xxxx的形式。

详细理解 逐步进入之后,发现调用toString() ,我们可以进行重写。


                 出自: https://www.cnblogs.com/jllj/p/6368175.html    

补充:因为直接输出一个类的对象的时候,会调用这个类的toString()方法,这个方法有些类是覆盖了的,比如String,Integer。
你自己写的类没有覆盖这个方法的话就是继承Object类的这个方法,Object中toString()方法的实现是这样的
getClass().getName() + "@" + Integer.toHexString(hashCode())
后面跟的是这个类的哈希码,如果你希望这个类打印出来输出你希望的格式,你就要覆盖这个、toString方法。


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值