有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

arraylist java宠物名和芯片号

我想创建一个类来存储dog details对象的列表。 我有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)
   {

    }
}

我有点不确定该怎么办,我应该把狗的详细信息添加到兽医课程中,还是应该全部通过狗的详细信息课程


共 (1) 个答案

  1. # 1 楼答案

    你可能不想在兽医类中构造狗:你应该给它一个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);
       } 
    }
    

    Veterinary之外创建Dog的原因是可扩展性。如果你明天决定在你的狗的构造中也要有一个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);
       } 
    }