图中两处地方不理解,内部类求助!!!

图中①和②这两处不理解是什么意思?

最近在看内部类,书中提到这点“这并不意味着每个TalkingClock都有一个TimePrinter实例域",实例域我知道就是类似"private String name"这样,但是书中说
1)“这并不意味着每个TalkingClock都有一个TimePrinter实例域”这句话是为什么要这样说呢?
2)TimePrinter对象是由TalkingClock类的方法构造,这就话又怎么理解呢?

1 TalkClock类里只是声明了一个内部类,lrc并没有声明任何成员变量为该类型并且new该类型,也就是说只是定义了一个类,并没有在自己创建对象的时候使用这个类,所以创建TalkClock对象时并不会创建该内部类的实例,也就不存在该内部类实例域。
2 这里应该是作者的代码不全,内部类可能是在TalkClock的方法里有使用,比如在start方法里使用了内部类并创建了该内部类的对象。所以就有 在外部类的方法里构建内部类对象一说。这一点不是必须的,定义一种类型,并不一定自己要使用该类型,也可以给第三方使用,只要是public。

另外提一下,内部类有静态和非静态之分,非静态依赖于外部类的实例。这个怎么理解,lz可以试试在静态方法里去创建非静态类对象,应该就能明白了。

第1点楼上解释的很清楚了,我就不多说了。谈谈自己对第2点的理解。

TimePrinter对象是由TalkingClock类的方法构造这句话应该是说,TimePrinter是类似类方法的形式创建的,所以可以使用TalkingClock类声明过的类变量。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值