关于System.out.println

 

public class Test {
      public static void main(String[] args) {
        int i=3,j=2;
        System.out.println(i+"*"+j+"="+i*j);//输出:3*2=6
        System.out.println(i+"+"+j+"="+i+j);//输出:3+2=32
        System.out.println(i-j);            //输出:1
        System.out.println(i+"+"+j+"="+i-j);
 /*输出:
 错误: 二元运算符 '-' 的操作数类型错误
        System.out.println(i+"+"+j+"="+i-j);
                                        ^
  第一个类型:  String
  第二个类型: int
    1 个错误
 */
	}
}

第1行输出原因:*优先级高,所以后面先运算是6,然后因为println的参数是i+"*"+j+"="+i*j,这里面有int有字符串,那么就隐式类型转换成都是字符串类型,然后用+,连接字符串,最后以字符串的形式输出。

第2行输出原因:因为println的参数是i+"*"+j+"="+i+j,这里面有int有字符串,那么就隐式类型转换成都是字符串类型,然后用+,连接字符串,最后以字符串的形式输出。

第3行输出原因:因为println是一种名复用方法,可以接受不同类型参数,见图3。这里输出的是一个int值.

第4行输出原因:因为println的参数是i+"*"+j+"="+i-j,这里面有int有字符串,那么就隐式类型转换成都是字符串类型,然后用+,连接字符串,连接到-的时候,前面是string,后面是int。不符合-的运算规则所以报错。(-的情况不比*的情况,优先级不一样)

字符串转换:在连接串时,在+的某一边若不是String,java将其转换为一个String。这种转换对所有基本类型都有定义,对于对象,这种转换是通过调用它的toString方法实现的。将null转换为String,结果为"null"。

例 System.out.println("abc"+null);//abcnull

System.out.println("abc"+false);//abcfalse 

在Java编程中,我们常常用 System.out.println(); 来输出字符串,也许我们都已经猜到println()是方法名,但System是什么,out又是什么呢?

  其实System是java.lang里面的一个类,如下图:

 

而out就是System里面的一个静态数据成员,而且这个成员是java.io.PrintStream类的引用。如下图,被关键字static修饰的成员可以直接通过"类名.成员名"来引用,而无需创建类的实例。所以System.out是调用了System类的静态数据成员out。 

图3

 println()就是java.io.PrintStream类里的一个方法,它的作用是向控制台输出信息。因为System.out是java.io.PrintStream类的实例的引用,所以可以通过 System.out.println(); 来调用此方法。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值