1
resposta

[Projeto] Sobre construtores

public class Produto { private String nome; private double preco; private int quantidade;

// Construtor da classe Produto, inicializando os atributos com valores passados como parâmetros
public Produto(String nome, double preco, int quantidade) {
    this.nome = nome;
    this.preco = preco;
    this.quantidade = quantidade;
}

// Métodos getter e setter para acessar e modificar os atributos da classe
public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

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;
}

//Método sobrescrito toString() para representar o objeto como uma string formatada
@Override
public String toString() {
    return "Produto [nome=" + nome + ", preco=" + preco + ", quantidade=" + quantidade + "]";
}

public static void main(String[] args) {

    // Criando uma lista para armazenar objetos da classe Produto
    ArrayList<Produto> listaProdutos = new ArrayList<>();

    // Criando dois objetos Produto e adicionando-os à lista
    Produto produto1 = new Produto("Sabão", 15.99, 5);
    Produto produto2 = new Produto("Detergente", 10.49, 8);

    listaProdutos.add(produto1);
    listaProdutos.add(produto2);

    // Exibindo o tamanho da lista de produtos
    System.out.println("Tamanho da lista: " + listaProdutos.size());

    // Exibindo o nome do primeiro produto na lista
    System.out.println("Produto na posição 0: " + listaProdutos.get(0).getNome());

    // Percorrendo a lista e exibindo os produtos armazenados
    for (Produto produto : listaProdutos) {
        System.out.println(produto);
    }

    // Criando um novo objeto Produto e imprimindo seus detalhes diretamente
    Produto produtoNovo = new Produto("Novo Produto", 15.99, 3);
    System.out.println(produtoNovo);
}

}

public class ProdutoPerecivel extends Produto { // Classe ProdutoPerecivel herda da classe Produto, ou seja, ProdutoPerecivel é um tipo específico de Produto

String dataValidade;

public ProdutoPerecivel(String nome, double preco, int quantidade, String dataValidade) {
    super(nome, preco, quantidade); // Chama o construtor da superclasse Produto para inicializar os atributos herdados
    this.dataValidade = dataValidade; // Inicializa o atributo específico da subclasse
}

public static void main(String[] args) {

    // Criando um objeto ProdutoPerecivel e passando os valores para o construtor
    ProdutoPerecivel produtoPerecivel = new ProdutoPerecivel("Produto C", 12.75, 2, "2025-01-29");

    // Exibe a representação do objeto no console
    // Sem a sobrescrita do método toString(), imprimirá o endereço de memória do objeto
    System.out.println(produtoPerecivel);
}

}

1 resposta

Oii, Brigida!

Obrigada por compartilhar seu código com a comunidade Alura. Gostei de como você estruturou suas classes e implementou os construtores para inicializar os objetos com os valores passados. Isso é muito importante para a boa organização e reutilização do código.

Conte com o apoio do Fórum na sua jornada. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓

bons estudos