Java内部类
一般情况,我们把类定义成独立的单元。有些情况下,我们把一个类放在另一个类的内部定义,称为内部类(Nested Class)或嵌套类。Java中的内部类是在Jdk1.1版本之后增加的,内部类是Java语言中一个比较重要的概念,可以增强Java程序的灵活性。
内部类的特点:
1、内部类提供了更好的封装。只能让外部类直接访问,不允许同一个包中的其他类直接访问。
2、内部类可以直接访问外部类的私有属性,内部类被当成其外部类的成员。但外部类不能访问内部类的内部属性。
3、内部类可以实现java的单继承局限。
内部类的使用场合:由于内部类提供了更好的封装特性,并且可以很方便的访问外部类的属性。所以,通常内部类在只为所在外部类提供服务的情况下优先使用。
注意:内部类是一个编译时的概念,一旦编译成功,就会成为完全不同的两类。
在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和符号。
例如对于一个名为outer的外部类和其内部定义的名为inner的内部类。编译完成后出现outer.class和outerinner.class两类。
内部类分为以下几种:
public class Demo1 {
//静态内部类
private static class StaticNestedClass{
}
//普通内部类(成员内部类)
private class FieldInnerClass{
}
void Hello() {
//局部内部类(也叫方法内部类)
class LocalClass{
}
//匿名内部类
Runnable runnable = new Runnable() {
//并不是