分类:
成员内部类、
局部内部类、
静态内部类、
匿名内部类。
定义:
内部类是指在一个外部类的内部再定义一个类。
内部类作为外部类的一个成员,并且依附于外部类而存在的。
内部类可为静态,可用 PROTECTED 和 PRIVATE 修饰。(而外部类不可以 :用 外部类只能使用 PUBLIC 和DEFAULT)。
注:所有使用内部类的地方都可以不用内部类 ,使用内部类可以使程序更加的简洁 ,便于命名规范和划分层次结构。
class OutClass {
//定义一个接口,在匿名内部类使用。
interface Interface1 {
public void Show();
}
// 成员内部类
class InnerClass1 {
public void innerclass1_method() {
System.out.println("this is 成员内部类 ");
}
}
public void Method1() {
// 局部内部类
class InnerClass2 {
public void innerclass2_method() {
System.out.println("this is 局部内部类 ");
}
}
InnerClass2 innerClass2=new InnerClass2();
innerClass2.innerclass2_method();
}
// 静态内部类
public static class InnerClass3 {
public void innerclass3_method() {
System.out.println("this is 静态内部类 ");
}
}
// 匿名内部类
public void Mehtod2(Interface1 inter) {
}
}
public class Classes {
public static void main(String[] args) {
//定义一个外部类对象
OutClass outclass=new OutClass();
//成员内部类
OutClass.InnerClass1 in1 = new OutClass().new InnerClass1();
in1.innerclass1_method();
//局部内部类
outclass.Method1();
//静态内部类
OutClass.InnerClass3 in3= new OutClass.InnerClass3();
in3.innerclass3_method();
//匿名内部类
OutClass.Interface1 in4=new OutClass.Interface1() {
@Override
public void Show() {
System.out.println("this is 匿名内部类");
}
};
in4.Show();
}
}