我想创建一个类来存储狗详细信息对象的列表。
我有DogDetails类,然后有另一个名为Vetrinary的类,我想在其中创建一个ArrayList来存储狗的详细信息。这是我走了多远:

保存狗的细节的类

/**
 * represents the details of a dog's identity
 * pin for a vetrinary.
 */
public class DogDetails
{
    // the dog name
    private String name;
    // the dogs pin
    private int pin;

    /**
     * Create a new pet with a given name and chip pin.
     */
    public DogDetails(String name, int pin)
    {
            this.name = name;
            this.pin = pin;


    }

    /**
     * Return the name of this dog.
     */
    public String getDogName()
    {
        return name;
    }

    /**
     * Return the chip of the dog.
     */
    public int getPin()
    {
        return pin;
    }
}


创建狗的详细信息的清单的类

import java.util.ArrayList;

/**
 * A class to store a list of DogDetails objects
 */
public class Vetrinary
{
    //An ArrayList for storing student loans.
    private ArrayList<DogDetails> dogDetails;
    int id;
    String amount;

   /**
    * Add method taking the dog's name and pin
    */
   public void addDog(String name, int pin)
   {

    }
}


我不确定该怎么办,应该将狗的详细信息添加到兽医类中还是全部通过DogDetails类去那里。

最佳答案

您可能不想在您的兽医班上构造那只狗:您应该给它一个Dog对象。

在这两个类之外(例如,在您的main方法中)构造一条狗。然后将他添加到您的兽医对象列表中。

Veterinary vet = new Veterinary();
Dog someDog = new Dog("Doggie", 2);


然后将其添加到您的兽医中:

vet.addDog(someDog);


您的兽医课看起来像这样:

public class Veterinary {
   private List<Dog> dogs = new ArrayList<Dog>();

   public void addDog(Dog dog) {
       dogs.add(dog);
   }
}


Dog之外创建Veterinary的原因是由于可扩展性。如果明天您决定还希望在狗的构造函数中使用Date标记其出生日期,那么您将必须更改所有方法。如果只是传递一个Dog,则不是这种情况,您只需要更改初始化即可。

如果您被迫这样做:

public class Veterinary {
   private List<Dog> dogs = new ArrayList<Dog>();

   public void addDog(String name, int pin) {
       Dog dog = new Dog(name, pin);
       dogs.add(dog);
   }
}

关于java - arraylist java宠物名称和芯片号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20242942/

10-11 22:27
查看更多