How to access the name and address in the Customer Class, and access description and price in the Java Product Class, being in the Box Class?

Asked

Viewed 184 times

-1

I tried to use the following commands:

// Requesting the customer’s name name = input.toString(); purchase[i]. getCliente(). setNome(name);

            // Código do produto a ser comprado, que é o endereço da posição do vetor
            System.out.print("Produto: ");
            codigo = input.nextInt(); 
        
            //  compra[i].getProduto().Descricao = ;

Follow my codes below:

import java.util.*;

public class Venda {
    int quantProduto = 5;
    int i;
    int numProdutos;
    double total;
    Date data = new Date(); 
    private Cliente cliente;
    private Produto [] produto;
            
    public Venda(Date data, Cliente cliente) {      
        this.cliente = new Cliente();
        this.data = data;               
    }
    
    public Venda(Date data, Cliente cliente, Produto[] produto) {       
        this.data = data;
        this.cliente = new Cliente();
        this.produto = new Produto[quantProduto];
        
    }
 
    public double getTotal() {
        return this.total;  
    }
    
    public void adicioneProduto(Produto p) {
        produto[i] = p;
        numProdutos++;
    }
    
    public Produto getProduto(int i) {
        return this.getProduto(i);
    }
    
    public int getNumProdutos() {
        return this.numProdutos;
    }
    
    public String imprimeVenda() {
        return data + " " + cliente + " " + produto[i]; 
    }       
}

public class Cliente {
    private String nome;
    private String endereco;
    
    public Cliente(String nome) {
        this.nome = nome;
        this.endereco = " ";
    }
    
    public Cliente() {
        this.nome = "";
        this.endereco = "";
    }
    
    public String getNome() {
        
        return this.nome;
        
    }
    
    public void setNome(String nome) {
        
        this.nome = nome;
    }
    
    public String imprimeCliente() {
        
        return "Cliente: " + this.nome + "\n Endereco: " + this.endereco;
    }
    

}


public class Produto {
    
    private String[] descricao= {"arroz", "feijao", "farinha", "macarrao", "açucar",
                                  "óleo", "vinagre", "azeite", "sal", "xerém"} ;
    private double[] preco = {5.00, 7.00, 4.50, 3.20, 2.50, 7.50, 2.00, 11.00, 1.50, 3.50};
    private int total;
    
        
    public Produto(String[] descricao, double[] preco) {        
        this.descricao = descricao;
        this.preco = preco;     
    }
    
    public double getTotal() {      
        return total;       
    }
    
    public double[] getPreco() {        
        return preco;       
    }
    
    public String imprimeProduto(String descricao, double total) {
        return "Produto: "  + this.descricao + " Total:" + this.total;
    }

}
              

import java.util.*;

public class Caixa {
    int quantProdutos = 5;
    Date data;
    int codigo;
    String nome;
    String iten;
    double preco;
    Venda [] compra;
    
    Scanner input = new Scanner(System.in); 
    
    public boolean atendimento (String resposta) {  
                        
            if (resposta == "S" || resposta == "s") {
                return true;
            }
            
            else{           
                return false;               
            }
            
        }
    
    public <auxiliar> void Compra() {       
        int i = 0;
        String resposta;
        Venda [] compra = new Venda[quantProdutos] ;

        boolean atender = true;
        
        while (atender == true) {
            
            System.out.println("Continuar atendendo (S/Sim) (N/Não)?");
            resposta = input.nextLine();            
                        
            atender = atendimento(resposta);
            
            if (atender == true) {  
                
                // Solicitando o nome do cliente 
                nome = input.toString();
                compra[i].getCliente().setNome(nome);               
                                
                // Código do produto a ser comprado, que é o endereço da posição do vetor
                System.out.print("Produto: ");
                codigo = input.nextInt(); 
            
                //  compra[i].getProduto().Descricao = ;

                
                
            }
            
            if (i==quantProdutos) {
                quantProdutos = 2 * quantProdutos;              
                Venda [] auxiliar = new auxiliar [quantProdutos]; 
                this.compra = auxiliar;
            }
            i++;
        }
    }
    
}

2 answers

2

Ewerton, your code is a little fuzzy, but I think I understand what you want to do.

First of all, you need to pass the values to the attributes of your class using the constructor. This is the most commonly used way, as you will have the values loaded together with the class instance.

Also, your product class does not have the gets and sets of the property description, which is the property you will use in the Box class to retrieve the data via the vector index.

So I believe you could do something like:

Product class

public class Produto {

   private String[] descricao;
   private double[] preco;
   private int total;
    
   public Produto(String[] descricao, double[] preco) {        
       this.descricao = descricao;
       this.preco = preco;     
   }

   public double getTotal() {      
       return total;       
   }

   public double[] getPreco() {        
       return preco;       
   }

   public string[] getDesricao() {        
       return this.descricao;       
   }

   public String imprimeProduto(String descricao, double total) {
       return "Produto: "  + this.descricao + " Total:" + this.total;
   }

}

After correcting the Product class, within the Box class you must create an instance of the Product class and pass the values as parameters in the constructor. Thus:

Caixa Class

// Suas variáveis
int i = 0;
String resposta;
Venda [] compra = new Venda[quantProdutos] ;

// Crie duas variáveis com os dados que serão passados para o construtor
String[] descricao = {"arroz", "feijao", "farinha", "macarrao", "açucar",
                              "óleo", "vinagre", "azeite", "sal", "xerém"} ;
double[] preco = {5.00, 7.00, 4.50, 3.20, 2.50, 7.50, 2.00, 11.00, 1.50, 3.50};

// Depois crie a instância da classe Produto passando os valores no construtor
Produto produto = new Produto(descricao, preco);

                 //

                //

// Código do produto a ser comprado, que é o endereço da posição do vetor
System.out.print("Produto: ");
codigo = input.nextInt(); 

//Agora você pode acessar os dados do Produto através da variável codigo:

String descricao = produto.getDescricao()[codigo];
String preco= produto.getPreco()[codigo];
  • Hi Jaderson! Thank you so much for your help!

  • Did it work Ewerton? If I could help you, mark the question as accepted. Thank you!

1


You need to create an instance of the Customer class and the Product class and move them into the Box class. I don’t know what your specific needs are but one of the ways to do that is:

Cliente cliente = new Cliente ();
Produto produto = new produto ();

Caixa caixa = new Caixa();
caixa.compra(cliente, produto);
  • Hi Jaderson! Good evening! I need to do the following: ) Implement a Store class that creates objects like Customer, Product and Sale and displays on the screen the customer who is making a purchase, the products purchased and the total value of the sale. c) Name the relationships between classes. d) Add a Box class to your class modeling. A box contains a sales collection.

  • The Box class must have operations to include a new product in the currently open sale. e) Add an overloaded constructor to the Sale class so that a sale can be created by passing to it an arrangement of products or the maximum quantity of products from the sale.

  • After I’ve made the necessary changes to make a data sharing, you’re making an error that I can’t take back...

Browser other questions tagged

You are not signed in. Login or sign up in order to post.