昨天复习内部类的时候由于时间原因只看了实例内部类,今天呢,就来写一下成员内部类的另一个:静态内部类。
静态内部类就是在内部类的前面加了一个关键字static。
按照惯例为了方便理解,先贴段代码咯~
package Dawn;
class A
{
private int a1 = 1;
private static int a2 = 2;
public static class B
{
private int v1=3;
private static int v2 = 4;
public int add()
{
return (v1+a2);
}
public static class C
{
private int n1 = 5;
private static int n2 = 6;
}
}
}
public class test {
public static void main(String[] args)
{
A.B b = new A.B();
A.B.C c = new A.B.C();
System.out.println(b.add());
}
}
从上述代码中可以发现:
①在创建静态内部类的实例中和实例内部类的实例中是不一样的,静态内部类是不需要创建外部类的实例的。
②在静态内部类中,可以直接访问外部类中的静态成员变量,但是,如果要访问外部类中的非静态成员,需要通过外部类的实例来实现。
比如:我要用类A的成员a1将其赋值给类B的成员n1,则需要完成 b.n1 = new A().a1;
③ 在静态内部类中既可以定义静态成员又可以定义实例成员。
④可以通过完整的类名来直接访问静态内部类的静态成员。
例如:A.B.C.n2 = 6;
每天进步一点点~