0
respostas

[Desafio] ArrayLists, casting de objeto e instanceof -- está correto?

  1. Crie um ArrayList de strings e utilize um loop foreach para percorrer e imprimir cada elemento da lista.
    
ArrayList<String>materialEscolar = new ArrayList<> ();
    materialEscolar.add(caderno)
    materialEscolar.add(lápis)
    materialEscolar.add(caneta)
    materialEscolar.add(estojo)
    materialEscolar.add(borracha)
    System.out.println("Lista material escolar:");
    for(String item: materialEscolar): {
        System.out.println(item.toString());
    
    }
  1. Crie uma classe Animal e uma classe Cachorro que herda de Animal. Em seguida, crie um objeto da classe Cachorro e faça o casting para a classe Animal.
    
Public class Animal {
    String nome;
    String raça;
    String cor;
    
    public void setNome(String nome) { this.nome = nome;  }
    public void seRaça(String raça) { this.nome = raça;  }
    public void seCor(String cor) { this.nome = cor;  }
    
}
public class Cachorro extends Animal {

    int idade;

}
publica class main{
       public static void main(String[] args){
        Cachorro cachorro = new Cachorro(); //criando o objeto da classe cachorro --- instância da classe cachorro
        Animal animal = (Animal) cachorro; // casting do objeto 
       }
      
//se eu digo que todo cahorro é animal, por que ainda sim devo fazer casting?
//quando devo fazer casting? 
//nesse caso, casting é para acessar atributos da classe chachorro, como a idade?

}
  1. Modifique o Exercício 2 para incluir uma verificação usando instanceof para garantir que o objeto seja do tipo correto antes de fazer o casting.
    
publica class main{
       public static void main(String[] args){
       Animal animal = new Cachorro(); // por que tenho que criar essa referência antes?
        if(ANimal instanceof cachorro){
            Cachorro cachorro = animal;
        
        } else {
                    System.out.println("Objeto não é animal cachorro");
        
        }
        
        
     }
      
}
  1. Crie uma classe Produto com propriedades como nome e preço. Em seguida, crie uma lista de produtos e utilize um loop para calcular e imprimir o preço médio dos produtos.
    
public class Produto{
    Private String nome;
    Private double preco;
    
 public Produto(String nome, double preco) {
        this.nome = nome;
        this.preco = preco;

}

// acessos get e set 

}
publica class main{
    public static void main(String[] args){
    
    ArrayList<Produtos> listaProdutos = new ArrayList<>();
    listaProduto.add("lapis", 1,20);
    listaProduto.add("caneta", 2,50);
    listaProduto.add("Caderno", 18,80);
    
    // percorrendo a lista pelo for-each da classe produto 
    
    double somaPrecos = 0;
    for (Produto produto = listaProdutos){
         somaPrecos += produto.getPreco();
    
    }
    
    //somente expressão matemática
    double precoMedio = somaPrecos / listaProdutos.size();
    System.out.println("Preço médio dos produtos: " + precoMedio); //exibição do resultado
    
    }

}