0

即使不创建 Runner 对象,我也可以从线程的 run 方法访问 Runner 类中的 process 方法吗?为什么?

class Runner {
  public void process() {
    // some multithreaded code
  }
}

main() {
Thread t1 = new Thread(new Runnable() {
                public void run() {
                    process();
                }
           });
t1.start();        
}
4

2 回答 2

2

如果你做到了,你可以static

class Runner {
      public static void process() {
        // some multithreaded code
      }
    }

然后:

public static void main() {
    Thread t1 = new Thread(new Runnable() {
                public void run() {
                    Runner.process();
                }
           });
    t1.start();        
}

但是,没有资格或没有实例化,您将无法引用process()方法。Runner.这是因为Java是一种Object Oriented语言。

于 2012-10-25T02:36:33.467 回答
0

如果 Runner 的 process 方法是静态的,你可以。

没有实例化就无法访问对象的非静态方法。在使该方法线程安全时,您只需要进行尽职调查。

于 2012-10-25T02:37:52.797 回答