本帖最后由 何明辉 于 2012-7-22 14:32 编辑
class Person
{
String name="HeMingHui";
class Heart-----------1
{
void show1()------2
{
System.out.println("show1");
show2();
}
void run()
{
System.out.println("run");
}
}
void show2()-------3
{
System.out.println("show2");
run();
}
}
class PersonDemo
{
public static void main(String[] args)
{
new Person.Heart().show1();------4
new Person().new Heart().show1();----5
}
}
上面程序程序不能编译,为了说面问题特写出来
(1)若1内部类加了static后,则3也访问必须也为static,为什么了,我认为是非静态访问静态可以前面可以不加static啊
(2)方法找中函数调用3中写run()去调用内部类中的方法不对吗,这里应该怎么写,想在3中调用run();
(3)若内部类前加了static,也可以写5来调用show1()啊,怎么不行,我认为是对象去调用啊,内部类虽为静态,但内容却在堆里面存放啊
|