一、静态内部类(我的理解:可以看成外部类的一个静态方法)
1.获取内部类的对象的属性或方法
class OuterClass{
public int data1 = 1;
public static int data2 = 2;
//静态内部类
static class InnerClass{
public int data3 = 3;
public static int data4 = 4;
public void func(){
// System.out.println(data1); //报错 静态内部类不能访问类外的非静态成员或方法,通过外部类对象的引用才可以访问
System.out.println(data2);
System.out.println(data3);
System.out.println(data4);
}
}
//静态内部类结束
}
//测试用例
public class Test {
public static void main(String[] args) {
//获取静态内部类对象及方法
OuterClass.InnerClass innerclass = new OuterClass.InnerClass();
System.out.println(innerclass.data3);
innerclass.func();
}
}
2. 静态内部类当中不能访问类外的非静态成员及方法(因为静态内部类对象的创建是通过类名创建的,所以没有外部类对象的引用,因此自然访问不了非静态成员方法与成员),非要访问的话可以创建一个外部类的引用来进行访问。
3. 创建内部类对象的时候不需要先创建一个外部类对象