return не возвращает значение [закрыт]

122
04 октября 2019, 23:00

Не могу понять почему метод say(String something) не возвращает "Ты чё не знаешь, что рыбы не разговаривают?"

Есть подкласс Fish

public class Fish extends Pet {
    int currentDepth=0;
    public int dive(int howDeep){
        currentDepth=currentDepth + howDeep;
        System.out.println("Ныряю на глубину " + howDeep + " футов");
        System.out.println("Я на глубине " + currentDepth + " футов ниже уровня моря");
        return currentDepth;
    }
    public String say(String something){
        return "Ты чё не знаешь, что рыбы не разговаривают?";
    }
}

Есть главный класс FishMaster

public class FishMaster {
    public static void main(String[] args) {
        Fish myFish = new Fish();
        myFish.dive(2);
        myFish.dive(3);
        myFish.sleep();
        myFish.say("Привет");
    }
}

Есть супер класс Pet

public class Pet {
        int age;
        float weight;
        float height;
        String color;
        public void sleep(){
            System.out.println("Спокойной ночи! До завтра");
        }
        public void eat(){ System.out.println("Я очень голоден, давайте перекусим чипсами!");
        }
        public String say(String aWord){
            String petResponse = "Ну ладно!! " +aWord;
            return petResponse;
        }
    }

Есть главный класс PetMaster

public class PetMaster {
    public static void main(String[] args) {
        String petReaction;
        Pet myPet = new Pet();
        myPet.eat();
        petReaction = myPet.say("Чик!! Чирик!!");
        System.out.println(petReaction);
        myPet.sleep();
    }
}

Это весь код. Он взят с книги. В книге выводится строка "Ты чё не знаешь, что рыбы не разговаривают?", а у меня почему-то не выводится.

Программа выводит: Ныряю на глубину 2 футов Я на глубине 2 футов ниже уровня моря Ныряю на глубину 3 футов Я на глубине 5 футов ниже уровня моря Спокойной ночи! До завтра

Answer 1

Строка возвращается. Но Вы с ней ничего не делаете.

Fish myFish = new Fish();
...
System.out.println(myFish.say("Привет"));
Answer 2

У вас в есть два public static void main в программе, соответственно 2 точки входа в нее, на данный момент программа запускается с класса FishMaster и соответственно выводит то что там и прописано, вам надо переназначить точку входа на PetMaster, в intelij это делается через edit configuration -> main class

READ ALSO
Кнопка назад Toolbar

Кнопка назад Toolbar

Прочел документацию, и сделал как написано AndroidManifestxml

108
Почему у меня не работает аннотация @PreRemove?

Почему у меня не работает аннотация @PreRemove?

Пишу интеграционные тесты для сервисов с базой в памяти (h2)Сервисы не содержат никакой логики и просто вызывают аналогичные методы у ДАО

115
stream стал доступен на Android api 21?

stream стал доступен на Android api 21?

У меня minSdkVersion == 21

129