一、内部类的特征
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
网友评论