常见小测试题答案:http://bbs.itheima.com/thread-41087-1-1.html
下面的是我帖子中的原题和源代码。请不要一字不差的提问,谢谢
6、是否可以从一个static方法内部发出对非 static方法的调用?
不可以,如果其中包含对象的method();不能保证对象初始化.
static修饰的成员是在类加载的时候初始化的,而非static的成员是在创建对象的时候,即new操作的时候才初始化的。先后顺序是:先加载,才能初始化,那么加载的时候初始化static的成员,此时非static的成员还没有被加载必然不能使用,而非static的成员是在类加载之后,通过new操作符创建对象的时候初始化,此时static 已经分配内存空间,所以非静态成员可以访问静态成员!
简单点说:静态成员属于类,不需要生成对象就存在了.而非静态需要生成对象才产生.,所以静态成员不能直接访问. |