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

Desafio:Resolução com temática diferente

Olá,segue a resolucao do desafio com a temática produtos eletrônicos com preços,garantias e garantias extendidas
Produto

/*@thiagotensai God is Good!*/

//Pacote Produto
package Produto;
//Biblioteca Array List
import java.util.ArrayList;
//Biblioteca Collections
import java.util.Collections;
//Biblioteca Comparator
import java.util.Comparator;
//Biblioteca Number Format
import java.text.NumberFormat;
//Biblioteca Locale
import java.util.Locale;

/*Programa cria lista de produtos;
_Conta quantos itens tem na lista;
_Mostra a garantia dos produtos;
_Inclui novo produto com garantia extendida;
_Ordena preços do maior para o menor;
*/

//Classe Produto
public class Produto {

    /*ENCAPSULAMENTO
        _get
        _set
    */
    private String nome;//private string
    private double preco;//private double
    private int quantidade;//private int
    private int garantia;//private int

    //Locale Monetário Brasileiro
    static Locale brasil = new Locale("pt", "BR");

    //Formatação Monetária Brasileira
    static NumberFormat moeda =
            NumberFormat.getCurrencyInstance(brasil);

    //Construtor (this)
    public Produto(
            String nome,//string
            double preco,//double
            int quantidade,//int
            int garantia) //int
            {

        this.nome = nome;//objeto nome
        this.preco = preco;//objeto preco
        this.quantidade = quantidade;//objeto quantidade
        this.garantia = garantia;//objeto garantia
    }

/*----GETTERS_Traz valor-------*/
    //Método Traz Nome
    public String getNome() {
        return nome;
    }

    //Método Traz Preço
    public double getPreco() {
        return preco;
    }

    //Método Traz Quantidade
    public int getQuantidade() {
        return quantidade;
    }

    //Método Traz Garantia
    public int getGarantia() {
        return garantia;
    }

/*-------SETTERS_Inclui valor----- */
    //Construtor (this)
    //Método Inclui Nome
    public void setNome(String nome) {
        this.nome = nome;//objeto nome
    }

    //Método Inclui Preço
    public void setPreco(double preco) {
        this.preco = preco;//objeto preco
    }

    //Método Inclui Quantidade
    public void setQuantidade(int quantidade) {
        this.quantidade = quantidade;//objeto quantidade
    }

    //Método Inclui Garantia
    public void setGarantia(int garantia) {
        this.garantia = garantia;//objeto garantia
    }

    //Método verifica Garantia
    public String verificarGarantia(int anosDeUso) {

        if (anosDeUso > garantia) {
            return "Fora de garantia";
        } else {
            return "Está em garantia";
        }
    }
 /*----------------------------------------------------*/

/*@Override-Um método está sobrescrevendo o mesmo método definido na sua classe mãe.*/
    @Override
      //toString-Retornar uma representação em texto do objeto
    public String toString() {

        return "Produto [Nome: " + nome +
                ", Preço: " + moeda.format(preco) +
                ", Quantidade: " + quantidade +
                ", Garantia: " + garantia + " anos]";
    }

