java学习第十九课
暑期自学第十九课,本节课学习内部类。在之前类、多态的基础上,内部类算是一个小拓展知识点,整体概念不难理解,只是定义位置和访问规则需要多记一下。
简单来讲,写在一个类里面的类,就叫做内部类,包裹它的外层类称为外部类。内部类主要分为成员内部类、局部内部类,还有匿名内部类,其中匿名内部类在日常练习里使用频率最高。
成员内部类定义在外部类的成员位置,它可以直接访问外部类所有成员,包括被 private 私有化的变量和方法;但外部类想要调用内部类的内容,必须先创建内部类对象。局部内部类写在方法里面,作用范围仅限于当前方法,出了这个方法就无法使用,平时用到的次数比较少。
匿名内部类没有类名,一般用来快速实现接口、重写抽象类的方法,不用专门新建一个子类,写法简洁,简化了重复代码。
练习过程中我出现了一些小问题:刚开始分不清内部类的创建格式,经常写错对象创建代码;时常搞混访问权限,误以为私有外部类成员不能被内部类调用;使用匿名内部类时,总是忘记补齐抽象方法,导致编译报错。另外我一开始觉得内部类多余,单独新建普通类一样可以完成功能,练习后发现,关系紧密、只给单一外部类使用的类,放在内部会让代码结构更紧凑。
梳理一下使用规律:需要临时快速实现抽象方法,优先用匿名内部类;长期配合外部类使用就用成员内部类;仅方法内临时使用,选择局部内部类。

浙公网安备 33010602011771号