Как завершить метод addDog, removeDog и toString в этом классе Кеннел? - PullRequest
0 голосов
/ 17 января 2020

Я просто хотел получить некоторую информацию о том, как завершить эти методы в классе питомника, который я должен завершить в Java.

Это, вероятно, просто для всех вас, но в настоящее время я не уверен, где Я должен начать, так что любые указания очень приветствуются.

Вот код:

public class APCS_5_2 {

    public static void main(String[] args) {
        Kennel myKennel = new Kennel();

        //myKennel.addDog(new Dog("dog1", 0);
        //myKennel.addDog(new Dog("dog2", 1);
        //myKennel.addDog(new Dog("dog3", 2);
        //myKennel.addDog(new Dog("dog4", 3);
        //myKennel.addDog(new Dog("dog5", 4);
        //System.out.println(myKennel);
        //myKennel.removeDog(2);
        //System.out.println(myKennel);
    }

}

/ * "Клетки питомника" или массив всегда должны быть заполнены с 0 движущимся положительным enter code here. когда новая собака добавляется в питомник, она должна go в следующей доступной «клетке» или индексе, когда собаку удаляют, ее пятно должно быть заполнено, поэтому, если собаку в «клетке 3» убрали, эту клетку нужно будет заполнить с собакой из более высокой пронумерованной «клетки», если они есть. Когда питомник напечатан, он должен отображать только все заполненные клетки * /

class Kennel {
    private Dog[] dogs;

    public Kennel() {
        dogs = new Dog[10];
    }

/*           complete addDog

    complete this method so that it adds the passed in Dog object to the next available "cage" represented by the next null array index in dogs
        In thinking through this you might need to add additional class level variables to properly facilitate this functionality
*/

    public void addDog(Dog d) {
    }

/*          complete removeDog
    complete this method so that the Dog with the id that is passed in is removed from the "Kennel"
    when a dog is removed it's spot must filled so if the dog in "cage 3" were removed
    that cage would need to be filled in with a dog from a higher numbered "cage" if there are any
*/

    public Dog removeDog(int id) {
        return new Dog("remove this and replace with the proper code" , -100);
    }


/*          complete toString

            for each "cage" should output as below for cage 1 or index 0 of the array

            cage:   1
                name:   dog1
                id:     0
*/

    public String toString() {
        String str = "";
        return str;
    }
}


class Dog {
    private String name;
    private int id;

    public Dog(String n, int id) {
        name = n;
        this.id = id;
    }//constructor

    public void setName(String n) {
        name = n;
    }

    public String toString() {
        return "Name\t"+name+"\nID:\t"+id;
    }

}//APCS_5_2

1 Ответ

1 голос
/ 17 января 2020

Мне, конечно, хотелось бы, чтобы вы опубликовали несколько попыток кода, но, поскольку вы упомянули, что хотели получить руководство, см. Ниже очень быструю попытку воссоздать addDog (). Я не слишком много тестировал, и это не завершено, но, пожалуйста, примите ответ, если тебе нравится, и тогда я бы хотел поработать вместе до конца sh до этого :)

class Kennel {

        private Dog[] dogs;
        private int availableCageIndex = 0;
        private int maxCageIndex=10;

    public Kennel() {
            dogs = new Dog[10];
        }

    public void addDog(Dog d) {
            if((availableCageIndex) ==maxCageIndex)
                return;//no space 
            dogs[availableCageIndex] = d;
            availableCageIndex++;
        }
...