Java 如何比较两个对象上的年龄值?

Java 如何比较两个对象上的年龄值?,java,Java,我知道这个主题存在于StackOverFlow上,但我并不真正理解其中的逻辑。 我有一个带有3个变量的类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; }

我知道这个主题存在于StackOverFlow上,但我并不真正理解其中的逻辑。

我有一个带有3个变量的类
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);

  }
  ...
然后,我在我的文件
Main
中创建了两个对象,如下所示:

List<Player> players = new ArrayList <Player>();
players.add(new Player("Eric", 31, true));
players.add(new Player("Juliette", 27, false));

您的displayOldestAge方法有很多问题。这是一个修订版

主要变化:

  • 输入参数应该是播放器对象的数组,而不是整数
  • 不需要追踪最老的年龄,只需要追踪最老的球员
  • 如果数组为空,则应退出
  • 使用存储的
    oldestPlayer
    在方法末尾回显最老的玩家信息
public void displayOldestAge(播放器[]阵列层){
如果(arrayPlayer.length==0)返回;
Player oldestPlayer=arrayPlayer[0];
for(int i=1;ioldestPlayer.age)
{
oldestPlayer=arrayPlayer[i];
}
}
System.out.println(“玩家最老的年龄是”+oldestPlayer.name+”,年龄:+oldestPlayer.age)
}

您的displayOldestAge方法有很多问题。这是一个修订版

主要变化:

  • 输入参数应该是播放器对象的数组,而不是整数
  • 不需要追踪最老的年龄,只需要追踪最老的球员
  • 如果数组为空,则应退出
  • 使用存储的
    oldestPlayer
    在方法末尾回显最老的玩家信息
public void displayOldestAge(播放器[]阵列层){
如果(arrayPlayer.length==0)返回;
Player oldestPlayer=arrayPlayer[0];
for(int i=1;ioldestPlayer.age)
{
oldestPlayer=arrayPlayer[i];
}
}
System.out.println(“玩家最老的年龄是”+oldestPlayer.name+”,年龄:+oldestPlayer.age)
}

我可以看到OldestAge是一个int原语。你想和Player.age进行比较,这是不正确的。 将oldestAge与player.age进行比较,创建一个player对象的引用,并将其分配给数组player[i]。
现在打印reference.name应该给出正确的结果。

我可以看到OldestAge是一个int原语。你想和Player.age进行比较,这是不正确的。 将oldestAge与player.age进行比较,创建一个player对象的引用,并将其分配给数组player[i]。
现在打印reference.name应该给出正确的结果。

arrayPlayer
是一个int数组,而不是
Player
数组。这不会编译。
oldestAge
也是一个整数,因此
oldestAge.age
没有任何意义。另外,如果您有一个
列表
,为什么
displayOldestAge
的输入是一个普通数组?
arrayPlayer
是一个int数组,而不是
Player
数组。这不会编译。
oldestAge
也是一个整数,因此
oldestAge.age
没有任何意义。另外,如果您有一个
列表
,为什么
displayOldestAge
的输入是一个普通数组?谢谢您的解释。我有个问题。在主文件中调用displayOldestAge()方法是什么?我有:
displayOldestAge(玩家)但我有一条错误消息-->
Main.java:23:error:找不到symbol displayOldestAge(玩家)您必须从类本身内部调用它,或者将其设置为静态并在类的命名空间下调用它。感谢您的解释。我有个问题。在主文件中调用displayOldestAge()方法是什么?我有:
displayOldestAge(玩家)但我有一条错误消息-->
Main.java:23:error:找不到symbol displayOldestAge(玩家)您必须从类本身内部调用它,或者将其设为静态并在类的命名空间下调用它。
public void displayOldestAge(int[] arrayPlayer){
    int oldestAge = 0;

    for(int i=0; i<arrayPlayer.length; i++){
      if(arrayPlayer[i].age > oldestAge.age){
        oldestAge = arrayPlayer[i];
      }
    }
    System.out.println("The player oldest age is " + ???);
  }
public void displayOldestAge(Player[] arrayPlayer){

    if(arrayPlayer.length == 0) return;

    Player oldestPlayer = arrayPlayer[0];

    for(int i = 1; i < arrayPlayer.length; i++)
    {
        if(arrayPlayer[i].age > oldestPlayer.age)
        {
            oldestPlayer = arrayPlayer[i];
        }
    }

    System.out.println("The player oldest age is " + oldestPlayer.name + ", Age: " + oldestPlayer.age)
}