一、命名内部类——用于临时创建实例或者类型,且该类型或实例需要控制是否允许使用该类的人调用
1-1:命名局部内部类
public class OutClass{
public int f()
{ private class InnerClass
{
int i=10;
}
return new InnerClass().i;
}
public static void main(String[] args)
{
OutClass o=new OutClass();
System.out.println(o.f());
}
}
public class OutClass{ public class InnerClass{
int i=10;
}
public int f()
{
return new InnerClass().i;
}
public static void main(String[] args)
{
OutClass o=new OutClass();
System.out.println(o.f());
}
}
此例将简单内部类提升至成员等级,在此等级中,我们可以自由设定该内部类是允许OutClass使用者实例化InnerClass实例,如果为public 类型,则允许实例化,如果为private 类型,则不允许实例化(除开OutClass的成员方法将InnerClass类型的实例作为返回值返回) 内部类实例化的前提条件:内部类实例的存在,必须依赖于外部类实例的存在,也就是说,在没有实例化外部类的情况下,不允许产生内部类实例,同样的,由于静态方法及静态成员的存在必须依赖于包含该静态方法或该静态成员的类型的实例,所以内部类的实例不能存在于外部类的静态方法或静态成员中,同理,非静态的内部类也不能包含静态的成员。