Java内部类

一、内部类的特征

1.不能存在static关键字。

2.访问外部类的成员方法和属性,要使用“外部类名.this.成员方法”和“外部类名.this.成员属性”的形式。

3.在创建内部类实例之前需要先创建外部类的实例对象。

4.创建内部类的实例使用“外部类名.内部类名 实例名 = 外部类实例名.new 内部类构造方法(参数)”的形式。

5.只允许外部类访问,不允许同一包其他类访问

6.内部类可直接访问外部类私有属性,外部类不能直接访问内部类内部属性

二、非静态内部类

(一)非静态内部类的特点

1.必须寄存在一个外部类对象里

2.可以使用外部类的成员,但外部类不能直接访问非静态内部类

3.不能有static修饰的方法、属性和代码块

4.静态成员不能访问非静态成员

(二)非静态内部类变量访问

内部类属性:this.变量名

内部类的局部变量:变量名

外部类属性:外部类名.this.变量名

(三)非静态内部类的访问

外部类定义内部类:new NeibuLei()

Face.Nose nose=new Face().new Nose();

Face f2=new Face();

Face.Nose nose2=f2.new Nose();

三、静态内部类

(一)使用要点

1.定义方式 static class Nose{}

2.静态内部类对象存在时,不一定存在外部类对象

3.静态内部类实例方法不能直接访问外部类实例方法

4.静态内部类属于外部类的静态成员

(二)静态内部类的访问

外部类访问静态内部类成员:Nose.size

外部类访问静态内部类实例:new Nose()

外部类之外访问静态内部类:Face.Nose nose=new Face.Nose();

四、局部内部类:方法里的内部类,几乎不用

五、匿名内部类

public void onClickListener(new Adapter(){})

风动天下公众号:fdtx2015

你可能感兴趣的:(Java内部类)