图一
图二
(Demo2和Student类在同一个包下) 比较上述两种写法我们可以看到,如图一当我们用static定义方法时,我们可以直接类点方法名,如果不加static,我们直接调用就会报错大家可以自行实验。此时我们就需要在调用该类的地方实例化这个对象,再通过对象进行调用。
如果是两个非静态方法,可以相互调用。同样两个都是静态方法,也可以相互调用。
图三
但是如果一个是静态方法一个是非静态方法我们调用就会出错。
图四
原因是:我们的静态方法a()是和对象demo2一起加载的,而我们的非静态方法b()是 要等类实例化才会存在。