Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

setar o peso de um cachorro

Tenho as classes: class Cachorros { protected String nome; protected double peso;

public void setNome(String nome) { this.nome = nome; }

public void setPeso(double peso) { this.peso = peso; } }

class TestaCachorro { public static void main (String[] args) { Cachorros cao = new Cachorros(); cao.setNome("anakin"); cao.setNome("padme")

Meu problema: como passo o peso para cada animal?? se escrevo: cao.anakin.setPeso(5.6); não compila. se escrevo: anakin.setPeso(5.6); não compila. } }

6 respostas

Luiz a sua variavel para o objeto Cachorro se chama cao, e não anakin.

Quando você setou o nome do cachorro oque que você fez?

cao.setNome("anakin");

E para o peso não seria diferente.

cao.setPeso(5.8);

E uma coisa que eu vi, acho que você quer criar 2 cachorro certo? porque você fez, 2 vezes cao.setNome("1VEZ"), e depois fez denovo cao.setNome("2VEZ)", passando o nome que você fez, lembra que a gente está no mundo orientado a objeto, se você quer 2 objeto, você precisa criar 2 cachorro.

     public static void main(String[] args) {
        Cachorro cao = new Cachorro(); // 1 variavel para a referencia de Cachorro.
    cao.setNome("QUALQUERNOME");
    cao.setPeso(20.0);
    // agora temos um objeto completo cao.
    // se quiser um outro objeto basta.

    Cachorro cachorro = new Cachorro();
    cachorro.setNome("OUTRONOME");
    cachorro.setPeso(15.0);

    // temos 2 objetos agora
    }

Mas como setar o peso de padme? Se eu escrever cao.setPeso(4.3), como o Java vai entender que 5.8 é o peso de anakin e padme pesa 4.3:

cao.setNome("anakin"); cao.setNome("padme");

cao.setPeso(5.8); cao.setPeso(4.3);

solução!

Ahhh Ok agora eu li o resto da resposta, desculpe!!! Entendi Alisson, muito obrigado!!!!

Calma, por partes. Quando você faz:

Cachorros cao = new Cachorros();

Você está criando apenas uma instancia do objeto Cachorros, ou seja, você só tem um cachorro.

Se fizer, cao.setNome("anakin") o caoagora se chama anakin, quando você na sequencia faz, cao.setNome("padme"), você na trocando no nome do caoque era anakinpara padme.

Então pra funcionar você teria que fazer algo assim:

class TestaCachorro {
    public static void main (String[] args) { 

        Cachorros cao1 = new Cachorros();
        cao1.setNome("anakin"); 

        Cachorros cao2 = new Cachorros();
        cao2.setNome("padme");
    }
}

Agora você pode fazer:

cao1.setPeso(5.6);
cao2.setPeso(4.0);

E pra complementar, se você criar os getters dentro da classe Cachorros:

public String getNome() { 
    return nome; 
}
public double getPeso() { 
    return peso; 
}

Você pode pegar os valores do nome e do peso dos cachorros que você criou:

cao1.getNome(); // vair retornar "anakin"
cao1.getPeso(); // vai retornar 5.6

cao2.getNome(); // vair retornar "padme"
cao2.getPeso(); // vai retornar 4.0

Espero ter ajudado e boa sorte nos estudos.

Valeu Bruno!!! Obrigado!!!

Opa precisando tamo ai kk

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software