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

DÚVIDA 'EXEMPLO DO INSTRUTOR' 2 e 3

Não entendi o exemplo do instrutor que mostra nos exercicios 2 e 3, os nomes das classes Animal e Cachorro entre parenteses ao instanciar. Peço uma orientação detalhada se possivel pois essa ação não foi feita no vídeo. Agradeço.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas

Olá Ana! Tudo bem?

Vou te ajudar a entender o exemplo dos exercícios 2 e 3 que envolvem as classes Animal e Cachorro.

  1. Exercício 2: Casting de Objetos

    No exemplo do exercício 2, temos o seguinte código:

    class Animal {
        // Propriedades e métodos
    }
    
    class Cachorro extends Animal {
        // Propriedades e métodos
    }
    
    public class Main {
        public static void main(String[] args) {
            Cachorro cachorro = new Cachorro();
            Animal animal = (Animal) cachorro;
        }
    }
    

    Aqui, a classe Cachorro herda da classe Animal. Quando você cria um objeto Cachorro, ele também é um Animal por herança. O que está acontecendo é um casting de objeto, que é quando você converte um objeto de uma subclasse (Cachorro) para uma superclasse (Animal).

    No código Animal animal = (Animal) cachorro;, você está dizendo ao compilador que o objeto cachorro deve ser tratado como um objeto do tipo Animal. Isso é útil quando você quer tratar um objeto de uma subclasse como se fosse da superclasse.

  2. Exercício 3: Verificação com instanceof

    No exemplo do exercício 3, o código é modificado para incluir uma verificação com instanceof:

    class Animal {
        // propriedades e métodos comuns
    }
    
    class Cachorro extends Animal {
        // propriedades e métodos do cachorro
    }
    
    public class Main {
        public static void main(String[] args) {
            Animal animal = new Cachorro();
    
            if (animal instanceof Cachorro) {
                Cachorro cachorro = (Cachorro) animal;
                // Agora você pode usar o objeto 'cachorro' como um Cachorro
            } else {
                System.out.println("O objeto não é um Cachorro.");
            }
        }
    }
    

    Aqui, a verificação if (animal instanceof Cachorro) garante que o objeto animal é realmente uma instância de Cachorro antes de fazer o casting. Isso evita erros em tempo de execução ao tentar converter um objeto para um tipo incompatível.

  3. Fazendo um resumo geral sobre o que foi aplicado nos dois exercícios

    • Casting: Converte um objeto de uma subclasse para uma superclasse. Exemplo: Animal animal = (Animal) cachorro;
    • instanceof: Verifica se um objeto é uma instância de um tipo específico antes de fazer o casting. Exemplo: if (animal instanceof Cachorro)

Espero ter ajudado e caso ainda tenho dúvidas acerca dos códigos disponibilizados, estarei à disposição para ajudá-la.

Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.
solução!

Oi Armano,

Certo amigo. Com a explicação detalhada deu pra entender melhor. É que, como no código do vídeo a instrutora não colocou assim fica um pouco complicado entender apenas olhando.E também é uma maneira mais concisa de se referenciar ao casting de um objeto. Fica mais enxuto. Muito obrigada de novo. Gratidão!