“我”与“内部类”

       这是第七周了,一学期已经流逝快一半了。老师所说的JAVA学习的核心:对象与类,继承,接口.lambda表达式与内部类的学习也快接近尾声了,回想一下,不愧是JAVA的核心,真心难!

       接口,lambda表达式我觉得还行,不是很抽象,再加上老师又讲解了一遍,基本上有所掌握。可是到了内部类那儿,我又陷入了深渊,完全不懂那是怎么一回事。看了讲义,我大概知道内部类就是在一个类中又定义一个类,好像是嵌套关系,内部类不仅可以访问它自身的数据域,也可以访问创建它的外围类对象的数据域,听起来好像比单纯的类功能强大了一点儿,讲义上说JAVA引用内部类是因为:内部类方法可以访问该类定义所在的作用域中的数据,包括私有的数据;内部类可以对同一个包中的其他类隐藏起来;当想要定义一个回调函数且不想要编写大量代码时,使用匿名内部类比较便捷。内部类的特殊语法规则似乎不是很难理解,局部内部类与内部类最大的区别是不能用public或private访问说明符进行说明,它的作用域被限定在声明这个局部类的块中,可是在什么时候,什么情况下使用局部内部类,我就搞不清楚了,只是看懂了它的语法规则。匿名内部类也是如此,只知道如果你只需要内部类的对象,不需要内部类,那么就不须为类命名了,静态内部类,我只知道使用static声明内部类.

       “内部类的语法比较复杂,违背了JAVA设计简单的理念,看似增加了一些优美有趣的特性,实属没有必要,好像JAVA也开始走上了许多语言饱受折磨的毁灭性道路”,这是讲义上的描述,我也在想:内部类与常规类相比是有优点,可是也带来很多麻烦,真搞不懂干嘛非要引入这个语法,对他我只觉得迷迷糊糊,似懂实则一点都不懂。但是话又说过来既然JAVA引用他,肯定有他自己能说服大众的理由,只是我这个初学者没有理解罢了,希望随着我编程练习的增多,能理解!!!