我正在学习面向对象的Java,当我想要调用我的displayOldestAge()方法时,我被卡住了,这个方法是到我的主文件的类Player中的。
我有一个名为Player的类,其中包含displayOldestAge()方法:
import java.util.*;
public class Player {
  public String name;
  public int age;
  public boolean sex;
  public Player(String name, int age, boolean sex){
    this.name = name;
    this.age = age;
    this.sex = sex;
  }
  public void display(int number){
    System.out.println("-----------------------");
    System.out.println("Number : " + number);
    System.out.println("Name : " + name);
    System.out.println("Age : " + age);
    System.out.println("Sex : " + sex);
  }
  public static void displayOldestAge(List<Player> players){
        if (players.size() == 0) return;
        Player oldestPlayer = players.get(0);
        for (Player player : players){
            if (player.age > oldestPlayer.age){
                oldestPlayer = player;
            }
        }
        System.out.println("The player oldest age is " + oldestPlayer.name + ", Age: " + oldestPlayer.age);
    }
}但是,当我想对文件main调用这个方法时,我会收到一条错误消息:
Main.java:9: error: cannot find symbol
    displayOldestAge(players);
    ^
  symbol:   method displayOldestAge(List<Player>)
  location: class Main
1 error在我的主文件中,我有以下内容:
import java.util.*;
class Main {
  public static void main(String[] args) {
    List<Player> players = new ArrayList <Player>();
    players.add(new Player("Eric", 31, true));
    displayOldestAge(players); 
    
  }
  
}我不明白?我的方法调用不正确吗?
发布于 2021-04-17 00:51:02
displayOldestAge函数是静态函数。并且该函数不是主类的成员函数。所以你必须像这样打电话。
Player.displayOldestAge(players)https://stackoverflow.com/questions/67129149
复制相似问题