Java 是';println()';PrintStream类的静态成员函数还是实例成员函数?

Java 是';println()';PrintStream类的静态成员函数还是实例成员函数?,java,Java,在这里: println()是PrintStream类的静态成员函数还是实例成员函数 正如我的老师所说:当类名后面有点()时,我们肯定是在尝试访问类的静态成员 这里是静态引用变量,它具有PrintStream类的引用。所以我的问题是,println()函数必须是静态成员函数吗?不,println是PrintStream的一个实例方法,正如您在PrintStream的Javadoc中所看到的那样 void java.io.PrintStream.println(字符串x) System.out提供

在这里:

println()
PrintStream
类的静态成员函数还是实例成员函数

正如我的老师所说:当类名后面有点(
)时,我们肯定是在尝试访问类的静态成员


这里是静态引用变量,它具有PrintStream类的引用。所以我的问题是,
println()
函数必须是静态成员函数吗?

不,
println
PrintStream
的一个实例方法,正如您在
PrintStream
的Javadoc中所看到的那样

void java.io.PrintStream.println(字符串x)


System.out
提供对执行
println
PrintStream
实例的引用。

否,
println
PrintStream
类的实例方法。
out
系统
类的静态成员

System.out
^--^
类系统的静态成员,返回PrintStream实例
System.out.println(…)
^------^
PrintStream的实例方法
声明为

System.out.println("Hi, this is frist program");
public static final PrintStream out
在类
System
中,它是一个静态成员,您可以使用
System.out
访问它(请参阅
final
修饰符)

PrintStream
类的实例方法声明为

System.out.println("Hi, this is frist program");
public static final PrintStream out
println()
PrintStream
类的非静态成员函数

out
是对
系统
类内部的
打印流
类型的对象的静态引用


out
是一个引用,
out.prinln()
引用了
out
的实例方法。在本例中,
out
也是另一个类的静态成员,但这对
println()
方法没有任何区别,它是一个实例方法

System.out
是对
PrintStream
实例的静态引用。
这提供了多个重载版本,如果
println

那么
final
是什么意思?@Infinity好问题,我链接到了另一个关于这个问题的深入问题。