Máquina de Refrigerante

Ola galera bom dia, estou tentando fazer uma máquina de refrigerante em java, meu codigo tem q ter encapsulamento, so tive uma uma sobre essa funçao,
alguem pode me ajudar a começar meu codigo!

Grato,

Primeiramente pense um pouquinho e pense o que tem de ter a sua máquina de refrigerante. Como você está começando a aprender Java, então deve ser uma coisa muito simples; vou fazer umas perguntinhas.

a) Você pode escolher várias marcas de refrigerante, ou ela só vende Coca-Cola?
b) Se houver várias marcas, há refrigerantes mais caros e mais baratos, ou todas são do mesmo preço?
c) A máquina tem de dar troco, ou ela aceita só fichas (cada ficha corresponde a um refrigerante?)
d) A máquina aceita moedas ou cédulas?
e) Você precisa mostrar o saldo enquanto a pessoa está pondo dinheiro?
f) Se a pessoa apertar o botão e não houver saldo suficiente, o que acontece?
g) Depois que a pessoa receber o refrigerante, como ela recebe o troco?
h) Se a pessoa apertar o botão mas o refrigerante não estiver disponível, o que você faz?
i) Se a pessoa apertar o botão, mas não houver troco suficiente, o que ocorre?
j) Existe um botão que a pessoa possa apertar para cancelar o troco e receber o dinheiro de volta?
k) Existe um relatório que o dono da máquina possa obter dizendo qual é o estoque (quantas latas de cada refrigerante a máquina ainda tem) e qual o dinheiro existente na máquina?

Essas perguntas são essenciais para você montar seu programa. Responda todas direitinho e vai ver que é bem mais fácil montar o programa. Você pode simplificar bem o problema, ou pode montar uma máquina “de verdade”. Pode até fazer mais perguntas.

a) Você pode escolher várias marcas de refrigerante, ou ela só vende Coca-Cola?
ela so vende Coca-Cola
b) Se houver várias marcas, há refrigerantes mais caros e mais baratos, ou todas são do mesmo preço?
todas sao do mesmo preço
c) A máquina tem de dar troco, ou ela aceita só fichas (cada ficha corresponde a um refrigerante?)
a máquina tem de dar troco
d) A máquina aceita moedas ou cédulas?
cédulas
e) Você precisa mostrar o saldo enquanto a pessoa está pondo dinheiro?
precisa mostrar a quantidade de latas de refrigerante
f) Se a pessoa apertar o botão e não houver saldo suficiente, o que acontece?
saldo insuficiente, por favor insira quantidade maior
g) Depois que a pessoa receber o refrigerante, como ela recebe o troco?
se valor maior que valor do refri. recebe o troco
h) Se a pessoa apertar o botão mas o refrigerante não estiver disponível, o que você faz?
exibe uma mensagem dizendo refrigerante nao disponivel
i) Se a pessoa apertar o botão, mas não houver troco suficiente, o que ocorre?
troco insuficiente compre outro refri
j) Existe um botão que a pessoa possa apertar para cancelar o troco e receber o dinheiro de volta?
sim
k) Existe um relatório que o dono da máquina possa obter dizendo qual é o estoque (quantas latas de cada refrigerante a máquina ainda tem) e qual o dinheiro existente na máquina?
sim

Uma forma comum de fazer encapsulamento é você começar seu programa sem encapsulamento, fazê-lo funcionar, e então ir encapsulando as partes necessárias.
Peça ajuda aqui para descobrir o que é necessário para encapsular seu programa “não encapsulado”.

primeiro quero começar a criar meu programa ele tem q ser orientando a objeto ou seja tem q ter duas class a principal onde vai ficar o metodo main e a outra.
como começo

[quote=wesleysilva]primeiro quero começar a criar meu programa ele tem q ser orientando a objeto ou seja tem q ter duas class a principal onde vai ficar o metodo main e a outra.
como começo[/quote]

Por que só 2 classes? Pode ter mais ou menos.

Algumas coisas você pode representar como objetos e outras como números mesmo. No problema acima, o que você acha que são objetos, e o que você acha que são só números?

Quando você precisa entregar esse trabalho na faculdade?

dia 30 prq amigo

boa sorte, você têm 13 dias pra aprender o que você não aprendeu em aula!!!

amigo ainda nao esta totalmente resolvido vou postar aki minhas class quero implementar-las com o custo de cada lata de refrigerante vc pode me ajudar.

class.

public class MaquinaDeRefri 
{
	private int quantidade = 0;

	public MaquinaDeRefri(int quantidade) 
	{
		// passa o valor informado para a quantidade de refrigerantes para a variavel global quantidade.
		this.quantidade = quantidade;
	}
	public int getEstoque()
	{
		return this.quantidade;
	}

