【发布时间】:2015-03-15 20:34:43
【问题描述】:
System.out.println(((Window)this).size);
假设我们有一个 Window 类,上面的命令写在子类的方法中。我需要一些帮助来理解 (Window)this 究竟做了什么。它指的是哪里。
【问题讨论】:
System.out.println(((Window)this).size);
假设我们有一个 Window 类,上面的命令写在子类的方法中。我需要一些帮助来理解 (Window)this 究竟做了什么。它指的是哪里。
【问题讨论】:
假设子类和Window 类都有一个名为class 的成员。在这种情况下,子类的size 隐藏了Window 的size。
((Window)this).size 返回Window 类的size 成员(假设它是可访问的),而this.size 将返回子类的size 成员。
【讨论】:
System.out.println(((Window)this).size);
可以分解为:
this对当前实例的引用(Window)this 转换为 Window 类,因此可以访问非私有 Window 成员(Window)this.size访问这个Window的size成员System.out指的是类型PrintStream类的引用变量SystemStatically refers to a final class from java.lang package
out 对 PrintStream 类和 System 类的静态成员的引用println 是 PrintStream 类的方法总之,
System.out.println(((Window)this).size);
会将此窗口大小发送到控制台(前提是 out 尚未被重定向)并在其后面添加新行。
【讨论】: