在System.out.println
中,'out'是System类的成员变量,它也是PrintStream类的实例。所以任何人都可以告诉我是否可以是System类的成员,它是PrintStream的一个对象是否上课?请关注System.out.println。
答案 0 :(得分:6)
只是一个公共静态最终变量。你写的任何时候:
System.out.println("Foo");
您正在获取该变量的值(这是PrintStream
引用)并在其上调用println()
。如果有帮助,请将其视为:
PrintStream tmp = System.out;
tmp.println("Foo");
System.out
不是 PrintStream
本身的实例 - 它是一个变量。变量的值也不是PrintStream
对象 - 它是对象的引用,它是PrintStream
或子类实例
答案 1 :(得分:1)
'out'是System类的公共静态最终成员,例如
public class System {
public static final PrintStream out;
static {
out = new PrintStream()
........... // more initialisation
}
}
为了做一个更简单的例子,你可以很容易地在一个类中包含一个String作为“常量”。这仍然是类String的对象,它是某个其他类的成员变量,例如。
public class MyWidget {
public static final String WIDGET_NAME = "MyWidget";
... // other stuff
}
然后,您可以使用与访问System.out相同的方式访问此字符串:
System.out.println("Widget name length is " + MyWidget.WIDGET_NAME.length());