class Out { public static void f() { final Inner in; in = (new Out()).new Inner(); System.out.print(in); } class Inner { } }
楼主的学习方式适合结合java语言规范来学习。
class Out { public static void f() { final class Inner { } Inner in = new Inner(); } }
非static内部类必须获得外部类的实例
感觉类似于 C/C++ 中的 typedef 结构体的定义,这样看也许更直接点: final class Inner { } Inner in = new Inner();
class Out { public static void f() { final Inner in; in = (new Out()).new Inner(); System.out.print(in); } class Inner { } } 你是在外部类中创建内部类对象就像上面这么写,在内部类当中创建像下面这么写: class Inner { public static void foo(){ Inner in=new Inner(); }
外部类都可以在外面写new的
{
public static void f() {
final Inner in;
in = (new Out()).new Inner();
System.out.print(in);
} class Inner { }
}
class Out
{
public static void f()
{
final class Inner
{ }
Inner in = new Inner();
}
}
final class Inner
{ } Inner in = new Inner();
{
public static void f() {
final Inner in;
in = (new Out()).new Inner();
System.out.print(in);
} class Inner { }
}
你是在外部类中创建内部类对象就像上面这么写,在内部类当中创建像下面这么写:
class Inner {
public static void foo(){
Inner in=new Inner();
}