您好我使用以下私有属性定义了以下Fish类(基本上它只是一个包含指示fish类型的字符串的类和一个包含其大小(以厘米为单位)的整数。我还为每个属性创建了get方法,构造函数这需要鱼的大小和种类 返回以下列格式的字符串toString()方法: 10cm的派克 ):
public class Fish
{
private int size;
private String species;
public int getSize()
{
return this.size;
}
public String getSpecies()
{
return this.species;
}
public Fish(int s, String p)
{
size = s;
species = p;
}
public String toString()
{
return("A " + this.size + " cm " + this.species);
}
}
然后我定义了一个定义以下私有属性的Pond类:
fish - 一个包含池塘中所有Fish对象的数组
numFish - 一个int指示当前在池塘鱼的#
这就是我所做的:(如果我错了请告诉我)
public class Pond
{
private int numFish;
private Fish [] fishes;
}
现在我遇到麻烦的是创建一个能够承受池塘容量的构造函数,其容量是 可以在任何时间被储存在池塘养鱼的最大数量。我不确定如何创建一个数组作为构造函数的参数。此外,我在创建一个名为isFull()的方法时遇到问题,该方法返回一个表示池塘是否有的布尔值 达到了鱼类的能力。感谢任何帮助,非常感谢你!
答案 0 :(得分:4)
因此,您需要一个以容量作为参数的构造函数:
public Pond(int capacity)
因此容量是用于存储鱼类的数组的长度:
public Pond(int capacity) {
this.fishes = new Fish[capacity];
}
Java教程中介绍了几乎所有其他类似的数组。谷歌搜索“Java教程数组”立即找到它:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html
现在,池塘什么时候满了?在我看来,如果鱼的数量等于其容量,它就已经满了:
public boolean isFull() {
return numFish == fishes.length;
}
答案 1 :(得分:1)
你必须像这样制作构造函数,或者你可以在Pond类中创建setter方法
public Pond(int capacity) {
this.fishes = new Fish[capacity];
}
你可以创建像
这样的isFull方法逻辑if (numFish == capacity)
{
System.out.println("Pond is full");
}
答案 2 :(得分:0)
使用类似于以下内容的构造函数:
public Pond(int numberOfFish)
{
numFish=numberOfFish;
fishes=new Fish[numberOfFish];
}