你真的懂System.out.println()吗?

简介

众所周知,Java语言是面向对象的,那如果让你用一行代码体现出来呢?

如果你能自己读懂System.out.println(),就真正了解了Java面向对象编程的含义。

面向对象编程即创建了对象,然后对象调用方法。

System.out.println("hello world");
hello world

 

分析

1、System源码分析,System是java.lang包的一个类

你真的懂System.out.println()吗?_第1张图片

 

2、out源码分析

①out是System里面的一个静态数据成员,而且这个成员是java.io.PrintStream类的引用

②out已经存在了且用Static修饰了,所以可以直接使用类名+属性名的方式调用,也就是System.out。

你真的懂System.out.println()吗?_第2张图片

 

3、println()分析

①println()就是java.io.PrintStream类里的一个方法,它的作用是向控制台输出信息。

你真的懂System.out.println()吗?_第3张图片

 

②里面有很多重载的方法,这样就保证了任意的东西都可以输出

你真的懂System.out.println()吗?_第4张图片

 

总结就是,类调用对象,对象调用方法

 

拓展

1、System.out.print();与System.out.println(); 的区别

public class Test {

    public static void main(String[] args) {
        // 不换行
        System.out.print("a");
        System.out.print("b");

        // 换行
        System.out.println("c");
        System.out.println("d");
    }

}

 

你真的懂System.out.println()吗?_第5张图片

 

2、字符数组输出

public class Test {

    public static void main(String[] args) {
        char[] ch = new char[]{'x', 'y'};
        System.out.println(ch);

        char[] ch1 = new char[]{'x', 'y'};
        System.out.println("ch1=" + ch1);
    }

}

 

你真的懂System.out.println()吗?_第6张图片

 

这是println()方法的重载,java打印输出System.out.println()会自动调用输入参数的toString()方法,输出内容时toString()方法的返回值。

println的参数分基本类型,一个是String,另一个是Object类型。

System.out.println(ch) println()自动调用println(char[] ) 也就是Object类型 所以输出xy

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

 

本文部分参考链接:今日头条【阿博的Java栈】https://www.toutiao.com/i6817721442277261835

 

你可能感兴趣的:(你真的懂System.out.println()吗?)