1.System.out.println的解释
通过查阅源码的结构,自己总结以下结论
-System是一个类,上面就是Object
-Syetem类里面实例化了一个out对象,out是PrintStream类的对象,而且是一个static成员变量,println是PrintSteam里面定义的一个方法
原理就是一个类可以直接使用System类里面的static成员变量,当这个成员变量是对象时,又可以调用这个对象的方法。
按照这个原理我们可以自己写一个类似的程序模拟这个过程。
1)PrintOut类模拟out的的类PrintStream,其中的main方法模拟println方法
public class PrintOut{
public static void mian(String[] args){
System.out.println("learn System.out.println");
}
}
2)TestClass类模拟out对象
public class TestClass{
public static PrintOut p;
}
3)Test01类,是我们正常使用的类
public class Test01{
public static void mian(String[] args){
TestClass.p.main(args);
}
}
Test01可以直接打印出 learn System.out.println 这句话。