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.
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;
b) Posição Falsa;