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

[classe abstrata, herança, sobrescrita, polimorfismo] Crie uma hierarquia de classes para representar os diferentes tipos de funcionários de um escritório que tem os seguintes cargos: gerente, assistente, vendedor. Escreva uma classe base abstrata chamada Funcionario que declara um método abstrato:

public double calculaSalario()

Esta classe também deve definir os seguintes atributos: nome (tipo String), matricula (tipo String) e salario_base (tipo double). Use encapsulamento e forneça um construtor que recebe os valores correspondentes a serem armazenados nos respectivos atributos. Esta classe abstrata deverá ser estendida pelas outras classes representativas dos tipos de funcionários, portanto devem ser escritas as classes Gerente, Assistente e Vendedor. Em cada classe deve-se sobrescrever o método calculaSalario de forma que cálculo do salário é feito assim: O gerente recebe duas vezes o salário_base, o assistente recebe o salário_base e o vendedor
recebe o salário_base mais uma comissão definida no construtor de sua classe. Crie uma classe Teste com um método main que cria um objeto de cada tipo e os armazena em uma lista e depois calcula a folha salarial dos três funcionários e imprime o valor total. Indique quais conceitos de POO você usou e como foi usado.
Crie um programa que permita ao usuário inserir uma série de inteiros em um ArrayList, calcular a soma, a média, o valor máximo e o valor mínimo dos números inseridos.
Escreva um programa para preencher valores de um vetor de inteiros com 10 posições. O usuário irá informar os valores a serem inseridos e suas respectivas posições no array. O programa deve tratar as exceções ArrayIndexOutOfBoundsException quando for informada uma posição inexistente do vetor e NumberFormatException quando o valor informado não for número.
Enumerar, localizar, separar e calcular, se possivel, todas as raizes da função , considere casas decimais de aproximação e os seguintes métodos para Zero de Funções:
b) Posição Falsa;