关于System.out.println()的一点疑问

来源:百度知道 编辑:UC知道 时间:2024/05/24 17:40:50
我知道System是一个类,out是它的一个静态字段,即:
public static final PrintStream out,因此我们可以用这个类System对调用此字段,即System.out,但是当我们用out去调用PrintStream类下的println()方法时,为什么却不需要导入java.io.PrintStream这个包?而且不导入这个包也不会出错误,我想知道这是为什么.请帮忙回答一下!谢谢了!
经过我上网上的又一次查阅,答案终于出来了!之所以可以这么调用是因为:在System类的源码,即System.java中,你可以看到第一个导入的包就是java.io.*;所以这么调用是没错的!~~
你若想看可以在你安装的JDK下的src.zip中打开查看java.lang包中的System.java文件,下面是System.java文件开头部分:

/*
* @(#)System.java1.149 04/06/02
*
* Copyright 2004 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package java.lang;

import java.io.*;
import java.util.Properties;
import java.util.PropertyPermission;
import java.util.StringTokenizer;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.security.AllPermission;
import java.nio.channels.Channel;
import java.nio.channels.spi.SelectorP

我晕,这是一个打印的语句,
跟你那不同。

赞lz,说得很清楚,原来只知道会导入,现在更清楚了。

因为SYSTEM是LANG包的,不用包含,此语句是用SYSTEM调用的