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

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:

[code]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);
		}
		
	}
}

[/code]
Classe Estoque só contém um get/set:

[code]package trabalho;

public class Estoque {
int estoque;
//getters e setters
public int getEstoque(){
return estoque;
}
public void setEstoque(int estoque){
this.estoque=estoque;
}

}
[/code]
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:

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

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,