书本实例:
package vicomigo;
public class helloworld{
public static void main(String args[])
{
person p1=new person();
p1.name="hhh";
System.out.println(p1.name);
}
class person{
String name;
int age;
void move()
{ }
void eat()
{ }
}
}
编译结果:No enclosing instance of type helloworld is accessible. Must qualify the allocation with an enclosing instance of type helloworld (e.g. x.new A() where x is an instance of helloworld).(没有可访问的内部类helloworld的实例,必须分配一个合适的内部类helloworld的实例(如x.new A(),x必须是helloworld的实例))
分析问题:main方法用static修饰为静态的,内部类默认为动态,而静态类中的静态方法不能调用动态方法,故在class person前加上public static使其变为静态类,其中静态成员变量和成员方法即可被调用。