Dúvida: método não guarda valor de estoque

1 resposta
P

Olá pessoa, este é meu segundo tópico, eu tentei de todas as formas resolver o meu problema mas...
Situação: preciso adicionar e retirar do estoque através de métodos
Problema: O método adicionaEstoque é do tipo void. Preciso "segurar" a quantidade de itens no meu estoque, para remover depois.
Ou seja eu preciso de uma variável que controle o valor do estoque. Isso não está acontecendo, e o meu estoque sempre zera depois que eu aumento o valor e termino de executar o método adicionaEstoque(int num). Eu pensei em armazenao o valor de estoque assim que ele for adicionado ou diminuído, através dos getters e setters da classe Estoque(). O código ficou assim:

package trabalho;
import javax.swing.JOptionPane;

public class Produto {
	protected String preco;
	protected String nome;
	
	protected int num;
	
	public void adicionaEstoque(int num){
		
		if (num > 0){
//aqui eu crio um objeto para acessar os getters & setters de Estoque
			Estoque e = new Estoque();
			int estoque=0,atual = e.getEstoque();
			e.setEstoque(estoque+num);

/*a idéia na linha abaixo é de armazenar o valor ATUALIZADO do estoque. Perceba que eu já armazenei num+estoque dentro do setEstoque, então eu pego com o getEstoque*/
			e.getEstoque();
			num=e.getEstoque();
			System.out.println("Foram adicionados "+num+" de unidade ao estoque.");
			System.out.print("Quantidades no estoque: "+e.getEstoque()+".");
		
/*mais uma vez eu tentei fazer com que o valor de estoque já acrecentado fosse capturado pelo getEstoque. Funciona, mas o system.out.print me retorna 'foram adicionados 9 ao estoque. quantidades no estoque : 9'. Quando eu acrescento um novo valor, (ex.	5), fica a mesma coisa: adiciona 5 e qtdade. no estoque = 5.*/
			atual = this.num+atual;
			e.setEstoque(atual);
			e.getEstoque();
							
			}else{
				System.out.print("Digite um valor maior do que zero.");
				}
		
		}
	
	public void retirarEstoque(int qtd){
//ainda n mechi aqui pq não concluí o adicionaEstoque *_*
		String retira = JOptionPane.showInputDialog("Quantas unidades deseja retirar do estoque?");
		
		System.out.println("Foram retirados "+qtd+" de unidades do estoque.");
	}
	public static void main(String args[]){
		String numero = JOptionPane.showInputDialog("Digite 1 para adicionar ao estoque. 2 para retirar");
		int opcao = Integer.parseInt(numero);
		if (opcao==1){
			Produto p = new Produto();
			String qtdade = JOptionPane.showInputDialog("Quanto deseja adicionar?");
			int num = Integer.parseInt(qtdade);
			p.adicionaEstoque(num);
			}
			
		}
	}
Classe Estoque só contém um get/set:
package trabalho;

public class Estoque {
	int estoque;
	//getters e setters
	public int getEstoque(){
		return estoque;
	}
	public void setEstoque(int estoque){
		this.estoque=estoque;
	}
	
}
A minha dúvida seria: como eu faço pra MANTER o valor do estoque, depois de ter usado o método adicionaEstoque(int qtd)? Isso é parte deste exercício da minha faculdade: [img]http://img130.imageshack.us/img130/7830/exerciciob.png[/img]

Agradeço imensamente àquele que tentarem me colocar no caminho certo.
Vlw!!

1 Resposta

pedruhenrik

programm3r,

o uml da classe Produto apresenta 3 atributos: Preço, Nome e Estoque.

acho q vc deve refazer a classe Produto com esses 3 atributos e acrescentar os métodos “adicionaEstoque” e “removeEstoque”.

e será q ñ tem nada de errado no uml??? achei meio estranho a herança.

att,

Criado 29 de novembro de 2010
Ultima resposta 29 de nov. de 2010
Respostas 1
Participantes 2