对某个java命令的解释

Explanation to a certain java command

System.out.println(((Window)this).size);

假设我们有一个 class Window 并且上面的命令写在子 class 的方法中。我需要一些帮助来理解 (Window)this 到底做了什么。它指的是哪里。

假设子 class 和 Window class 都有一个名为 class 的成员。在这种情况下,子class的size隐藏了Windowsize

((Window)this).size return 是 Window class 的 size 成员(假设它是可访问的),而 this.size 将 return子size成员class.

System.out.println(((Window)this).size);

可分解为:

  • this 对当前实例的引用
  • (Window)this 转换为 Window class 因此非私人 Window 成员可以访问
  • (Window)this.size访问这个Window
  • 的size成员
  • System.out引用PrintStream类型的引用变量class
  • System Statically refers to a final class from java.lang package
  • out 对 PrintStream 的引用 class 和系统的静态成员 class
  • println是PrintStream的一个方法class

一共

System.out.println(((Window)this).size);    

会将此 windows 大小发送到控制台(前提是 out 尚未重定向)并在其后换行。