    //Classe Main
    public static void main(String[] args) {

        //Locale Padrão Monetário Brasileiro
        Locale.setDefault(new Locale("pt", "BR"));

        //Lista de Produtos
        ArrayList<Produto> listaProdutos =
                new ArrayList<>();

         //new-Referência a um objeto ram
        Produto ram = new Produto(
                "Pente de memória RAM Asgard Valkyrie",
                1499.99,
                2,
                1);

          //new-Referência a um objeto smartphone
        Produto smartphone = new Produto(
                "Smartphone Iphone 17 Pro Max (2026)",
                14999.99,
                1,
                5);

        //new-Referência a um objeto notebook
        Produto notebook = new Produto(
                "Notebook Asus ROG Strix SCAR 18 (2025) G835",
                49499.10,
                1,
                6);

        //new-Referência a um objeto teclado
        Produto teclado = new Produto(
                "Teclado Portátil sem fio touchpad",
                359.99,
                1,
                2);

        //new-Referência a um objeto mouse com garantia
        Garantia mouse = new Garantia(
                "Mouse Gamer RGB",
                250.00,
                1,
                2,
                2);
3 respostas

Produto

 //add-Adiciona na Lista de Produtos
        listaProdutos.add(ram);
        listaProdutos.add(smartphone);
        listaProdutos.add(notebook);
        listaProdutos.add(teclado);
        listaProdutos.add(mouse);

        //Resultados da Lista
        System.out.println(
                "Tamanho da lista: "
                        + listaProdutos.size());
//tamanho da lista
        System.out.println(
                "Produto na posição 1: "
                        + listaProdutos.get(1).getNome());
 //busca pelo indice 1 na lista e nome
        System.out.println("----------------");

        //Busca foreach
        for (Produto produto : listaProdutos) {

            System.out.println(produto);

            //instanceof-Referência atributos da classe filha Garantia
            if (produto instanceof Garantia) {

                //Casting
                Garantia extendida =
                        (Garantia) produto;

                System.out.println(
                        "Garantia estendida: "
                                + extendida.getPrazoGarantia()
                                + " anos");
            }

            //Teste Garantia
            System.out.println(
                    produto.verificarGarantia(2));

            System.out.println("----------------");
        }

        //Ordena do maior preço para o menor
        Collections.sort(
                listaProdutos,
                Comparator.comparingDouble(
                        Produto::getPreco).reversed());

        System.out.println (
                "\nLista ordenada de preços: Maior -> Menor");

        System.out.println("----------------");

        //Exibe Lista Ordenada
        for (Produto item : listaProdutos) {

            System.out.println (item);
        }
    }
}

Garantia

/*@thiagotensai God is Good!*/

//Pacote Produto
package Produto;

//Classe Garantia extende atributos da Classe Produto
public class Garantia extends Produto {

/*ENCAPSULAMENTO
        _get
        _set
        */
    private int prazoGarantia;//private int

    //Construtor (this)
    public Garantia(
            String nome,//string
            double preco,//double
            int quantidade,//int
            int garantia,//int
            int prazoGarantia) //int
            {

          //super-Herda atributos da Classe Produto (classe mâe)
        super(nome, preco, quantidade, garantia);

        this.prazoGarantia = prazoGarantia;//objeto prazo garantia
    }
    
/*----GETTERS_Traz valor-------*/
    //Método Traz Prazo Garantia
    public int getPrazoGarantia() {
        return prazoGarantia;
    }
    
/*-------SETTERS_Inclui valor----- */
    //Construtor (this)
    //Método Inclui Nome
    public void setPrazoGarantia(int prazoGarantia) {
        this.prazoGarantia = prazoGarantia;//objeto prazo garantia
    }

    /*@Override-Um método está sobrescrevendo o mesmo método definido na sua classe mãe.*/
    @Override
      //toString-Retornar uma representação em texto do objeto
    public String toString() {

        return super.toString() +
                ", Prazo Garantia Estendida: "
                + prazoGarantia + " anos";
    }

    //Classe Main
    public static void main(String[] args) {

        //Objeto da classe filha 
        Garantia mouse = new Garantia(
                "Mouse Gamer RGB",
                200.00,
                1,
                1,
                2);

        //Exibe objeto
        System.out.println (mouse);

        //Método herdado da classe mãe Produto
        System.out.println (
                mouse.verificarGarantia(2));
    }
}
solução!

Oi, Thiago! Como vai?

Gostei bastante da sua adaptação de tema para produtos eletrônicos, isso deixa o exercício mais próximo da realidade. Chamou atenção o uso de encapsulamento, o toString() bem formatado com moeda brasileira" e também a organização da lógica de garantia, que ficou clara e fácil de entender.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!