Цикл над объектами при предоставлении атрибутов - PullRequest
0 голосов
/ 25 января 2020

Я знаю, что мой код не имеет смысла, я просто учусь, и при этом пытаюсь сделать for-l oop. Смотрите комментарий в Главном! Когда я использую c for-l oop, имена теряют функциональность ".gender"! Ищу помощи!

public class Dog {


public String whatGender(String gender) {
    if (gender == "yes") {
        gender = "Male";
    } else {
        gender = "Female";
    }
    return gender;
}


public class Main {

public static void main (String[] args) {
    Dog Kvist = new Dog("Vuf!", 8, "yes");
    Dog Snoop = new Dog("Doggy Dogg World!", 48, "yes");
    Dog Greta = new Dog("We need change now!", 17, "no");

    //How do I translate the next 3 lines to a for-loop? #StillLearning
    Kvist.gender = Kvist.whatGender(Kvist.gender);
    Snoop.gender = Snoop.whatGender(Snoop.gender);
    Greta.gender = Greta.whatGender(Greta.gender);

Ответы [ 2 ]

0 голосов
/ 25 января 2020

По крайней мере, переменная экземпляра gender из Dog отсутствует.
И метод whatGender можно перекодировать:

public String whatGender(final String gender) {
    if (gender == "yes") {
        return "Male";
    } else {
        return "Female";
    }
}

... и мне интересно что вы пытались достичь с помощью этого метода?

Но в любом случае, просто взяв вопрос «как есть», вы могли бы сделать это:

Stream.of(Kvist, Snoop, Greta).forEach(dog -> dog.gender = dog.whatGender(dog.gender));

... но есть и немного много dog.gender там происходит.

0 голосов
/ 25 января 2020

Один из подходов заключается в создании массива Dog с и последующем циклировании по ним, используя для l oop:

public static void main (String[] args) {
    Dog Kvist = new Dog("Vuf!", 8, "yes");
    Dog Snoop = new Dog("Doggy Dogg World!", 48, "yes");
    Dog Greta = new Dog("We need change now!", 17, "no");

    Dog[] dogs = {Kvist, Snoop, Greta};

    //How do I translate the next 3 lines to a for-loop? #StillLearning
    for (int i = 0; i < dogs.length; i++)
    {
        dogs[i].gender = dogs[i].whatGender(dogs[i].gender);
    }
    // Kvist.gender = Kvist.whatGender(Kvist.gender);
    // Snoop.gender = Snoop.whatGender(Snoop.gender);
    // Greta.gender = Greta.whatGender(Greta.gender);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...