如何创建一个构造函数,该构造函数获取包含整数和对象数组的类的容量

时间:2014-02-01 17:03:15

标签: java arrays object methods constructor

您好我使用以下私有属性定义了以下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()的方法时遇到问题,该方法返回一个表示池塘是否有的布尔值 达到了鱼类的能力。感谢任何帮助,非常感谢你!

3 个答案:

答案 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];
}