一、 本地内部类
定义在方法当中的类就是本地内部类。
如:
public void func(){
class Test{
public int s;
}
}
缺点:只能在当前方法当中使用,所以用到它的时候很少。
二、实例内部类
1.在实例内部类当中不能定义一个静态成员变量(如果是静态的,它是属于类的,不属于对象,而内部类的的调用需要外部类对象的引用才能调用的),如果非要定义,只能定义一个静态常量。
2.如何实例化,实例内部类的对象?
外部类类名.内部类类名 变量 = 外部类对象的引用.new 内部类对象;
class OuterClass{
public int data1 = 1;
public int data2 = 2;
public int data3 = 3;
//实例内部类 :可以把它当做是外部类的一个实例成员
class InnerClass{
public int data4 = 4;
private int data5 = 5;
// public static int data6 = 6;
public static final int data6 = 6;
public InnerClass(){
System.out.println("不带参数的内部类构造方法!");
}
public void test(){
System.out.println("InnerClass::test()");
}
}
public void func1(){
System.out.println("OuterClass::func1()");
}
}
public class TestDemo {
public static void main(String[] args) {
//实例化外部类对象
OuterClass outerClass = new OuterClass();
outerClass.func1();
OuterClass.InnerClass innerClass = outerClass.new InnerClass();
}
}
内部类当中可以继续定义内部类。