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!