Exercícios de Java: Equals, Enums e Comparação de Objetos

Classificado em Educação Artística

Escrito em em português com um tamanho de 3,34 KB

Exercício 1

Código:

package br.com.exemplo.futebol;

public class Jogo {
    public static void main(String[] args) {
        Jogador cristiano = new Jogador("Cristiano Ronaldo", Posicao.MEIO_ATACANTE, 7);
        Jogador ronaldo = new Jogador("Cristiano Ronaldo", Posicao.MEIO_ATACANTE, 7);
        System.out.println(cristiano.equals(ronaldo));
        System.out.println(cristiano == ronaldo);
    }
}

package br.com.exemplo.futebol;

public enum Posicao {
    GOLEIRO, ZAGUEIRO, LATERAL_DIREITA, LATERAL_ESQUERDA, VOLANTE, MEIO_CAMPISTA, MEIO_ATACANTE, PONTA, SEGUNDO_ATACANTE, CENTROAVANTE;
}

Alternativas:
C. false false

Exercício 2

Código:

package br.com.exemplo.Pizza;

public class Pizzaria {
    public static void main(String[] args) {
        Pizza quatro = new Pizza("Quatro Queijo", Tamanho.MEDIA, 16.50);
        Pizza queijo = new Pizza("Quatro Queijo", Tamanho.MEDIA, 16.50);
        System.out.println(quatro.equals(queijo));
        System.out.println(quatro == queijo);
        System.out.println(quatro.equals("Quatro Queijo"));
    }
}

package br.com.exemplo.Pizza;

public class Pizza {
    private String nome;
}

Resposta: E. NDA

Acredito que seja esta alternativa, pois a terceira comparação (true ou false) gera erro de Cast na linha Pizza outrapizza = (Pizza) obj;. O exercício 3 também apresenta uma exception, justamente devido ao tratamento de String.

Exercício 3

Implemente o código do método equals para que não ocorra uma exception.

Código:

package br.com.exemplo.JogoDeVideoGame;

public class CadastraJogo {
    public static void main(String[] args) {
        Jogo Guitar = new Jogo("Guitar Hero", Genero.MUSICA, 4);
        Jogo Hero = new Jogo("Guitar Hero", Genero.MUSICA, 4);
        Jogo Skyrim = new Jogo("Skyrim", Genero.RPG, 1);
        System.out.println(Guitar.equals(Hero));
        System.out.println(Guitar.equals("Guitar Hero"));
        System.out.println(Guitar.equals(Genero.MUSICA));
        System.out.println(Guitar.equals(7));
        System.out.println(Guitar.equals(Skyrim));
    }
}

package br.com.exemplo.JogoDeVideoGame;

public enum Genero {
    ACAO, ESPORTE, RPG, CORRIDA, RACIOCINIO, LOGICA, AVENTURA, MUSICA;
}

package br.com.exemplo.JogoDeVideoGame;

public class Jogo {
    private String nome;
    private Genero genero;
    private int MaximoDeJogadores;

    public Jogo(String nome, Genero genero, int MaximoDeJogadores) {
        this.nome = nome;
        this.genero = genero;
        this.MaximoDeJogadores = MaximoDeJogadores;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) return true;
        if (obj == null || getClass() != obj.getClass()) return false;
        Jogo outro = (Jogo) obj;
        return MaximoDeJogadores == outro.MaximoDeJogadores
                && java.util.Objects.equals(nome, outro.nome)
                && genero == outro.genero;
    }

    public String getNome() {
        return nome;
    }

    public Genero getGenero() {
        return genero;
    }

    public int getMaximoDeJogadores() {
        return MaximoDeJogadores;
    }
}

Entradas relacionadas: