Vc pode ter uma lista de pizzas, e no carrinho vc faz um método adiciona, que recebe uma pizza, e coloca a mesma nesse lista. E vc faz a regra dos ingredientes antes de adicionar, se vier sem ingredientes.
Quando eu vejo uma pergunta assim e o cara não faz nada nem coloca nenhum código, eu percebo o quanto o pessoal não gosta de programar, mas, eu vi que você está um pouco perdido e o enunciado (com certeza programinha de faculdade, que em vez de ajudar só complica, porque, nesse enunciado a erros grotescos que induz ao erro sobre variavel static).
Bom a minha solução é essa:
Classe Pizza:
import java.util.HashMap;
public class Pizza {
public HashMap<Integer, String> ingredientes;
public Pizza() {
this.ingredientes = new HashMap<>();
}
public void adicionaIngrediente(Integer id, String nome)
{
ingredientes.put(id, nome);
}
public Double getPreco()
{
Double result = 15D;
if (getQuantidade()>=3 && getQuantidade()<=5)
{
result = 20D;
}
else if (getQuantidade()>5)
{
result = 23D;
}
return result;
}
public Integer getQuantidade()
{
return ingredientes.size();
}
}
Classe CarrinhoDeCompra:
import java.util.ArrayList;
public class CarrinhodeCompras {
public ArrayList<Pizza> pizzas;
public CarrinhodeCompras() {
this.pizzas = new ArrayList<>();
}
public void adicionaPizza(Pizza pizza)
{
if (pizza.getQuantidade()>0){
this.pizzas.add(pizza);
}
}
public Double valorTotalPizzas()
{
Double result = 0D;
for(Pizza pizza: pizzas)
{
result = result + pizza.getPreco();
}
return result;
}
}
Como utilizar?
Pizza p1 = new Pizza();
p1.adicionaIngrediente(1, "Queijo");
p1.adicionaIngrediente(2, "Mussarela");
Pizza p2 = new Pizza();
p2.adicionaIngrediente(1, "Queijo");
p2.adicionaIngrediente(2, "Mussarela");
Pizza p3 = new Pizza();
p3.adicionaIngrediente(1, "Queijo");
p3.adicionaIngrediente(2, "Mussarela");
CarrinhodeCompras cC = new CarrinhodeCompras();
cC.adicionaPizza(p1);
cC.adicionaPizza(p2);
cC.adicionaPizza(p3);
System.out.println(cC.valorTotalPizzas());
Veja que na casse Pizza além de digitar o valor texto eu coloquei um valor que simula uma base de dados aonde os ingredientes tem um código. No enunciado não ficou claro isso, deve ser o copiar e colar pela metade removendo dados do enunciado e atrapalhando o conceito em si. Você deve indagar o seu professor sobre isso.
Bom esse seria o mais próxima da realidade do enunciado (removendo alguns erros) e o valor no final tem que ser nesse caso exemplo 45,00 por ser 6 ingredientes 2 em cada pizza.
Estude amigo! estudar faz bem e você logo logo aprenderá muitas coisas. Claro a experiência no meu caso é importante, porque, não sou programador Java, mas, tenho a lógica que é minha grande ferramenta!
Alguém conseguiu finalizar esse projeto? Alguém poderia me ajudar? Não estou conseguindo raciocinar de como eu vou imprimir o total do CarrinhoDeCompras e também o total utilizado de cada ingrediente.