静态成员可以引用/访问类的实例方法吗?

时间:2018-03-25 11:07:58

标签: java static instance printstream

据我所知,这不是真的那么 out 变量的系统类

 final static PrintStream out = null;

可以参考System.out.print();

中PrintStream类的 print 方法
public void print(Object obj) {
    write(String.valueOf(obj));
}

PS:这个问题与Java中System.out.println的含义是什么不一样?或任何相关的。

1 个答案:

答案 0 :(得分:0)

“静态成员不能引用实例方法”这一短语过于简单化会导致混淆。

实际限制是静态方法和静态字段初始化程序无法在不提供对调用的特定对象的引用的情况下调用实例方法。

如果static System.out完全没有问题,因为print直接在PrintStream对象上调用,该对象恰好存储为static字段一些其他类,在本例中为java.lang.System

之间没有区别
System.out.print("hello");

PrintStream myOutput = System.out;
myOutput.print("hello");