Ajuda exercicio programação Java

4 respostas Resolvido
java-sejava
Y

Olá tudo bem?
então estou tento um problema em um exercicio da faculdade, no exercicio tenho que criar uma o seguinte:

Enunciado:
Crie uma classe com as seguintes características:

Nome da classe: **Produto** ;

Atributos da classe:

descricao (texto)

preco (real);

saldo (inteiro);

Deve existir um método construtor que inicia os valores dos atributos **descricao** , **preco** e **saldo** (nesta ordem);

Para testar a classe acima, desenvolva uma classe denominada **ProdutoDemo** com as seguintes características:

Crie um vetor com 5 objetos da classe Produto;

Leia o nome de um produto (usando a classe LeitorTeclado), pesquise no vetor de produtos e informe o preço e o saldo. Se o produto não existir, emita a mensagem Produto inexistente no catálogo. Faça um loop para que possa ser mostrar vários produtos. O loop deverá ser encerrado quando for digitada a palavra fim.

O problema que possuo é que ao tentar criar o loop para o produto e não conseguir fazer a comparação se o produto existe ou não eu recebo o error: cannot find symbol
symbol: variable vetor
location: class LeitorTeclado

for(Produto v:vetor)
        {
            
            v.lerTeclado();
            
            
        }

como seria possivel fazer a comparação se o objeto produto existe ou não no vetor? e como corrigo esse erro para mostrar os produtos até quanfo for digitado “fim”

Produto.java

public class Produto
{
    
    //declaração de variaveis
    public String descricao;
    public double preco;
    public int saldo;
    
    Produto(String descricao, double preco, int saldo)
    {
        this.descricao = descricao;
        this.preco = preco;
        this.saldo = saldo; 
    }        

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public double getPreco() {
        return preco;
    }

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

    public int getSaldo() {
        return saldo;
    }

    public void setSaldo(int saldo) {
        this.saldo = saldo;
    }
    
    void lerTeclado()
    {
        
        System.out.println("|Descrição do produto: " + descricao + "|Preço do produto: " + preco+ "|Saldo do produto: " + saldo);        
        
    }        
}

ProdutoDemo.java:

import java.util.Scanner;

public class ProdutoDemo 
{
    
    public static void main(String[] args) 
    {
        
        Scanner entrada = new Scanner(System.in);
        
        Produto vetor[] = new Produto[5];
        
        LeitorTeclado ler1 = new LeitorTeclado();
        
        for(int i = 0;i < vetor.length; i++)
        {
            
            System.out.println("Digite a descrição do produto:");
            String descricao = entrada.next();
            System.out.println("Digite o preço do produto:");
            double preco = entrada.nextDouble();
            System.out.println("Digite o valor do saldo:");
            int saldo = entrada.nextInt();            
            
            vetor[i] = new Produto(descricao, preco, saldo);                        
            
        }
        
    ler1.ler();
           
    }
                               
}

LeitorTeclado.java

import java.util.Scanner;

public class ProdutoDemo 
{
    
    public static void main(String[] args) 
    {
        
        Scanner entrada = new Scanner(System.in);
        
        Produto vetor[] = new Produto[5];
        
        LeitorTeclado ler1 = new LeitorTeclado();
        
        for(int i = 0;i < vetor.length; i++)
        {
            
            System.out.println("Digite a descrição do produto:");
            String descricao = entrada.next();
            System.out.println("Digite o preço do produto:");
            double preco = entrada.nextDouble();
            System.out.println("Digite o valor do saldo:");
            int saldo = entrada.nextInt();            
            
            vetor[i] = new Produto(descricao, preco, saldo);                        
            
        }
        
    ler1.ler();
           
    }
                               
}

4 Respostas

G

Poste o erro completo, fica mais fácil para indentificar o que está de errado.

Você pode fazer assim, de acordo com seu código:
if(vetor.contains(v))

S

Isso só vai funcionar se implementar corretamente o método equals da classe Produto.

Qual é o critério para considerar que um Produto já existe no seu vetor?
A descrição dele? O preço? O saldo? Todas as propriedades?

G
Solucao aceita

Exato, como o amigo @staroski disse, isso funciona num âmbito geral (por Objeto e todas suas características), não tendo distinção entre por exemplo um mesmo produto porém com alguma especificação diferente. Ai terá que fazer override sobre o método equals e determinar quais critérios para retornar se o valor (Produto) é igual ao objeto comparável.

A

Boa noite, so novo na programacao pretendo saber como fazer um codigo em java que manipulando o array de objectos: acumular valores totais e por cada categoria (tipo ou grupo), fazer contagens de objectos por cada categoria (tipo ou grupo), calcular algum valor médio, permitir calcular algum desconto ou Taxa de IVA,
nao faco ideia por onde comecar e como fazer. peco ajuda

Criado 29 de março de 2021
Ultima resposta 20 de jun. de 2022
Respostas 4
Participantes 4