首先,我想为这个不好的标题道歉。我知道标题可以改进,但是我不知道合适的用语。感谢标题的帮助。

至于我的问题,我很好奇我是否可以从“朋友”类中调用方法。我不确定如何解释我的问题,所以希望这段代码对您有所帮助。

public class Main {
  public static void main(String args[]) {

  int friends = 0;

  while(friends < 3) {
    new Friend().talk("Hello");
    friends ++;

    try {
      Thread.sleep(500);
    } catch(InterruptedException e) {
      e.printStackTrace();
    }

  }

  // How do I call the 'goodbye()' method from one of the 'Friend' classes?

  }
}


朋友班:

public class Friend {

  int talk = 0;

  public Friend() {
  }

  public void talk(final String word) {

    Thread speech = new Thread() {
      public void run() {

        while(talk < 5) {
          System.out.println(talk + ": " + word);

          try {
              Thread.sleep(1000);
           } catch (InterruptedException ie) {
               ie.printStackTrace();
           }

          talk ++;
        }

      }
    };

    speech.start();

  }

    public void goodbye() {
      talk = 5;
    }

}


如果我像上面显示的那样创建类对象,请告诉我是否可以从类中调用方法。另外,如果有人可以告诉我从我演示的类中调用方法的正确术语,那将是巨大的帮助。提前致谢!

最佳答案

如果静态不是您要查找的内容,由于您的注释及其在代码中的位置,我倾向于相信它


  如何从“朋友”类之一中调用“再见()”方法?


那么从您确实在实例化对象的意义上讲,您的问题将产生误导。在此示例中,我创建了Friends,并将其存储在数组中。

public static void main(String args[]) {

    int count = 0;

    //you can store reference to Friend in an array
    Friend[] friends = new Friend[3];

    //in the loop, you make 3 new Friends
    while (count < 3) {
        friends[count] = new Friend();
        count++;
    }

    //Since they're instantiated and stored in the array, you can call their methods later
    friends[0].goodbye();
    //or
    friends[1].goodbye();
    //or
    friends[2].goodbye();
}

关于java - 如何从未在Java中实例化的类中调用方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31361973/

10-11 16:26