Estou começando a aprender OO agora e estou habituado a programar de forma estruturada e estou tendo dificuldades em criar uma classe que vá registrando as vendas a medida que vá acontecendo. São as seguintes tarefas que deve fazer:
a) Implemente as classes em Java e seus relacionamentos.
b) Implemente uma classe Loja que cria objetos do tipo Cliente, Produto e Venda e exibe na tela o cliente
que está realizando uma compra, os produtos comprados e o valor total da venda.
c) Nomeie os relacionamentos entre as classes.
d) Adicione uma classe Caixa à sua modelagem de classes. Um caixa contém uma coleção de vendas.
Apenas uma venda é a venda atualmente aberta no caixa. A classe Caixa deve possuir operações para
incluir um novo produto na venda atualmente aberta.
e) Adicione um construtor sobrecarregado à classe Venda de modo que se possa criar uma venda
passando-se para ela um arranjo de produtos ou a quantidade máxima de produtos da venda.
Observações:
1 – Alguns gets e sets foram sugeridos no diagrama de classes, mas caso precisem/desejem pode incluir
outros métodos de acesso.
2 – Lembre-se de implementar, onde for necessário, arrays como estruturas. Coleções não serão aceitas
nesse exercício.
3 – Será preciso aumentar o tamanho dos arrays dinamicamente, ou seja, a cada adição de produto ou
venda, já que não foi definido a priori o tamanho desses arrays (propositalmente).
identar texto pré-formatado por 4 espaços[Exercícios Propostos.pdf|attachment](upload://wudHKJK4tfU3XUELqmFuZdwPHmG.pdf) (358,1,KB)
Já tenho as seguintes classes prontas:
/**
- Classe Cliente
- @version v 1.0 outubro/2020
-
@author MELO, Ewerton
*/
public class Cliente {
private String nome;
private String endereco;
public Cliente(String nome, String endereco) {
this.nome = nome;
this.endereco = endereco;
}
public Cliente(String nome) {
this.nome = nome;
}
public Cliente() {
}
public String getNome() {
return this.nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEndereco() {
return this.endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String imprimeCliente() {
return "Cliente: " + this.nome + "\n Endereco: " + this.endereco;
}
}
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 Produto() {
}
public double getTotal() {
return total++;
}
public String getDescricao() {
return descricao;
}
public double getPreco() {
return preco;
}
public String imprimeProduto(String descricao, double total) {
return "Produto: " + this.descricao + " Total:" + this.total;
}
}
import java.util.*;
public class Venda {
int i;
int numProdutos;
double total;
Date data = new Date();
private Cliente[] cliente;
private Produto[] produto;
public Venda() {
}
public Venda(Date data, Cliente[] cliente, Produto[] produto) {
this.data = data;
this.cliente = cliente;
this.produto = produto;
}
public double getTotal() {
return this.total;
}
public void adicioneProduto(Produto[] p) {
produto = p;
numProdutos++;
}
public Produto getProduto(int i) {
return this.getProduto(i);
}
public int getNumProdutos() {
return this.numProdutos;
}
public String imprimeVenda() {
return data + " " + cliente + " " + produto;
}
}
Preciso de esclarecimentos, por favor coloquem exemplos para facilitar minha compreensão.