文件名称:中的程序-中华石杉-消息队列相关面试题
文件大小:49.36MB
文件格式:PDF
更新时间:2024-07-30 14:00:10
高清 文字版 带书签 完美版
P r i n t e r . c l a s s。为了能够看到执行的效果,可以做一下这个实验:运行第5章中的程序 ReflectionTest,并将类TalkingClock$TimePrinter传递给它进行反射。也可以选择简单的使用 javap,如下所示: 注释:如果使用UNIX,并以命令行的方式提供类名,就需要记住将$字符进行转义。也 就是说,应该按照下面这种格式或javap程序运行ReflectionTest程序: 或 这时会看到下面的输出结果: 可以清楚地看到,编译器为了引用外围类,生成了一个附加的实例域this$0(名字this$0是由 编译器合成的,在自己编写的代码中不能够引用它)。另外,还可以看到构造器的TalkingClock 参数。 如果编译器能够自动地进行转换,那么能不能自己编写程序实现这种机制呢?让我们试试 看。将TimePrinter定义成一个常规类,并把它置于TalkingClock类的外部。在构造TimePrinter 对象的时候,将创建该对象的this指针传递给它。 224 第 6 章