JAVA内部类小结

内部类的概念:定义在其他类里面的类叫做内部类,包含内部类的类叫做外部类;

内部类的作用:内部类主要是用来描述一个事物存在于另一个事物里面,依赖于外部事物存在的;

内部类的格式

内部类的分类

成员内部类

非静态成员内部类

1、非静态成员内部类必须依赖于外部类的对象使用,所以:

A、非静态内部类中不能定义静态成员,除非是常量变量;

B、在外部类的非静态函数中可以直接创建内部类的对象;

C、在外部类的静态函数中和外部类以外的类中都不能直接创建内部类对象,需要先创建外部类对象,然后通过外部类对象创建内部类对象;

2、在内部类中,可以直接使用外部类的所有成员;

3、如果内部类中定义了和外部类中一样的成员,优先使用内部类中的;要使用外部类中的成员,可使用 外部类类名.this.成员  的方式;

静态成员内部类

1、静态内部类和外部类的对象无关,仅仅表示内部类和外部类的位置关系是嵌套关系,所以又被称为嵌套类;

2、静态成员内部类中可以书写所有成员;

3、外部类使用静态内部类,访问静态成员可以通过类名直接访问,访问非静态成员需要通过内部类对象访问;

4、静态内部类可以直接使用外部类的静态成员;非静态成员,需要通过外部类对象使用;

5、外部类以外的类要使用静态内部类的成员,和使用一般类一样,只是需要在类名前面加上外部类类名,表示内部类是外部类的成员;

私有成员内部类

成员内部类作为外部类的成员,也可以使用访问权限修饰符修饰,如果使用private修饰,成员内部类就成为私有成员内部类,只能在外部类里面使用,不能在外部类以外的类中使用;

局部内部类

1、定义在函数里面的类叫做局部内部类;

2、在局部内部类中不能定义静态成员,除非是常量变量;

3、局部内部类只能在定义它的函数中使用,随着定义它的函数的执行而执行;

4、在非静态函数中的局部内部类,可以直接使用外部类的静态和非静态成员;

5、在静态函数中的局部内部类,就只能直接使用外部类的静态成员;要使用非静态成员,需要创建外部类的对象;

6、在局部内部类中要使用定义它的函数中的变量,需要将这个变量声明为final的;

匿名内部类

当要使用一个类的子类(或接口的实现类)时,如果这个子类(或者实现类)只会使用一次,就没必要专门定义一个类出来,可以使用匿名内部类的方式调用;

匿名内部类的格式:

new 类名(){}:表示创建这个类的一个子类的对象;

new 接口名(){}:表示创建这个接口的一个实现类的对象;

posted @ 2018-07-11 22:26  少说点话  阅读(163)  评论(0编辑  收藏  举报
网站运行: