Relacionamento entre Classes em Java - Solucionado

Pessoal ! fiz um exercício e no netbeans não acusa nenhum erro até a compilação, e deu o seguinte erro:

Exceção no thread “main” java.lang.NullPointerException
At aula07.Luta.marcarLuta (Luta.java:11)
At aula07.Aula07.main (Aula07.java:19)
C: \ Users \ Professor \ AppData \ Local \ NetBeans \ Cache \ 8.2 \ executor-snippets \ run.xml: 53: Java retornado: 1
FALHA NA CONSTRUÇÃO (tempo total: 3 segundos)

Vou pôr o código q fiz:

package aula07;

public class Aula07 {
    /**
     *
     * @param args
     */
    public static void main(String[] args) {
        Lutador l[] = new Lutador[6];
        
        l[0] = new Lutador("Jacaré", "Brasil", 31, 1.75, 55.5, 14, 2, 3);
        l[1] = new Lutador("Eliabe", "Brasil", 21, 1.80, 65.3, 20, 0, 1);
        l[2] = new Lutador("Mutante", "Brasil", 32, 1.70, 99.8, 14, 3, 1);
        l[3] = new Lutador("Minotauro", "Brasil", 21, 1.80, 100.5, 12, 5, 2);
        l[4] = new Lutador("Vitor Belfort", "Brasil", 21, 1.80, 70.5, 16, 1, 0);
        l[5] = new Lutador("José Aldo", "Brasil", 21, 1.80, 70.5, 17, 1, 2);
        
        Luta UEC01 = new Luta();
        UEC01.marcarLuta(l[0], l[1]);
        UEC01.lutar();
        l[0].status();
        l[1].status();
    }   
}

package aula07;

public class Lutador {
    private String nome;
    private String nacionalidade;
    private int idade;
    private double altura;
    private double peso;
    private String categoria;
    private int vitorias;
    private int derrotas;
    private int empates;

    public Lutador(java.lang.String no,java.lang.String na,int id,double al,double pe,int vi,
            int de, int em){
        this.nome = no;
        this.nacionalidade = na;
        this.idade = id;
        this.altura = al;
        this.peso = pe;
        this.vitorias = vi;
        this.derrotas = de;
        this.empates = em;
    }
    
    public String getNome(){
        return nome;
    }
    
    public void setNome(String no){
        this.nome = no;
    }
    
    public String getNacionalidade(){
        return nacionalidade;
    }
    
    public void setNacionalidade(String na){
        this.nacionalidade = na;
    }
    
    public int getIdade(){
        return idade;
    }
    
    public void setIdade(int id){
        this.idade = id;
    }
    
    public double getAltura(){
        return altura;
    }
    
    public void setAltura(double al){
        this.altura = al;
    }
    
    public double getPeso(){
        return peso;
    }
    
    public void setPeso(double pe){
        this.peso = pe;
        this.setCategoria();
    }
    
    public int getVitorias(){
        return vitorias;
    }
    
    public void setVitorias(int vi){
        this.vitorias = vi;
    }
    
    public int getDerrotas(){
        return derrotas;
    }
    
    public void setDerrotas(int de){
        this.derrotas = de;
    }
    
    public int getEmpates(){
        return empates;
    }
    
    public void setEmpates(int em){
        this.empates= em;
    }
    
    public String getCategoria(){
        return categoria;
    }
    public void setCategoria(){
        if(this.peso<52.2){
            this.categoria = "Inválido";
        }else if(this.peso<=70.3){
            this.categoria = "Leve";
        }else if(this.peso<=83.9){
            this.categoria = "Médio";
        }else if(this.peso<=120.2){
            this.categoria = "Pesado";
        }else{
            this.categoria = "Inválido";
        }
    }
    
    public void ganharLuta(){
        this.setVitorias(getVitorias()+1);
    }
    
    public void perderLuta(){
        this.setDerrotas(getDerrotas()+1);
    }
    
    public void empatarLuta(){
        this.setEmpates(getEmpates()+1);
    }
    
    public void apresentar(){
        System.out.println("----------Apresentação-----------");
        System.out.println("Lutador: " + this.getNome());
        System.out.println("Origem: " + this.getNacionalidade());
        System.out.println(this.getIdade() + " anos");
        System.out.println(this.getAltura() + "m de altura");
        System.out.println("Pesando: " + this.getPeso() + "kg");
        System.out.println("Vitórias: " + this.getVitorias());
        System.out.println("Derrotas: " + this.getDerrotas());
        System.out.println("Empates: " + this.getEmpates());
    }
    
    public void status(){
        System.out.println("-------Status--------");
        System.out.println("Nome: " + this.getNome());
        System.out.println("É um peso: " + this.getCategoria());
        System.out.println("Vitórias: " + this.getVitorias());
        System.out.println("Derrotas: " + this.getDerrotas());
        System.out.println("Empates: " + this.getEmpates());
    }
}

package aula07;
import java.util.Random;

public class Luta {
    private Lutador desafiado;
    private Lutador desafiante;
    private int rounds;
    private boolean aprovada;
    
    public void marcarLuta(Lutador l1, Lutador l2){
        if(l1.getCategoria().equals(l2.getCategoria())&& l1 != l2){
            this.aprovada = true;
            this.desafiado = l1;
            this.desafiante = l2;
        }else{
            this.aprovada = false; 
            this.desafiado = null;
            this.desafiante = null;
        }
    }
    
    public void lutar(){
        if(this.aprovada){
            System.out.println("### Desafiado ###");
            this.desafiado.apresentar();
            System.out.println("### Desafiante ###");
            this.desafiante.apresentar();
            Random aleatorio = new Random();
            int vencedor = aleatorio.nextInt(3);
            switch(vencedor){
                case 0:
                    System.out.println("Empatou");
                    this.desafiado.empatarLuta();
                    this.desafiante.empatarLuta();
                    break;
                case 1:
                    System.out.println("O vencedor é: " + this.desafiado.getNome());
                    this.desafiado.ganharLuta();
                    this.desafiante.perderLuta();
                    break;
                case 2:
                    System.out.println("O vencedor é: " + this.desafiante.getNome());
                    this.desafiado.perderLuta();
                    this.desafiante.ganharLuta();
                    break;
            }
            
        }else{
            System.out.println("Não pode haver luta!");
        }
    
    }

    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 isAprovada() {
        return aprovada;
    }

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

@naointeressa9153 O NullPointerException no seu caso é devido à tentativa de uso de uma variável não inicializada. Ao chamar o método construtor da classe Lutador você não atribui valor à variável categoria, uma das formas de se fazer isso é chamar o seu método setCategoria() dentro do construtor.
Ficaria assim:

public Lutador(java.lang.String no,java.lang.String na,int id,double al,double pe,int vi,
        int de, int em){
    this.nome = no;
    this.nacionalidade = na;
    this.idade = id;
    this.altura = al;
    this.peso = pe;
    this.vitorias = vi;
    this.derrotas = de;
    this.empates = em;
    //Inicialização da categoria
    this.setCategoria();
}

Qualquer dúvida, estou à disposição.:sunglasses:

Sensacional kara! vivendo e aprendendo rsrs… Obrigado!

Por nada. Favor marcar o tópico como solucionado :slight_smile: