内部类

2016-09-08  本文已影响0人  IT废柴

转载自:http://www.cnblogs.com/chenssy/p/3388487.html

内部类:在一个类的内部定义了一个类
内部类的作用:使用内部类的原因是:每个内部类都能独立地继承一个(接口)实现,所以无论是外围类是否已经继承了某个(接口)实现,对于内部类都没有影响。
使用内部类带来的好处:

内部类用法

成员内部类

成员内部类也是最普通的内部类,它是外围类的一个成员,所以他是可以无限制的访问外围类的所有成员变量和方法,包括private修饰的。外围类要访问内部列的成员属性和方法时,必须通过内部类的实例俩访问。

在成员内部类中:

局部内部类

有这样一种内部类,它是嵌套在方法和作用域内的,对于这个类的使用主要是应用与解决比较复杂的问题,想创建一个类来辅助我们的解决方案,到那时又不希望这个类是公共可用的,所以就产生了局部内部类,局部内部类和成员内部类一样被编译,只是它的作用域发生了改变,它只能在该方法和属性中被使用,出了该方法和属性就会失效。

匿名内部类

      public class OuterClass {
                 public InnerClass getInnerClass(final int num,String str2){
                            return new InnerClass(){
                                       int number = num + 3;
                                       public int getNumber(){
                                                  return number;
                                        }
                              };        /* 注意:分号不能省 */
                   }

                public static void main(String[] args) {
                            OuterClass out = new OuterClass();
                            InnerClass inner = out.getInnerClass(2, "chenssy");
                            System.out.println(inner.getNumber());
                 }
      }
      interface InnerClass {
              int getNumber();
       }

注意:

Paste_Image.png
Paste_Image.png

静态内部类

使用static修饰的内部类我们称之为静态内部类。
静态内部类与非静态内部类之间存在一个最大的区别,我们知道非静态内部类在编译完成之后会隐含地保存着一个引用,该引用是指向创建它的外围内,但是静态内部类却没有。没有这个引用就意味着:

上一篇下一篇

猜你喜欢

热点阅读