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