1
resposta

[Projeto] Exercícios sobre Construtores

  1. Crie uma classe Produto com atributos como nome, preco, e quantidade. Em seguida, crie uma lista de objetos Produto utilizando a classe ArrayList. Adicione alguns produtos, imprima o tamanho da lista e recupere um produto pelo índice.
  2. Implemente o método toString() na classe Produto para retornar uma representação em texto do objeto. Em seguida, imprima a lista de produtos utilizando o método System.out.println().
  3. Modifique a classe Produto para incluir um construtor que aceite parâmetros para inicializar os atributos. Em seguida, crie objetos Produto utilizando esse novo construtor.
  4. Crie uma classe ProdutoPerecivel que herde de Produto. Adicione um atributo dataValidade e um construtor que utilize o construtor da classe mãe (super) para inicializar os atributos herdados. Crie um objeto ProdutoPerecivel e imprima seus valores. Lembrando que está em inglês por preferência e opção pessoal. Dá para se notar que tudo que for mostrado no terminal será mostrado em português.
public class Product {
    private String name;
    private double price;
    private int quant;

    public Product(String name, double price, int quant) {
        this.name = name;
        this.price = price;
        this.quant = quant;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public int getQuant() {
        return quant;
    }

    public void setQuant(int quant) {
        this.quant = quant;
    }
    public double priceTot(){
        double priceTot = this.quant * this.price;
        return priceTot;
    }
    public String toString() {return "\nLista de Produtos: "+ getName() + "Preço total a se pagar: R$ "+priceTot() ; } // toString() serve para converter um objeto em sua representação textual, ou seja, em uma string
}
public class PerishableProduct extends Product{
    private String expirationDate;

    public String getExpirationDate() {
        return expirationDate;
    }

    public void setExpirationDate(String expirationDate) {
        this.expirationDate = expirationDate;
    }

    public PerishableProduct(String name, double price, int quant, String expirationDate) {
        super(name, price, quant);
        this.expirationDate = expirationDate;
    }

    @Override
    public String toString() {
        return "\nLista de Produtos: "+ getName() + "\nPreço total a se pagar: R$ "+priceTot() + "\nData de validade: "+getExpirationDate();
    }
}
import java.util.ArrayList;
public class Main {
    public static void main(String[] args) {
        Product product = new Product("Coca-Cola 2l",8.50,1 ); //Produtos reais, mas com preços fictícios :)
        //product.setName("Coca-Cola 2l"); // Codigo comentado para apenas ver a diferença
        //product.setPrice(8.50);
        //product.setQuant(1);

        Product product2 = new Product("Café Pilão (500g)",16.90, 2 );
        //product2.setName("Café Pilão (500g)");
        //product2.setPrice(16.90);
        //product2.setQuant(2);

        Product product3 = new Product("Detergente Ypê (500ml)",2.90, 1);
        //product3.setName("Detergente Ypê (500ml)");
        //product3.setPrice(2.90);
        //product.setQuant(1);

        ArrayList<Product> listProducts = new ArrayList<>();
        listProducts.add(product);
        listProducts.add(product2);
        listProducts.add(product3);

        System.out.println("Tamanho da lista de produtos: "+listProducts.size());
        System.out.println("Segundo produto da lista: "+listProducts.get(1).getName());// getName() para conseguir vizualizar o nome do produto corretamente
        System.out.println(listProducts);

        PerishableProduct perishableProduct = new PerishableProduct("Arroz Tio João (5kg)",24.90, 3,"2026/12/10");
        System.out.println(perishableProduct);

    }
}
1 resposta

Oi, João Miguel!

Obrigada por compartilhar seu código com a comunidade Alura.

Gostei de ver como você estruturou as classes Product e PerishableProduct, usando herança e sobrescrita de métodos. Isso mostra domínio de conceitos importantes de orientação a objetos.

Continue firme nos estudos.

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