你好,你回答的挺好,请问什么编译时不错,运行时出错?外部类在非静态内部类是能够生成实例的吧?这里可不可以回答的详细点。谢谢。
你指的外部类,应该不是指的定义内部类的那个类吧?还以为你指的外部类是定义内部类的那个类。我按照你的说法写了个例子!
package com.cnsuning;
public class ClassTest {
//静态的内部类
static class B{
A a = new A();
public A getA() {
return a;
}
public void setA(A a) {
this.a = a;
}
}
//非静态的内部类
class C{
A a = new A();
//类内只可以定义和初始化,不能使用方法
}
public static void main(String[] args) {
ClassTest test = new ClassTest();
ClassTest.B b = new ClassTest.B();
System.out.println(b.a.getA());
ClassTest.C c = test.new C();;
System.out.println(c.a.getA());
}
}
//外部类
class A{
int a = 99;
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
}
OutClass.InClass in = new OutClass().new InClass();