每一个人的Java学习之路上恐怕都是用以下代码开始的吧?
- public class Test {
-
- public static void main(String[] args) {
- System.out.println("Hello Java");
- }
-
- }
一开始的时候我们会问很多为什么?为什么Java中的主方法和输出语句要这么麻烦,代码这么多,而且有的地方还要首字母大写。这些东西一开始老师都是让我们去背下来,说是基本上每一个Java程序都是这个样子写的。为什么老师这样子说?就是因为一开始学的东西有限,牵扯到面向对象的很多知识,讲了你也听不懂。再加上一开始学习是从一些基本语句开始的,所以说记住这些,能写出来给练习基本语句创造好条件就可以了.
至于主方法为什么这样子写,学了面向对象的一些修饰符之后就会明白。但是基本的在控制台的输出语句为什么是这种形式?今天来给大家浅谈一下:
其中System是Java.lang包中的一个类,(至于为什么用的时候不需要导包就是因为Java.lang包是自动导入的,不需要用import手动导入)而Out是System中的一个字段,也就是System的一个成员变量。并且是用static修饰的,所以可以用System这个类名直接去调用,这便是System.out的由来。而println( )并不是System类中的一个方法,而是PrintStream中的一个方法
可以根据以上System的源码中看得出,out的修饰符是static,而其类型数引用数据类型中的PrintStream,所以out可以使用PrintlnStream中的println( )方法。那么接下来在去从PrintStream中找到println( )或者print( )方法的源码,
可以看得出,println( )和print( )这两个方法都是PrintStream类中的方法,至于为什么println( )和print( )这两个方法什么数据类型都可以输出,是因为在PrintStream类中重载了 Println( )方法,包含了相关的数据类型。(具体内容看源码,不再截图)
总结:System类中静态的,且为PrintStream类型的字段out去调用了PrintStream类中的print( )和println( )两个方法也就有了System.out.println( )形式的输出语句