	public boolean venda() 
	{
		// verifica se h� refrigerantes para venda
		if (this.quantidade > 0) 
		{
			// retira o refrigerante do estoque
			this.quantidade--;
			// retorna verdadeiro
			return true;
			// entra aqui quando n�o h� refrigerantes no estoque
		} 
		else 
		{
			// retorna falso
			return false;
		}
	}
}

class venda

public class Venda 
{
	// cria uma makina de refrigerante com 10 refrigerantes.
	private MaquinaDeRefri maquina = new MaquinaDeRefri(10);

	public String hasRefriMsg() 
	{
		// Se houver refrigerante retorna a msg abaixo
		if (this.maquina.getEstoque() > 0)
			return "Sim, temos refrigerante.";
		// Se não houver retorna está msg abaixo
		else
			return "Desculpe-me, os refrigerantes acabaram.";
	}

	public String getNumerodeRefri() 
	{
		// retorna a seguinte msg para o caso de mais de 1 refrigerante
		if (this.maquina.getEstoque() > 1)
			return "Temos " + this.maquina.getEstoque()+ " refrigerantes em estoque";
		// retorna a mesma mensagem de cima, se que no singular
		else if (this.maquina.getEstoque() == 1)
			return "Temos 1 refrigerante em estoque";
		// retorna uma msg informando que nao ha refrigerantes
		else
			return "Desculpe os refrigerantes acabaram.";
	}

	/**
	 * metodo para vender refrigerantes return a msg do vendedor.
	 */
	public String saleRefri() 
	{
		// retorna uma msg de venda caso haja refrigerantes pra vender
		if (this.maquina.venda()) 
		{
			return "Pronto Sr., está aqui o seu refrigerante";
		} else
			return "Desculpe-me Sr., os refrigerantes acabaram.";
	}
}

class principal main

 import java.io.*;  
 public class Main  
 {  
    //este metodo é executado quando o programa for rodado  
    public static void main(String[] args)  
    {  
      //cria a venda de refrigentes...  
       Venda vendaRefri = new Venda();  
       //marka a entrada no loop  
       boolean loop = true;  
       int iopçao = -1;  
       System.out.println("Bem Vinda a Máquina de Refrigerante Cola-Cola");  
       //executa o codigo dentro do while enquanto loop == true  
       while (loop)  
       {  
          //imprme as opçoes na tela  
          printOpcoes();  
          //ler um dado que a pessoa digitou  
          DataInputStream in = new DataInputStream(System.in);  
          try 
          {  
            iopçao = Integer.parseInt(in.readLine());
          } catch (Exception ex) {ex.printStackTrace();}  
          
          //verifica qual opçao foi escolhida  
          switch(iopçao) {  
             case 1:  
                //imprime a msg na tela  
                System.out.println(vendaRefri.hasRefriMsg());  
               //para o teste das opçoes  
                break;  
             case 2:  
                 //imprime a msg na tela  
                System.out.println(vendaRefri.getNumerodeRefri());  
                //para o teste das opçoes  
                break;  
             case 3:  
                 //imprime a msg na tela  
                System.out.println(vendaRefri.saleRefri());  
                //para o teste das opçoes  
                break;  
             case 4:  
                 //imprime a msg na tela  
                System.out.println("Obrigado Senhor.");  
                //neste caso especifico... ajusta para sair do loop e do programa  
                loop = false;  
                //para o teste das opçoes  
                break;  
             default:  
                 //imprime a msg na para o caso de nao ter escolhido  
                 //uma opçao correta  
                 System.out.println("Desculpe Sr., eu não entendi o seu pedido");  
          }  
       }  
    }  
      
    public static void printOpcoes() {  
       System.out.println();  
       System.out.println("1 - Você tem refrigerantes?");  
       System.out.println("2 - Quantos refrigerantes você tem");  
       System.out.println("3 - Eu quero comprar 1 refrigerantes");  
       System.out.println("4 - Sair");  
       System.out.println();  
    }  
 }

Suas respostas estão um pouco confusas cara,
"
b) Se houver várias marcas, há refrigerantes mais caros e mais baratos, ou todas são do mesmo preço?
todas sao do mesmo preço

i) Se a pessoa apertar o botão, mas não houver troco suficiente, o que ocorre?
troco insuficiente compre outro refri
"
você quis dizer:

compre MAIS um refrigerante ou compre OUTRO refrigerante? e se o dinheiro do cliente não for suficiente para outro refrigerante,
o cliente consegue o seu dinheiro de volta?

b) Se houver várias marcas, há refrigerantes mais caros e mais baratos, ou todas são do mesmo preço?
so tem uma marcar de refrigerante coca-cola e vai valer um preço fixo

i) Se a pessoa apertar o botão, mas não houver troco suficiente, o que ocorre?
primeiro tem q calcular se tem troco, se nao tiver troco devove o dinheiro e informa: troco insuficiente favor entrar com outro valor em dinheiro