田富丰 发表于 2013-4-27 14:41
我是想问 为什么a包可以调用b包中的show方法!!
b包不也是没静态么!!? ...
兄弟,我真服了你了,看到这我才看明白你想问什么。
你是想问main()是一个静态的方法,为什么在它里面可以调用b包中非静态的show()函数呢,对吧?
是这样的:我们所说的静态方法不能调用非静态方法,是指不能“直接”调用。例如,你不能再main()中这样调用:PackageDemo2.show(),这是不允许的;但是,对于c包中的show1(),是可以这样调用的:PackageDemo3.shwo(),这是因为show1()是静态方法。
要想在mian()中调用b包中的show(),必须先创建PackageDemo2的对象,再通过创建的对象进行调用,就像你代码中所示的样子。 |