Java 将一个对象放入另一个对象数组中的和对象数组中
所以我对编码/Java是新手,我正在从事这个项目。我的任务是创建3个不同的类,我在这里,使他们合作。我已经成功地使我的FishTankManagerApp类检索到一个新的Fish对象,我正在尝试找出如何将其放入FishTank对象中 我的FishTank类只是用来创建一个可以容纳5条鱼的数组对象,我想我做得对。在我的FishTankManagerApp类中,我创建了一个包含10个FishTank对象的数组 我一生都无法解决的问题是,在创建鱼对象之后,如何将鱼对象放置到特定的鱼缸对象中?我在代码末尾记下了遇到问题的地方 基本上我知道我正在尝试将我创建的一个对象放在一个数组中,该数组包含另一个可以存储鱼对象的数组。。。我想 任何帮助都将不胜感激!谢谢大家!Java 将一个对象放入另一个对象数组中的和对象数组中,java,Java,所以我对编码/Java是新手,我正在从事这个项目。我的任务是创建3个不同的类,我在这里,使他们合作。我已经成功地使我的FishTankManagerApp类检索到一个新的Fish对象,我正在尝试找出如何将其放入FishTank对象中 我的FishTank类只是用来创建一个可以容纳5条鱼的数组对象,我想我做得对。在我的FishTankManagerApp类中,我创建了一个包含10个FishTank对象的数组 我一生都无法解决的问题是,在创建鱼对象之后,如何将鱼对象放置到特定的鱼缸对象中?我在代码末
import java.util.Scanner;
public class Fish {
private static Scanner stdin = new Scanner(System.in);
private String userInput;
private int userInput2;
public boolean mean;
public String name;
public Fish(){
System.out.println("What is your fishes name?");
userInput = stdin.next();
this.name = userInput;
System.out.println("Is this fish aggressive?\n"+
"(1)Yes\n(2)No");
userInput2 = stdin.nextInt();
if (userInput2 == 1)
this.mean = true;
else
this.mean = false;
}
}
我建议您在鱼缸中添加一种方法,使添加鱼变得简单。也许是这样的:
public FishTank(){
private Fish[] tank = new Fish[5];
public boolean addFish(Fish fish) {
// ... add code here to put the fish to the tank array
// return true if there was room in the tank, false otherwise
}
}
请注意,tank变量现在是私有的。在Java中保持成员变量的私有性并使用方法访问它们通常是一个好主意
然后,在您得到您提到的注释的地方,您可以调用新方法:
boolean addedSuccessfully = tanks[userInput].addFish(fish);
您可能不需要像我所显示的那样返回布尔值,但是如果您需要检查数组(即,鱼缸是否有容纳新鱼的空间),它可能会很方便。我建议您向鱼缸添加一种方法,以使添加鱼变得简单。也许是这样的:
public FishTank(){
private Fish[] tank = new Fish[5];
public boolean addFish(Fish fish) {
// ... add code here to put the fish to the tank array
// return true if there was room in the tank, false otherwise
}
}
请注意,tank变量现在是私有的。在Java中保持成员变量的私有性并使用方法访问它们通常是一个好主意
然后,在您得到您提到的注释的地方,您可以调用新方法:
boolean addedSuccessfully = tanks[userInput].addFish(fish);
您可能不需要像我所显示的那样返回布尔值,但如果需要检查数组(即水箱是否有容纳新鱼的空间),它可能会很方便。目前,您要做的是将FishTank对象设置为等于fish实例,而不是将其添加到FishTank内部的tank变量中 现在,您无法访问FishTank类内部的tank变量。您需要做的是使其成为一个全局变量,并提供访问器/修饰符方法。例如:
public class FishTank {
private Fish[] tank;
private int numFish;
public FishTank(){
this.tank = new Fish[5];
this.numFish = 0;
}
public void add(Fish f){
if(this.numFish >= 5){
//handle "tank is full" case
}
else{
numFish++;
this.tank[numFish] = f;
}
}
}
然后在所需的FishTank对象上调用add:
坦克[userInput].addfish 目前,您要做的是将FishTank对象设置为一个Fish实例,而不是将其添加到FishTank内部的tank变量中 现在,您无法访问FishTank类内部的tank变量。您需要做的是使其成为一个全局变量,并提供访问器/修饰符方法。例如:
public class FishTank {
private Fish[] tank;
private int numFish;
public FishTank(){
this.tank = new Fish[5];
this.numFish = 0;
}
public void add(Fish f){
if(this.numFish >= 5){
//handle "tank is full" case
}
else{
numFish++;
this.tank[numFish] = f;
}
}
}
然后在所需的FishTank对象上调用add:
坦克[userInput].addfish 您可以使用点访问该字段,并将其与任何其他数组一样使用:tanks[userInput]。tank[*]=fish您可以使用点访问该字段,并将其与任何其他数组一样使用:tanks[userInput]。tank[*]=fish为了将来的参考,这里通常不赞成为有关家庭作业的问题提供完整的代码解决方案。相反,我们会给出建设性的提示和建议。非常感谢您的想法!我将考虑这些评论,并找出一种方法,我可以开发自己的解决方案,使用你们向我展示的一些东西!我感谢你们帮助我进一步理解这些概念!作为将来的参考,这里通常不赞成为家庭作业问题提供完整的代码解决方案。相反,我们会给出建设性的提示和建议。非常感谢您的想法!我将考虑这些评论,并找出一种方法,我可以开发自己的解决方案,使用你们向我展示的一些东西!我感谢你们帮助我进一步理解这些概念!非常感谢你。这回答了我的问题,还有更多!谢谢你的帮助,非常感谢。这回答了我的问题,还有更多!我感谢你的帮助