内部类-定义

内部类类别:

  成员内部类:在一个类的成员位置定义另外一个类,那么另外一个类就被称为成员内部类。

  访问方式1:  在外部类提供一个方法创建内部类的对象进行访问。

      2:  在其他类创建内部类的对象进行访问。创建格式:外部类.内部类  变量名=new 外部类().new 内部类(); 

      注意:如果是静态内部类:外部类.内部类  变量名=new 外部类.new 内部类()

  成员内部类要注意的事项:

    1.成员内部类可以直接访问外部类的成员

    2.如果成员内部类与外部类存在同名的成员,在内部类默认访问的是内部类的成员,可以用“外外部类.this.成员 ”来访问指定的外部类成员

    3.如果成员内部类出现了静态成员,那么该成员内部类也必须使用static修饰。

    4.如果成员内部类是私有的,那么创建内部类的对象就只能在外部类提供方法创建。

  局部内部类: 在一个类的方法内部定义另外一个类,另外一个类就称为局部内部类。

    注意事项:如果局部内部类访问了局部变量,那么该变量需要使用final修饰(原因:因为生                           命周期不一致,所有内部类访问的是一个复制品)

        局部变量:不能定义为public,protected,private或者static类型

             不能定义static变量;

  匿名内部类:没有类名的类。

       好处:简化书写

  匿名内部类的使用前提:必须存在继承或者实现关系。

      格式:new  父类(父接口){

        匿名内部类的成员;

} 匿名内部类不能有构造方法。   
  ·匿名内部类不能定义任何静态成员、方法和类。   
  ·匿名内部类不能是public,protected,private,static。   
  ·只能创建匿名内部类的一个实例。 
      ·一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类。   
  ·因匿名内部类为局部内部类,所以局部内部类的所有限制都对其生效

posted @ 2017-05-25 18:56  Nico-luo  阅读(340)  评论(0编辑  收藏  举报