Boa noite.
Estou aqui fazendo uns exercícios de UML e implementando os mesmos, e estou com uma dúvida que é a seguinte.
Basicamente o problema é o seguinte:
Meu projeto tem 3 classes: “Produto”, “ItemComanda” e “ComandaEletronica”
A classe Produto tem os seguintes atributos:
- nome
- descrição
- preço
Obs: os métodos são os getters e setters dos atributos acima (atributos são todos private)
A classe ItemComanda tem como atributos (todos private):
- referência para Produto
- quantidade
Portanto eu defini como uma composição a relação entre essas duas classes.
Minha dúvida é a seguinte, quanto implemento o ItemComanda e quero imprimir os atributos de Produto, gostaria de saber se é a prática correta a que eu estou fazendo:
Como a referência ao Produto é privado (private Produto produto), eu tenho que criar novos getters and setter como uma interface pública para acessar métodos que eu já escrevi na classe produto ? Exemplo no ItemComanda:
public String getDescricao() { // getter na classe ItemComanda
return produto.getDescricao(); // chamando o getter da classe Produto
}
Isso está correto, é assim mesmo ? Fiz isso uma vez que a classe ComandaEletrônica tem um ArrayList de ItemComanda que precisa acessar alguns atributos de Produto.
Edit: Outra dúvida.
A minha classe ComandaEletronica tem um ArrayList dos itens da comanda (classe Item Comanda), e tenho um método para fazer o cálculo do total:
Dúvida na hora de percorrer o ArrayList:
Estou com problema na parte iterator.next().getPreco(), ou seja, como faço para pegar atributos de um objeto que faz parte de um ArrayList ? Porque na instrução acima ele pega um atributo mais pula para o próximo elemento.
Queria fazer: getPreço() * getQuantidade()
public double calculaTotal(){
double valorTotal = 0;
Iterator<ItemComanda> iterator = itens.iterator();
while(iterator.hasNext()){
valorTotal += iterator.next().getPreco()
}
return valorTotal;
}