内部类

内部类:

一般用于类的设计.

内部类

内部类访问特点:

内部类

修饰符:(内部类被定义在成员位置上,就能被成员修饰符所修饰)

public:公有

private:仅在此类下有效

默认权限:在其他类中,直接访问外部类中内部类的成员。:Outer.Inner i = new Outer().new Inner()

static:外部类一加载,内部类就存在了。如果内部类实景态的,就相当于外部类。Outer.Inner in = new Outer.Inner()

如果内部类是静态的,成员也是静态的:Outer.Inner.function()

如果内部类中定义了内部成员,该内部类也必须是静态的。

内部类细节:

内部类

内部类访问外部类成员,因为内部类持有了外部类的引用。

内部类

局部内部类:内部类可以存放在局部位置上。

内部类

局部内部类:内部类在局部的位置上只能访问局部中被final修饰的局部变量。(是一种规则)

内部类

匿名内部类:就是内部类的简写格式。(为了方便)

必须有前提:

内部类必须继承或者实现一个外部类或者接口。

内部类

new Demo(){}这是创建Demo子类对象。(只有子类覆盖方法)

匿名内部类:其实就是一个匿名子类对象。

格式: new 父类or接口(){子类内容}.方法

内部类

匿名内部类应用:

正常格式:

内部类

内部类inner in = newinter(){..}是多态,父类(接口)的名字命名匿名内部类。


内部类正常格式

匿名内部类格式:

内部类


内部类

匿名内部类是成员,是非静态的,主方法是静态的不能调用非静态的方法。

面试题:

内部类