java学习笔记(一)System.out.println探究
2016-03-06 12:25
501 查看
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 这句话。
通过查阅源码的结构,自己总结以下结论
-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 这句话。
相关文章推荐
- Spring AOP(三)之AfterThrowing增强处理
- Spring Demo遇到的异常
- Spring AOP(二)之AfterReturning增强处理
- java设计模式学习笔记第三章
- java dom4j 曾删改查、编码XML文件
- 白话Spring(基础篇)---编程式事务(1)
- java设计模式学习笔记第二章
- SPRING IN ACTION 第4版笔记-第七章Advanced Spring MVC-006- 如何保持重定向的request数据(用model、占位符、RedirectAttributes、model.addFlashAttribute("spitter", spitter);)
- eclipse 安装struts2 插件
- 简要介绍JAVA8中的函数式编程;Brief Introduction to Functional Programming in Java 8
- 20145216史婧瑶《Java程序设计》第一周学习总结
- 20145216史婧瑶《Java程序设计》第一周学习总结
- Android Sdk 和ADT Eclipse安装配置步骤
- 安装Java jdk1.6或1.7的详细步骤和配置环境变量的另类办法
- java基础题目总结
- HDU—— 2005 第几天? (java版)
- Java 抽象类与接口区别
- hadoop源码分析环境搭建(win7+cygwin+jdk+ant+eclipse+Hadoop-1.0.0)
- Spring AOP(一)之Before增强处理
- Spring之占位符配置器