美文网首页
Java内部类

Java内部类

作者: 风动天下 | 来源:发表于2017-04-01 12:40 被阅读9次

    一、内部类的特征

    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内部类

          本文链接:https://www.haomeiwen.com/subject/qejiottx.html