当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内部的完整的结构又只为外部事物提供服务,那么整个内部的完整结构最好使用内部类.
-
在java 中,允许一个类A的定义位于另外一个类B的内部,前者称为A内部类,后者称B为外部类.
-
内部类的分类; 成员了内部类(静态,非静态) VS 局部内部类(方法内,代码块内,构造器内)
成员内部类定义在外部类中的方法外,局部内部类定义在外部内中的方法内部.
class Person{//成员内部类
class Dog{}
public void method() {
class AA
{}//局部内部类 class BB{ }
}
public void Person() {class CC{ }
}
-
成员内部类;
一方面;作为外部类的成员; > 调用外部类 的结构 >可以用static修饰 > 可以被四种权限修饰 另一方面,作为一个类; > 类内可以定义属性,方法和构造器等 > 可以被final修饰,表示不可以被继承.反之亦然. > 可以被abstract 修饰
-
关注如下的三个问题
4.1如何实例化成员内部类的成员?
4.2如何在成员类内部类中区分调用外部类的结构?
当然如果没有重名的话可以直接俄调用.
4.3开发中局部内部类的使用?