黑马程序员技术交流社区

标题: 是否可以从一个static方法内部发出对非static方法的调用? [打印本页]

作者: 夏一站    时间: 2013-6-14 09:42
标题: 是否可以从一个static方法内部发出对非static方法的调用?
是否可以从一个static方法内部发出对非static方法的调用? 如果从一个static方法中发出对非static方法的调用,那个非static方法是关联到哪个对象上的呢?
作者: 张禄宇    时间: 2013-6-14 09:53
调用不了
作者: 曹睿翔    时间: 2013-6-14 10:09
都21分了,很多问题要自己验证,要技术分,很随意
作者: 苑永志    时间: 2013-6-14 10:59
  1. public class StaticTest {
  2.         public void m1(){
  3.                 System.out.println("m1");
  4.         }
  5.        
  6.         public static void m2(){
  7.                 new StaticTest().m1();
  8.                 System.out.println("m2");
  9.         }
  10. }
复制代码
static方法内部发出对非static方法的调用当然是可以的,如上所示。非static方法关联的对象自然是执行该方法的对象。
作者: 郭天龚    时间: 2013-6-14 14:21
本帖最后由 郭天龚 于 2013-6-14 14:23 编辑

无法在静态方法中调用非静态成员,因为被static修饰成员是类相关的,类加载是就有了。而没有被static修饰的成员是实例相关的,类加载时,不一定有对象实例,所以静态方法中无法调用静态方法。
楼上这位在静态方法中创建了一个对象实例,这样也是可以调用的。

作者: 薛良玟    时间: 2013-6-14 14:33
我只是路过,不发表意见





















如何测试防辐射服
作者: 袁梦希    时间: 2013-6-14 18:00
苑永志 发表于 2013-6-14 10:59
static方法内部发出对非static方法的调用当然是可以的,如上所示。非static方法关联的对象自然是执行该方法 ...

刚看到你的帖子  ;P
作者: 袁梦希    时间: 2013-6-14 18:01
薛良玟 发表于 2013-6-14 14:33
我只是路过,不发表意见

怎么不发表意见呢   发表了  我会给你加相应的技术分
作者: 袁梦希    时间: 2013-6-14 18:01
楼主你好  如果帖子的问题已解决,请把帖子的类型改为已解决,如果没解决请继续追问。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2