Desafio concluído, porém me surgiu uma dúvida.
package Exercicios;
import java.util.ArrayList;
public class ProdutoPrincipal {
public static void main(String[] args) {
// PRODUTOS:
Produto produto = new Produto("Processador", 1199.55 ,1 );
Produto produto2 = new Produto("Placa de vídeo", 1699.99, 1);
Produto produto3 = new Produto("Teclado mecânico", 599.99, 1);
// PRODUTOS PERECÍVEIS:
ProdutoPerecivel produtoPerecivel = new ProdutoPerecivel("Carne", 89.99, 1, "11/07/2025");
ArrayList<Produto> listaDeProdutos = new ArrayList<>();
listaDeProdutos.add(produto);
listaDeProdutos.add(produto2);
listaDeProdutos.add(produto3);
listaDeProdutos.add(produtoPerecivel);
System.out.println("Tamanho da lista: " + listaDeProdutos.size());
System.out.println("1° Item: "+ listaDeProdutos.get(0).getNomeProduto());
System.out.println("1° Item - Preço: " + listaDeProdutos.get(0).getPreco());
System.out.println("1° Item - Quantidade: " + listaDeProdutos.get(0).getQuantidade());
System.out.println(listaDeProdutos);
}
}
package Exercicios;
public class Produto {
private String nomeProduto;
private double preco;
private int quantidade;
public Produto(String nomeProduto, double preco, int quantidade) {
this.setNomeProduto(nomeProduto);
this.setPreco(preco);
this.setQuantidade(quantidade);
}
@Override
public String toString() {
return "\nProduto: " + getNomeProduto() + " - Preço: " + getPreco() + " - Quantidade: (" + getQuantidade() + ")";
}
public String getNomeProduto() {
return nomeProduto;
}
public void setNomeProduto(String nomeProduto) {
this.nomeProduto = nomeProduto;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
public int getQuantidade() {
return quantidade;
}
public void setQuantidade(int quantidade) {
this.quantidade = quantidade;
}
}
package Exercicios;
public class ProdutoPerecivel extends Produto { private String validade; public ProdutoPerecivel(String nomeProduto, double preco, int quantidade, String validade) { super(nomeProduto, preco, quantidade); this.validade = validade; }
@Override
public String toString() {
return super.toString() + " data de validade: " + getValidade();
}
public String getValidade() {
return validade;
}
public void setValidade(String validade) {
this.validade = validade;
}
}
Quando vou criar um construtor qual a diferença ou utilidade de criar:
public Produto(String nomeProduto, double preco, int quantidade) {
this.setNomeProduto(nomeProduto);
this.setPreco(preco);
this.setQuantidade(quantidade);
}
ou
public Produto(String nomeProduto, double preco, int quantidade) {
this.nomeProduto = nomeProduto;
this.preco = preco;
this.quantidade = quantidade;
}