码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA-初步认识-第十章-内部类-细节

时间:2017-11-14 22:36:26      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:自己   http   修改   必须   就是   分享   span   是什么   显示   

一.

先书写一个特殊点的程序来学习一下内部类的知识点。

技术分享

(在没有讲解前,先自己梳理一下,Outer这个外部类里的函数想要访问内部类,也必须创建内部类的对象)

编译运行的结果,我猜测是5。DOS结果显示,我们猜测没有错。

技术分享

如果,我们想要输出的num是4,该怎么修改。我的想法是将method()方法体中改为new Outer().num。但是视频中采用的方法和我的不一样,将被调用的内部类中的show方法体改了一下,变成了输出this.num,也就是对象中的num,而不是方法体中的num。

技术分享

接下来就是打印num=3的情况,将输出语句改成Outer.this.num,其实之前输出num=4,也是可以写成Inner.this.num,但是Inner比较多余,不写也成。

技术分享

技术分享

这里产生一个疑问,对于类和对象这块知识点中的点号(.)的运行到底是什么样的规则?有没有一个明确的说法呢?

实际开发时,不可能出现这样一连串的num。

这里为什么内部类可以直接访问外部类中的成员?表象是num放在了内部类中,但是调用的还是外部类中的num。就像method()方法,其方法体中的写有show(),为什么从method()方法中书写show()方法,可以直接访问其他的成员?那是因为这里省略了this,实际上是this.num。

调用是有原因的,不是想当然的。

技术分享

这里的this是指的外部类的对象。

 

JAVA-初步认识-第十章-内部类-细节

标签:自己   http   修改   必须   就是   分享   span   是什么   显示   

原文地址:http://www.cnblogs.com/wsw-bk/p/7834786.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!