文章标题

来源:互联网 发布:mini mac恢复出厂设置 编辑:程序博客网 时间:2024/05/29 18:04

8.1总结

1.内部类

将一个类定义在另一个类或方法里,这样的类称为内部类。
一般包括四种:成员内部类、局部内部类、静态内部类和匿名内部类。
(1). 成员内部类(位于另一个类的的内部)

a、定义了成员内部类后,必须使用外部类对象来创建内部类对象,而不能直接new一个内部类对象。

b、创建内部类对象格式:
内部类 对象名 = 外部类对象.new 内部类();

c、外部类不能直接使用内部类的成员和方法。
可先创建内部类对象,然后通过内部类对象来访问外部类的成员变量和方法。

d、如果外部类和内部类具有相同的成员变量或方法,内部类默认访问自己的成员变量或方法,若要访问外部类的成员方法,可使用this关键字:
外部类名.this.同名变量 外部类名.this.同名方法()。
成员内部类
成员内部类结果
(2).局部内部类

局部内部类是内部类定义在外部类的方法中,局部内部类只能在外部类的方法中使用。
局部内部类不能在外部类的方法以外的地方使用,所以局部内部类不能使用访问控制符和static修饰。
局部内部类
局部内部类执行结果

(3).静态内部类

static关键字修饰的内部类。
特点:
不能直接访问外部类的非静态成员,但可通过new 外部类().成员 的方式访问。
若外部类的静态成员和内部类的成员名称相同,可通过类名.静态成员访问外部类的静态成员;
若不同,可通过成员名直接调用外部类的静态成员。
创建静态内部类的对象时,不需外部类的对象,可直接创建。
内部类 对象名= new 内部类
静态内部类
静态内部类执行结果

(4).匿名内部类

是唯一一种没有构造器的类,因而使用范围有限,大部分匿名内部类用于接口回调。
是创建某个类型子类对象的快捷方式。

原创粉丝点击