在学习JAVA语言的面向对象时,我们接触到了内部类,这是一个我们整个基础学习中经常会遇到的知识点。所以我对内部类做了一个详细的阐述: 一、内部类定义: 其实就是将一个类定义到了另一个类的内部中。具体点说就是:比如A类想要访问B类中的成员时,就可以将A类定义到B类中,作为B类的内存存在,这样A类就可以对B类中的成员进行直接访问。 首先通过一段简单代码简单展示一下内部类: 内部类按照修饰符修饰可以分为:静态内部类,非静态内部类以及抽象内部类三类。这里主要讲一下静态内部类和非静态内部类。 1.静态内部类:顾名思义被静态修饰符static修饰的内部类叫做静态内部类。 静态内部类注意事项:①只能访问外部类中的静态成员; ②静态内部类中可以定义静态和非静态方法。 结合代码来看一下: 2.非静态内部类: 对于非静态内部类在使用时要注意以下三点: ①不能定义静态方法; ②只能定义静态常量(例如:static finally int NUM = 7;) ③可以直接访问外部类成员。 当内部类还可以按照位置的不同分为:局部内部类和匿名内部类两种。 1.局部内部类:定义在外部类的方法中的内部类。 注意事项: ① 局部内部类不允许直接访问局部变量。如果需要访问,必须在局部变量前加final; ② 要在外部类的方法中创建局部内部类对象。 2.匿名内部类:简化书写的内部类。 匿名内部类并不是任何情况下都能使用,是有前提的:匿名内部类需要继承或是实现外部的类或者是接口。否则,不能使用匿名内部类。其实匿名内部类就是个子对象。 匿名内部类的格式:new 父类名(){子类的内容}或者 new接口名(){子类的内容} 在使用匿名内部类时,要注意一点:父类或是接口中的方法不得超过两个,否则不要使用内部类。 |