Como fazer método receber um objeto como parâmetro?

18/06/2017

0

Para entender melhor Orientação a Objetos fiz um projeto baseado no games de Pokemon, com as classes Pokemon, Escolha, Lista e Teste.
Na classe Pokemon, existem os atributos privados Hp, Atk e Def bem como seus métodos getters e setters.
Na classe Lista, criei 3 objetos da classe Pokemon e usei o método set para colocar os valores de Hp, de Atk e de Def aos três objetos.
A classe Escolha possui o método estático escolher(Pokemon pokemon), que recebe um objeto Pokemon como parâmetro:

    public static void escolher (Pokemon pokemon){
        pokemon.getHp();
        pokemon.getAtk();
        pokemon.getDef();
    }



Mas, na classe Teste eu chamei o método estático escolher() e precisava passar como parâmetro a ele um daqueles 3 objetos já instanciados na classe Lista para utilizar seus Hp, Atk e Def. Como faço isso?
Gabriel

Gabriel

Responder

Posts

19/06/2017

Joel Rodrigues

Fala, Lucas. Beleza? Seria bom ver o código da classe Lista para saber como escolher um Pokémon da lista.

Outra coisa, note que no corpo do seu método escolher você simplesmente chama os gets do objeto. Repare que isso não tem nenhum efeito, pois esses métodos retornam os valores dos atributos, mas você não está fazendo nada com eles.

Abraço.
Responder

19/06/2017

Gabriel

Opa, e aí Joel.
Então, o código da minha classe Lista seria o seguinte

public class Lista {
    
   public static void main(String[] args) {
        
        Pokemon bulbasaur = new Pokemon();
        bulbasaur.setHp(45);
        bulbasaur.setAtk(49);
        bulbasaur.setDef(49);
        
        Pokemon charmander = new Pokemon();
        charmander.setHp(39);
        charmander.setAtk(52);
        charmander.setDef(43);
        
        Pokemon squirtle = new Pokemon();
        squirtle.setHp(44);
        squirtle.setAtk(48);
        squirtle.setDef(65);
    
    }
}


O que eu gostaria de fazer era pegar por exemplo o objeto bulbasaur que está na classe Lista e passa-lo como parâmetro para o método escolher, simplificando acho que seria como compartilhar o mesmo objeto com mais de uma classe.
Responder

09/08/2017

Clayton Silva

Gabriel, se eu tiver entendido corretamente é mais simples do que vc pensa.
Basta vc chamar o método, passando o objeto que deseja:

escolher(bulbasaur);

ou
escolher(charmander);

ou
escolher(squirtle);


É isso mesmo?
E dentro do método escolher, vc pode usar os atributos desse objeto, por exemplo, exibindo eles:

public static void escolher (Pokemon pokemon){
        System.out.println("Hp: " + pokemon.getHp());
        System.out.println("Atk: " + pokemon.getAtk());
        System.out.println("Def: " + pokemon.getDef());
    }
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar