1
resposta

Desafio - Animal - Não consigo mudar o valor da String

Estou quebrando a cabeça para mudar o valor da String ração de cada animal. O código exibe cada animal e seus valores, mas tentei e não consegui colocar valores na String ração pra cada um.

GATO

package animal;

public class Gato extends Animal {

    public void arranharObjetos() {
        System.out.println("Arranhar o sofá");
    }

    @Override
    public void dadosAnimal() {
        super.dadosAnimal();
        arranharObjetos();
    }

    public void emitirSom() {
        System.out.println("Meoooow meooow");
    }
}
Cachorro

package animal;

public class Cachorro extends Animal{
    public void pegarBola(){
        System.out.println("Correr atrás da Bola.");
    }

    @Override
    public void dadosAnimal() {
        super.dadosAnimal();
        pegarBola();
    }

    public void emitirSom() {
        System.out.println("Au Au");
    }
}
Classe animal

package animal;

public class Animal {
    private int patas = 4;
    private int orelhas = 2;
    private int rabo = 1;
    private String ração;

    public int getPatas() {
        return patas;
    }

    public int getOrelhas() {
        return orelhas;
    }

    public int getRabo() {
        return rabo;
    }

    public void emitirSom(){
        System.out.println("Emitindo som...");
    }

    public void dadosAnimal(){
        System.out.println("Este animal tem: " + getPatas() + " Patas, " + getOrelhas() + " Orelhas, "+ getRabo() + " Rabo.");
        System.out.println("\nEste se comunica assim: ↓");
        emitirSom();
        System.out.println("Sua comida preferida é: " + getRação());
        System.out.println("\ne ele gosta de: ↓");
    }

    public String getRação() {
        return ração;
    }

    public void setRação(String ração) {
        this.ração = ração;
    }
}
Main

import animal.Animal;
import animal.Cachorro;
import animal.Gato;

public class Main {
    public static void main(String[] args) {
        Gato gato1 = new Gato();

        System.out.println("\nAnimal - 1: GATO\n");
        gato1.dadosAnimal();

        Cachorro cachorro1 = new Cachorro();

        System.out.println("\nAnimal - 2: CACHORRO\n");
        cachorro1.dadosAnimal();

    }
}
1 resposta

Uma dica, Não escreva seus atributos com acentuação,

E eu testei aqui e está funcionando. (Ou eu não entendi a sua dúvida)

Teu Main ficou assim?

public class Main {
   public static void main(String[] args) {
       Gato gato1 = new Gato();
       gato1.setRação("peixe");    // <<<------- Inclui a atribuição da ração do gato

       System.out.println("\nAnimal - 1: GATO\n");
       gato1.dadosAnimal();

       Cachorro cachorro1 = new Cachorro();
       cachorro1.setRação("carner");  // <<<------- Inclui a atribuição da ração do cachorro

       System.out.println("\nAnimal - 2: CACHORRO\n");
       cachorro1.dadosAnimal();
   }
}