我想创建一个类来存储狗详细信息对象的列表。
我有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/