Crie uma classe Produto com atributos de nome e preço. Escreva um programa que permita adicionar produtos a uma ArrayList, pesquisar um produto pelo nome e excluir um produto pelo nome.

Passo 1

Beleza! Vamos resolver esse exercício passo a passo. Primeiro, o enunciado pede para criar uma classe chamada Produto com dois atributos: nome e preço. Depois, queremos um programa que use uma ArrayList para adicionar, pesquisar e excluir produtos pelo nome. Para isso, vamos precisar entender conceitos de classes, objetos, ArrayLists e métodos para manipulação desses objetos.

Passo 2

Primeiro, vamos criar a classe Produto. Em programação orientada a objetos, uma classe é como um molde para criar objetos. No nosso caso, cada objeto será um produto com um nome e um preço.
public class Produto {
    private String nome;
    private double preco;

    // Construtor
    public Produto(String nome, double preco) {
        this.nome = nome;
        this.preco = preco;
    }

    // Getters
    public String getNome() {
        return nome;
    }

    public double getPreco() {
        return preco;
    }

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

    public void setPreco(double preco) {
        this.preco = preco;
    }

    // Método para exibir informações do produto
    public void exibirInfo() {
        System.out.println("Nome: " + nome + ", Preço: R$" + preco);
    }
}
Aqui, criamos a classe Produto com os atributos nome e preço. Também adicionamos métodos para acessar e modificar esses atributos, além de um método para exibir as informações do produto.

Passo 3

Agora, vamos criar o programa principal onde vamos utilizar uma ArrayList para gerenciar os produtos. A ArrayList é uma estrutura de dados que permite armazenar objetos de forma dinâmica, ou seja, podemos adicionar ou remover elementos conforme necessário.
import java.util.ArrayList;
import java.util.Scanner;

public class GerenciadorProdutos {
    public static void main(String[] args) {
        ArrayList<Produto> listaProdutos = new ArrayList<>();
        Scanner scanner = new Scanner(System.in);
        int opcao;

        do {
            System.out.println("\n--- Gerenciador de Produtos ---");
            System.out.println("1. Adicionar Produto");
            System.out.println("2. Pesquisar Produto");
            System.out.println("3. Excluir Produto");
            System.out.println("4. Listar Produtos");
            System.out.println("5. Sair");
            System.out.print("Escolha uma opção: ");
            opcao = scanner.nextInt();
            scanner.nextLine(); // Limpar o buffer

            switch (opcao) {
                case 1:
                    adicionarProduto(listaProdutos, scanner);
                    break;
                case 2:
                    pesquisarProduto(listaProdutos, scanner);
                    break;
                case 3:
                    excluirProduto(listaProdutos, scanner);
                    break;
                case 4:
                    listarProdutos(listaProdutos);
                    break;
                case 5:
                    System.out.println("Saindo...");
                    break;
                default:
                    System.out.println("Opção inválida!");
            }
        } while (opcao != 5);

        scanner.close();
    }

    // Métodos para adicionar, pesquisar, excluir e listar produtos serão adicionados aqui
}
Neste trecho, criamos um menu interativo que permite ao usuário escolher entre adicionar, pesquisar, excluir, listar produtos ou sair do programa.

Passo 4

Vamos implementar o método para adicionar um produto à ArrayList. Esse método vai solicitar ao usuário o nome e o preço do produto e, então, criar um novo objeto Produto e adicioná-lo à lista.
public static void adicionarProduto(ArrayList<Produto> lista, Scanner scanner) {
    System.out.print("Digite o nome do produto: ");
    String nome = scanner.nextLine();
    System.out.print("Digite o preço do produto: R$");
    double preco = scanner.nextDouble();
    scanner.nextLine(); // Limpar o buffer

    Produto novoProduto = new Produto(nome, preco);
    lista.add(novoProduto);
    System.out.println("Produto adicionado com sucesso!");
}
Aqui, usamos o método add da ArrayList para inserir o novo produto na lista.

Passo 5

Agora, vamos criar o método para pesquisar um produto pelo nome. Esse método vai percorrer a ArrayList e verificar se algum produto tem o nome informado pelo usuário.
public static void pesquisarProduto(ArrayList<Produto> lista, Scanner scanner) {
    System.out.print("Digite o nome do produto que deseja pesquisar: ");
    String nomePesquisa = scanner.nextLine();
    boolean encontrado = false;

    for (Produto produto : lista) {
        if (produto.getNome().equalsIgnoreCase(nomePesquisa)) {
            System.out.println("Produto encontrado:");
            produto.exibirInfo();
            encontrado = true;
            break;
        }
    }

    if (!encontrado) {
        System.out.println("Produto não encontrado.");
    }
}
Utilizamos um loop for-each para percorrer cada produto na lista e o método equalsIgnoreCase para comparar os nomes, ignorando maiúsculas e minúsculas.

Passo 6

Vamos implementar o método para excluir um produto pelo nome. Similar ao método de pesquisa, vamos procurar o produto e, se encontrado, removê-lo da lista.
public static void excluirProduto(ArrayList<Produto> lista, Scanner scanner) {
    System.out.print("Digite o nome do produto que deseja excluir: ");
    String nomeExclusao = scanner.nextLine();
    boolean removido = false;

    for (int i = 0; i < lista.size(); i++) {
        if (lista.get(i).getNome().equalsIgnoreCase(nomeExclusao)) {
            lista.remove(i);
            System.out.println("Produto excluído com sucesso!");
            removido = true;
            break;
        }
    }

    if (!removido) {
        System.out.println("Produto não encontrado.");
    }
}
Aqui, percorremos a lista usando um índice para poder remover o produto quando encontrado com o método remove.

Passo 7

Por fim, vamos adicionar o método para listar todos os produtos presentes na ArrayList. Isso ajuda o usuário a visualizar os produtos que estão cadastrados.
public static void listarProdutos(ArrayList<Produto> lista) {
    if (lista.isEmpty()) {
        System.out.println("Nenhum produto cadastrado.");
    } else {
        System.out.println("\n--- Lista de Produtos ---");
        for (Produto produto : lista) {
            produto.exibirInfo();
        }
    }
}
Este método verifica se a lista está vazia e, caso contrário, exibe as informações de cada produto usando o método exibirInfo da classe Produto.

Resposta

Prontinho! Com esses passos, você tem uma classe Produto e um programa completo que permite adicionar, pesquisar, excluir e listar produtos usando uma ArrayList. Basta compilar e rodar o programa, e você poderá gerenciar seus produtos facilmente!

Exercícios relacionados