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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

看到这么一个题,下面两个程序有什么区别?
import java.io.PrintStream;
public class Demo1 {
public static void main(String[] args) {
    PrintStream out = System.out;
    out.print(10);
    out.println(20);
}
}

import static java.lang.System.out;
public class Demo0 {
public static void main(String[] args) {
     out.print(10);
     out.println(20);
}
}
看着这个题目,我忽然想问一下,从来没有像过的一个问题System.out的out是什么???
我看到百度里面第一个满意答案说是 System类的一个静态方法,我记 得所有的方法都好像有括号吧,
它没有括号啊。还有,静态导入是不是都是得导入静态的方法,和静态的类。 而普通的是不是就只可以普通的类, 好像也可以静态类吧,也就是这两个程序的区别了。我想了思路,不过不清楚这区别究竟是什么了

2 个回复

倒序浏览
它不是方法,他是一个对象,代表的是PrintStream的对象。不过该对象是静态的。
因为是对象,所以就可以调用该类下面的方法了。
所以,用的最多的输出语句
System.out.println();
分解出来就是用System类名,调用了一个静态成员变量,该变量是一个对象PrintStream。
然后再用对象调用的方法。
回复 使用道具 举报
像这种问题就应该自己去查文档了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马