日期:2014-05-20  浏览次数:20714 次

我看不懂这句话public final static PrintStream out = nullPrintStream();,能帮忙解释一下吗?
我看不懂这句话public final static PrintStream out = nullPrintStream();,能帮忙解释一下吗?

------解决方案--------------------
定义PrintStream型全局静态常量out,并将nullPrintStream()方法的返回值赋给out
------解决方案--------------------
字段可以是基本类型也可以是对象类型吧
------解决方案--------------------
System类里有大量的native方法,是调用本地代码的,这些代码很可能是由虚拟机来调用的. 
System类的开头有一段:
Java code

static { 
    registerNatives(); 
}

------解决方案--------------------
就是一个简单的赋值问题
你就理解成

String str = disposal();

其中disposal是你随便定义的一个函数,只不过该函数返回一个String的值而已....


你再不理解就去看书吧....
------解决方案--------------------
不好意思,忽略了小细节
Java code
public class A {
    //把final去掉,否则常量就不能再改变了
    public static PrintStream out = nullPrintStream(); //nullPrintStream是个方法,返回值是PrintStream对象 

    public static PrintStream nullPrintStream() {
        //return new PrintStream(); 
        return null; //new一个对象返回还是返回空对象,由写程序的人决定
    }

    public static void setOut(PrintStream o) {
        out = o; //给out赋值
    }

    public static void main(String[] args) {
        setOut(new PrintStream());
        out.println("hello");
    }
}