Ajuda! Quando tento exibir vetores aparecem resultados do tipo Lutador@1db9742

Olá, estou fazendo esse projeto com base nas aulas do curso em vídeo, e para tal, criei esse vetor com 6 posições para armazenar informações de lutadores, no entanto, quando coloco para rodar ele me exibi um resultado tanto estranho Ex.:Lutador@1db9742 , se alguém puder me ajudar agradeço. Abaixo está a classe Principal , no entanto existe a Classe Lutador e Luta;

package principal;

public class Principal {
  public static void main(String[] args) {
    Lutador l[] = new Lutador[6];
   
    l[0] = new Lutador("Pretty Boy","França",31,1.75f,68.9f,11,2,1);
    l[1] = new Lutador("Putscript","Brasil",29,1.68f,57.8f,14,2,3);
    l[2] = new Lutador("Snapshadow","EUA",35,1.65f,80.9f,12,2,1);
    l[3] = new Lutador("Dead Code","Australia",28,1.93f,81.6f,13,0,2);
    l[4] = new Lutador("UFOCobol","Brasil",37,1.78f,119.3f,5,4,3);
    l[5] = new Lutador("Nerdaart","EUA",30,1.81f,105.7f,12,2,4);
       
    Luta lt = new Luta();
    lt.marcarLuta(l[0],l[1]);
    lt.apresentacao();
    lt.lutar();

Faltou o código das classes Luta e Lutador.

Provavelmente você está usando print em uma classe sem sobrescrever o método toString(), o que faz com que o Java imprima o endereço de memória da variável, não o conteúdo dos seus atributos.

Veja: Sobrescrvendo o metodo ToString [Resolvido]

Abraço.

A classe Luta e Lutador são essas daqui respectivamente

package principal;

import java.util.Random;

public class Luta {

    private Lutador desafiado;
    private Lutador desafiante;
    private int rounds;
    private boolean aprovada;
    
    public void marcarLuta(Lutador a, Lutador b){
          if((a.getCategoria().equals(b.getCategoria()) && (a != b))){
              
             this.aprovada = true;
             this.desafiado = a;
             this.desafiante = b;
              
              System.out.println("Status: Luta Marcada");
              System.out.println("");
             
          }else{
              this.aprovada = false;
              this.desafiado = null;
              this.desafiante = null;
              System.out.println("Status: A luta não pode acontecer");
          }
    }
    
    public void apresentacao(){
        System.out.println("=========APRESENTAÇÃO==========");
        System.out.println("Lady em Gentleman!!!!");
        System.out.println("No canto direito, o desafiado " + getDesafiado());
        System.out.println("No canto esquerdo, o desafiante " + getDesafiante());
        System.out.println("Que comece a luta!!!!!!!");
        System.out.println("");
    }
    
    public void lutar(){
        if(this.getAprovada()){
           Random ale = new Random();
           int aleatorio = ale.nextInt(3); //gera três resultados, 0 , 1 ou 2.
            
            switch(aleatorio){
                
                case 0:
                    System.out.println("A luta empatou");
                    this.desafiado.empatarLuta();
                    this.desafiante.empatarLuta();
                    break;
                    
                case 1:
                    System.out.println("O lutador " + this.desafiado + " Venceu");
                    this.desafiado.ganharLuta();
                    this.desafiante.perderLuta();
                    break;
                case 2:
                    System.out.println("O lutador " + this.desafiante + "Venceu");
                    this.desafiado.perderLuta();
                    this.desafiante.ganharLuta();
                    break;
            }
        }else{
            System.out.println("A luta não pode ser marcarda");
        }
    }

    public Lutador getDesafiado() {
        return desafiado;
    }

    public void setDesafiado(Lutador desafiado) {
        this.desafiado = desafiado;
    }

    public Lutador getDesafiante() {
        return desafiante;
    }

    public void setDesafiante(Lutador desafiante) {
        this.desafiante = desafiante;
    }

    public int getRounds() {
        return rounds;
    }

    public void setRounds(int rounds) {
        this.rounds = rounds;
    }

    public boolean getAprovada() {
        return aprovada;
    }

    public void setAprovada(boolean aprovada) {
        this.aprovada = aprovada;
    }
    
    
}



package principal;

<b>public class Lutador {</b>

    private String nome;
    private String nacionalidade;
    private int idade;
    private float altura;
    private float peso;
    private String categoria;
    private int vitorias;
    private int derrotas;
    private int empates;
    
    public Lutador(String nom,String nac,int id,float alt,float pes,int vit,int derr,int empt){
        setNome(nom);
        setNacionalidade(nac);
        setIdade(id);
        setAltura(alt);
        setPeso(pes);
        setVitorias(vit);
        setDerrotas(derr);
        setEmpates(empt);
    }
    public void apresentar(){
        System.out.println("==========APRESENTAÇÃO==========");
        System.out.println("Nome do lutador: " + this.getNome());
        System.out.println("Nacionalidade: " + this.getNacionalidade());
        System.out.println("Idade: " + this.getIdade());
        System.out.println("Peso: " + this.getPeso());
        System.out.println("Categoria: " + this.getCategoria());
        System.out.println("Vitórias: " + this.getVitorias());
        System.out.println("Derrotas: " + this.getDerrotas());
        System.out.println("Empates: " + this.getEmpates());
        System.out.println("=============================== ");
    }
    
    public void status(){
        System.out.println("==========STATUS==========");
        System.out.println("Nome do lutador: " + this.getNome());
        System.out.println("Nacionalidade: " + this.getNacionalidade());
        System.out.println("Idade: " + this.getIdade());
        System.out.println("Peso: " + this.getPeso());
    }
    
    public void ganharLuta(){
        setVitorias(getVitorias() + 1);
    }
    
    public void perderLuta(){
        setDerrotas(getDerrotas() + 1);
    }
    
    public void empatarLuta(){
        setEmpates(getEmpates() + 1);
    }

    public String getNome() {
        return nome;
    }

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

    public String getNacionalidade() {
        return nacionalidade;
    }

    public void setNacionalidade(String nacionalidade) {
        this.nacionalidade = nacionalidade;
    }

    public int getIdade() {
        return idade;
    }

    public void setIdade(int idade) {
        this.idade = idade;
    }

    public float getAltura() {
        return altura;
    }

    public void setAltura(float altura) {
        this.altura = altura;
    }

    public float getPeso() {
        return peso;
    }

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

    public String getCategoria() {
        return this.categoria;
    }

    private void setCategoria() {
        if(this.peso < 52.2){
            this.categoria = "Categoria Inválida";
        }else if(this.peso <= 70.3){
            this.categoria = "Peso Leve";
        }else if(this.peso <= 83.9){
            this.categoria = "Peso Médio";
        }else if(this.peso <= 120.2){
            this.categoria = "Peso Pesado";
        }else{
            this.categoria = "Categoria Inválida";
        }
    }

    public int getVitorias() {
        return vitorias;
    }

    public void setVitorias(int vitorias) {
        this.vitorias = vitorias;
    }

    public int getDerrotas() {
        return derrotas;
    }

    public void setDerrotas(int derrotas) {
        this.derrotas = derrotas;
    }

    public int getEmpates() {
        return empates;
    }

    public void setEmpates(int empates) {
        this.empates = empates;
    }
    
    
}

Como falei, sobrescreva o método toString() da classe Lutador ou crie um método para exibir os dados do lutador e use-o nos lugares onde deseja exibir esses dados. Por exemplo:

System.out.println("O lutador " + this.desafiante.getNome() + "Venceu"); // note o getNome()

System.out.println("No canto direito, o desafiado " + getDesafiado().getNome()); // novamente, getNome() foi adicionado

Abraço.

1 curtida

Consegui compreender, obrigado amigo :grinning:

no peso não precisa colocar (70.3>= && <=83.9) para ficar dentro de cada categoria?