• java内部类概念


    一、成员内部类
    作为外部类的成员存在的类,则称之为成员内部类
    1 public class OuterClass{
    2      public class InnerClass{
    3           
    4      }      
    5 }
    成员内部类样例

    成员内部类具有如下特征:

    1.可以访问外部类所有的成员,包括被声明为私有(private)的;

    2.可以使用任何访问权限修饰符,包括protected和private;

    3.不允许在外部类以外的其他类中创建内部类对象,如果一定需要被其它类访问,应把内部类的对象声明声明为外部类的属性,

    然后在其他类中创建内部类对象,在通过该属性进行访问。

      二、局部内部类

      存在于外部类的方法中的类,称之为局部内部类,其定位与局部变量相似

    1 public class OuterClass{
    2     public void  method(){
    3          class InnerClass{
    4          
    5         }  
    6     }
    7 }
    局部内部类样例

    局部内部类有如下特征:

    1.不允许使用任何访问权限修饰符;

    2.创建局部内部类的对象的语法,必须在声明局部内部类之后;

    3.可以访问外部类所有的成员,包括被声明为私有(private)的;

    4.不能访问任何局部变量或方法的参数,除非这些局部变量或参数使用final修饰。

      三、静态内部类

      使用static修饰的成员内部类,称之为静态内部类

    1 public class OuterClass{
    2     public static Class InnerClass{
    3     
    4     }      
    5 }
    静态内部类样例

    静态内部类有如下特征:

    1.不可以访问外部类中非static成员;

    2.可以使用任何访问权限修饰符,包括protected和private;

    3.可以在其它类中直接创建静态内部类的对象,语法格式为:

    1 外部类.内部类 对象名 = new 外部类.内部类();
    其他类中创建静态内部类对象

      四、匿名内部类

      匿名内部类表现为:没有类的声明语法、直接创建已知类的子类对象或已知接口的实现类对象

     1 public class OuterClass{
     2     public int id = new Object(){
     3          public int calculate(){
     4               return hashCode() * 100;
     5          }      
     6     }.calculate();    
     7     
     8      public void run(){
     9           new Object(){
    10                 public void helloworld(){
    11                       System.out.println("helloworld ! ! !");
    12                 }
    13           }.helloworld();
    14      }    
    15 }
    匿名内部类样例

      内部类的应用

      内部类一般应用于以下开发需求:

    1.将相关类组织在一起,避免命名的混淆;

    2.由于成员内部类可以使用所有访问权限修饰符,则可以实现更深层次的隐藏;

    3.实现多继承;

    4.更充分地利用外部类的成员,完成特有的业务逻辑,且该部分业务逻辑的实现不符合其它任意一个类的需求。

  • 相关阅读:
    Network (poj1144)
    C. Hongcow Builds A Nation
    ZYB loves Xor I(hud5269)
    D. Chloe and pleasant prizes
    Game(hdu5218)
    约瑟夫环的递推方法
    Misaki's Kiss again(hdu5175)
    Exploration(hdu5222)
    B. Arpa's weak amphitheater and Mehrdad's valuable Hoses
    C. Arpa's loud Owf and Mehrdad's evil plan
  • 原文地址:https://www.cnblogs.com/zhncnblogs/p/6222750.html
Copyright © 2020-2023  润新知