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

zzzzzzzzzzzw___ 2020-01-21 03:03:11
图中①和②这两处不理解是什么意思?
...全文
154 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39936465 2020-01-22
  • 打赏
  • 举报
回复
引用 1 楼 伊莱文要变强啊 的回复:
最近在看内部类,书中提到这点“这并不意味着每个TalkingClock都有一个TimePrinter实例域",实例域我知道就是类似"private String name"这样,但是书中说 1)“这并不意味着每个TalkingClock都有一个TimePrinter实例域”这句话是为什么要这样说呢? 2)TimePrinter对象是由TalkingClock类的方法构造,这就话又怎么理解呢?
第1点楼上解释的很清楚了,我就不多说了。谈谈自己对第2点的理解。 TimePrinter对象是由TalkingClock类的方法构造这句话应该是说,TimePrinter是类似类方法的形式创建的,所以可以使用TalkingClock类声明过的类变量。
qybao 2020-01-22
  • 打赏
  • 举报
回复
1 TalkClock类里只是声明了一个内部类,并没有声明任何成员变量为该类型并且new该类型,也就是说只是定义了一个类,并没有在自己创建对象的时候使用这个类,所以创建TalkClock对象时并不会创建该内部类的实例,也就不存在该内部类实例域。 2 这里应该是作者的代码不全,内部类可能是在TalkClock的方法里有使用,比如在start方法里使用了内部类并创建了该内部类的对象。所以就有在外部类的方法里构建内部类对象一说。这一点不是必须的,定义一种类型,并不一定自己要使用该类型,也可以给第三方使用,只要是public。 另外提一下,内部类有静态和非静态之分,非静态依赖于外部类的实例。这个怎么理解,lz可以试试在静态方法里去创建非静态类对象,应该就能明白了。
zzzzzzzzzzzw___ 2020-01-21
  • 打赏
  • 举报
回复
最近在看内部类,书中提到这点“这并不意味着每个TalkingClock都有一个TimePrinter实例域",实例域我知道就是类似"private String name"这样,但是书中说 1)“这并不意味着每个TalkingClock都有一个TimePrinter实例域”这句话是为什么要这样说呢? 2)TimePrinter对象是由TalkingClock类的方法构造,这就话又怎么理解呢?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