System是lang包中的一个类,所以按格式out应该是这个类的一个方法了,但是却没有参数,这个怎么理解啊.另外我看了下io包,out应该是io包的printstream类的一个实例.但是java默认是不导入io包的.为什么这个out可以通过编译呢.System.out.println()这个语句到底该怎么理解啊.想不通啊.牛人来帮分析下啊.

解决方案 »

  1.   

    System是系统保留的包,所有system的方法都可以system.来直接调用
      

  2.   

    System类是属于java.lang包的,所以System在不导入包的时候是可以使用的,out是System的一个public final static的变量,当我们使用System.out.println()时并不是访问out对象,而是使用它的一个方法,所以不会编译出错。
      

  3.   

    System类是属于java.lang包的,所以System在不导入包的时候是可以使用的,out是System的一个public final static的变量,当我们使用System.out.println()时并不是访问out对象,而是使用它的一个方法,所以不会编译出错。
      

  4.   

    out, in, err 这些不是方法,而是 PrintSteam 的静态属性,不要忘了静态属性也可以通过这种方式来访问的哦
      

  5.   

    System是一个类,而out是这个类的一个字段而不是方法,System.out返回一个PrintStream,println(参数)是PrintStream的方法。看看JDK的DOC就清楚了
      

  6.   

    System是java.lang包里面的一个类
    out是System里面的一个static 字段(成员),而不是它的一个方法.
    即public static final PrintStream out
    由于out是PrintStream类型的,所以可以调用println()方法
      

  7.   

    out是lang包中System类中的一个属性,不是方法    public static final PrintStream out;
      

  8.   

    大家好.我是楼主.看见了前面各位朋友的高见,我明白很多了.既然out是PrintStream的一个实例.那可以不可以不用System类输出,而先导入java.io.*包.然后定义一个诸如PrintStream output的对象.然后直接用output.println()来控制输出呢?
      

  9.   

    我想了下面这段代码:
    import java.io.*;
    class outputTest
    {
    public static void main(String[] args)
    {
    PrintStream output=new PrintStream(???);
    output.println("hello,world!");
    }
    }
    但是我不明白???这个地方的构造参数应该怎么写.
      

  10.   

    大家好.我是楼主.看见了前面各位朋友的高见,我明白很多了.既然out是PrintStream的一个实例.那可以不可以不用System类输出,而先导入java.io.*包.然后定义一个诸如PrintStream output的对象.然后直接用output.println()来控制输出呢?
    可以!PrintStream output = System.out;
    .........output.println("I love shadao");
      

  11.   

    可不可以new一个PRintStream对象啊?
      

  12.   


    你看下PrintStream的说明就知道了嘛如果是一个普通的java class当然是可以new出来的不过那时候你在xx.println("xxx");就不知道那些会打印到哪里去了;呵呵