同学;
问题一;
当内部类中定义了静态成员,该内部类必须是static的。
代码;
public class Outer {
class Inner
{
static void function() //function()编译报错,当内部类是非静态时,那么内部类里面的成员就不能用静态声明
{
System.out.println("innner :");
}
}
注意:当内部类中定义了静态成员,该内部类必须是static的。
当外部类中的静态方法访问内部类时,内部类也必须是static的。
问题二;
静态内部类的静态代码块不会被执行的,,因为你写的是new Out();,,应该是Out.in ,,,,你的静态内部类相当于外部类的静态成员,所以访问类里面的静态成员时就是类名 . 静态成员,,,,当你写new Out()时是没有访问到内部类的,所以当然不会执行内部类里面的代码,,,
内部类是静态的所以外部类类名可以直接调用,,,Out.in就是内部类了
问题三:内部类是外部类的成员,他随着外部类的加载而被加载进内存。 |