什么是内部类?内部类的作用

  1. 在java语言中,可以吧一个类定义到另外一个类的内部,在类里面的这个类就叫内部类,外面的类就叫外部类。在这情况下,这个内部类可以看做外部类的一个成员。还有一种类被称为顶层类,指的是类定义代码不嵌套在其他类定义中的类。
  2. 需要注意的是嵌套类与内部类类似,只是嵌套类是C++的说法。 内部类可以分为多种、;主要一下4中:静态内部类,成员内部类,局部内部类,匿名内部类
  3. 代码
    class outerClass{
    static class innerClass{} //静态内部类
    }
    class outerClass{
    class innerClass{} //成员内部类
    }
    class outerClass{
    public void menberFunction{
    static class innerClass{} /局部内部类
    }
    }
    public class MyFrame extends Frame{//外部类
    public MyFrame(){
    addWindowsLister(new WindowsAdapter()){ //匿名内部类
    public void windowsClosing(WindowEvent e){
    dispose(); System.exit(0);
    }
    });
    }
    }
    4.总结代码
    静态内部类是指被声明为static的内部类,他可以不依赖内部类而实例,而通常的内部类需要实例化外部类,从而实例化。静态内部类不可以有与外部类有相同的类名。不能访问外部类的普通成员变量,但是可以访问静态成员变量和静态方法(包括私有类型)
    一个 静态内部类去掉static 就是成员内部类,他可以自由的引用外部类的属性和方法,无论是静态还是非静态。但是不可以有静态属性和方法、
    局部内部类 就是定义在一个代码块的内类,他的作用范围是所在代码块,是内部类中最少使用的一类型。局部内部类跟局部变量一样,不能被public ,protected,private以及static修饰,只能访问方法中定义final类型的局部变量。
    匿名内部类是一种没有类名的内部类,不使用class,extends,implements,没有构造函数,他必须继承其他类或实现其他接口。匿名内部类的好处是使代码更加简洁,紧凑,但是带来的问题是易读性下降。他一般应用于GUI编程来实现时间处理等 。
    在使用匿名内部类时,需要牢记以下几个原则。
    1》内部类没有构造方法
    2》匿名内部类不能定义静态成员,方法和类
    3》匿名内部类不能是public protected private static
    4》只能创建匿名内部类的一个实例
    5》一个匿名内部类可以在new后面,这个匿名类必须继承一个父类或实现接口
    6》因为匿名内部类为局部内部类,所以局部内部类的所有限制都对其生效

你可能感兴趣的:(Java小白面试)