JAVA中的内部类



JAVA中的内部类。JAVA中的内部类根据使用情况分为4种:成员内部类、局部内部类、静态内部类、匿名内部类。

成员内部类:可以看出外部类的非静态成员的内部类。

     。内部类和外部类的其他成员是同一个级别的,也是外部类的一个成员

     。在成员类的内部,其可以拥有自己的成员变量和方法,是一个独立的类,内部类和外部类的实例变量是可以共存的

     。与外部类一样,内部类可以用4个访问权限修饰符public、private、protect和默认修饰符来修饰

 

 

1.成员内部类可以访问外部类的私有成员或者属性,即使将外部类声明为private,成员内部类仍然是可见的

2.外部类不能访问成员内部类的私有属性


3.成员内部类是一个编译时的概念,一旦编译成功,就会成为与外部类完全不同的类。

  如一个名为outer的外部类和其内部定义一个inner的内部类,在编译完成之后,出现outer.class和outer $ inner.class两个类文件。

4.内部类和外部类在编译时是两个不同的类,内部类对外部类没有任何的依赖

  在外部类的外部和内部创建内部类的对象:

      在外部类的内部创建一个内部类的对象,可以直接使用inner i = new inner();

      在外部类的外部创建一个内部类的对象,需要先建立一个外部类的对象,然后再生成一个内部类的对象。这是因为,内部类相当于外部类的一个成员,而成员只有在其所属对象存在的情况下猜存在。内部类的类名是外部类类名.内部类类名。

      创建内部类对象:

       <外部类类名>.<内部类类名> 引用变量 = new <外部类构造器>.new 内部类构造器

       <外部类类名>.<内部类类名> 引用变量 = <外部类引用对象>.new <内部类构造器>