A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 杜光 于 2013-7-27 15:04 编辑

System是什么  .  是一个类吗. ?  为什么 什么包都不加.   也能访问到System.?
如果说System.out  我 现在是能理解.    就是 静态方法.  . out  是一个 静态方法 .?
那 .   后面 .println  是 怎么回事呢. ?     是out里还有静态方法 ?    方法能定义在方法里吗. ?  
那如果不是的话.   是 怎么 通过  类名.方法.方法   这样的方式来进行访问的. ?

评分

参与人数 1技术分 +1 收起 理由
杜光 + 1 每天提问并回答问题,是对知识的复习和积累.

查看全部评分

4 个回复

倒序浏览
System是java.lang包中的一个类。
out是这个类中的一个字段,在System内部被static final修饰的一个PrintStream类型的变量,可将其看做为一个常量,这个变量在System内部默认指向的是控制台。
System.out就相当于类名调用了这个成员变量,并得到了一个printStream流对象。
而println是printStream类中的方法,也就是用System.out得到的PrintStream对象去调用了PrintStream类中的println方法。

楼主可以自己通过API弄清楚这种关系的。或者读读源代码,一目了然。。。。

评分

参与人数 1技术分 +1 收起 理由
杜光 + 1 每天提问并回答问题,是对知识的复习和积累.

查看全部评分

回复 使用道具 举报
system 是个类 public final class System  extends Object
out是printStream 类的一个对象
它有println()这个静态方法
可以直接用类名来调用
回复 使用道具 举报
public final class Systemextends Object        System是一个类,在lang包中的类可以不加,jvm会帮你搞定。
static PrintStream out  “标准”输出流            out不是一个静态方法,是一个字段。
public static final PrintStream out                 out只是定义在System类中的一个字段,打印流PrintStream  类型的一个字段。
public void println()                                     这是打印流PrintStream类里面的一个方法,非静态的。字段out自然就能调用了
out是定义在System类中的一个字段(实例变量),类型是PrintStream。println是printStream的一个非静态方法。
所以就有了:System.out.println();

评分

参与人数 1技术分 +1 收起 理由
杜光 + 1 每天提问并回答问题,是对知识的复习和积累.

查看全部评分

回复 使用道具 举报
System 是一个类,out是一个static PrintStream 对象。由于它是“静态”的,所以不需要我们创建任何东西,所以只需直接用它即可。
println()是“把我给你的东西打印到控制台,并用一个新行结束”。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马