Somar um valor que já tem no estoque? [RESOLVIDO]

5 respostas
D

Boa Noite! estou com uma dúvida, quero pegar o valor que está no estoque 40, e acrescentar 50,com soma 90.
classe “Bebida”, um atributo “quantidadeEstoque”

package Loja;

 public void setQuantidadeEstoque(int quantidadeEstoque) {
        this.quantidadeEstoque = quantidadeEstoque;
        quantidadeEstoque = 40;//->aqui a quantidade no estoque, que começa com 20-<
    }
    public String toString(){
        //String str = super.toString() + "quantidade em estoque = " + quantidadeEstoque; 
        return str;

       String str = "Produto:\nNomeDoProduto = " + getNome() + "\nQuantidade em Estoque = " + quantidadeEstoque;
       return str;
    }
}

// Em outra classe. 
package Loja;

public class Principal {
    public static void main (String [] args){
        Bebida b1 = new Bebida(123)
        
        System.out.println(b);
        //System.out.println(b.toString()); //É mesma coisa que o da linha de cima
    }   
}

Dai eu queria somar o valor atual da quantidade do estoque que e 20, com o 30. Se alguém puder me ajudar. Obrigado

5 Respostas

W

Tenta algo assim

public int setQuantidadeEstoque(int quantidade) { this.quantidadeEstoque = quantidadeEstoque; quantidadeEstoque = 20;//->aqui a quantidade no estoque, que começa com 20-< quantidadeEstoque+=quantidade; return quantidadeEstoque; }

pvrsouza

Existem formas melhores de tratar este caso, mas mantendo seu raciocínio, vou sugerir algumas alterações:

public class Bebida extends Produto {//Está extendendo para a classe "Produto"  
	//usar uma variavel estatica para que, na prática, acumule os valores em diferentes instancias do objeto
	private static int quantidadeEstoque;

	
	public Bebida(int codigo, String nome, double valor, int qnt) {
		super(codigo, nome, valor, qnt);
		//usar o método que faz a soma...
		this.setQuantidadeEstoque(qnt);
	}

	public int getQuantidadeEstoque() {
		return quantidadeEstoque;
	}

	public void setQuantidadeEstoque(int quantidadeEstoque) {
		//basta somar a variável estática...
		this.quantidadeEstoque += quantidadeEstoque;
	}

	public String toString() {
		String str = "Produto:\nNome = " + getNome() + "\nCodigo = " + getCodigo() + "\nValor = " + getValor()
				+ "\nQuantidade em Estoque = " + quantidadeEstoque;
		return str;
	}
}
public class Principal {
	public static void main(String[] args) {
		
		Bebida b = new Bebida(123, "Lata de Guaraná", 4.5, 40);
		System.out.println(b);
		
		Bebida b2 = new Bebida(123, "Lata de Guaraná", 4.5, 40);
		System.out.println(b2);
	}
}

Se vc executar a classe principal vai ver que o "b2" já terá o valor de estoque acumulado.

Abs

V

Para que o seu programa rode e já faça o auto-incremento, necessita-se de algumas correções. O método setQuantidadeEstoque não é usado e deve ser tirado do seu programa, porque ele tem a mesma funcionalidade do construtor da sua classe pai que é a entrada de dados.

Para fazer isso você vai inserir a quantidade 20 na inicialização do objeto "b". Outra coisa é sempre que possível utilize a palavra-chave THIS, pois além de ser uma boa prática, facilita a legibilidade do seu programa. E deve criar um método addQuantidadeEstoque que irá suplementar seu estoque, e já deve criar um método RemQuantidadeEstoque para diminuir seu estoque.

Seu código ficaria assim:

package Pizzaria;   
  
        public class Bebida extends Produto {
        private int quantidadeEstoque;   
       
    public Bebida (){   
        super();  
   }   
   public Bebida(int codigo, String nome, double valor, int qnt){//Construtor com argumentos   
       super(codigo, nome, valor);
       this.quantidadeEstoque = qnt;         
   }   

    public void addQuantidadeEstoque(int qtd) {  //Adiciona produtos ao estoque, e já soma
        this.quantidadeEstoque += qtd;
    }

    public void remQuantidadeEstoque(int qtd) {  
        this.quantidadeEstoque -= qtd;
    }
  
    public int getQuantidadeEstoque() {   //Retorna o valor da quantidade atualizado
        return this.quantidadeEstoque;   
    }   
    
    public String toString(){   
       String str = "Produto:\nNome = " + getNome()   
               + "\nCodigo = " + getCodigo()   
               + "\nValor = " + getValor()   
               + "\nQuantidade em Estoque = " + this.quantidadeEstoque;   
       return str;   
    }   
}   
  
// Em outra classe.   
package Pizzaria;   
  
public class Principal {   
       
    public static void main (String [] args){   
        Bebida b = new Bebida(123, "Lata de Guaraná", 4.5, 20);   //Está inicializando o produto "Lata de Guaraná" com 20 produtos

        b.addQuantidadeEstoque(30);       //Aqui ele está chamando o método addQuantidadeEstoque que pega os 20 produtos e add 30 que está de parâmetro de entrada
        System.out.println(b.getQuantidadeEstoque() );    //Aqui usa o método getQuantidadeEstoque p/ retornar a quantidade do produto, use sempre b.MÉTODO

    }     
}
D

Muito Obrigado a Todos pela compreensão. Vocês me ajudaram bastante. To no inicio do java.Os três(wilkem,pvrsouza,valdeir.bae) me ajudaram muito.
Vlw pessoal e Boa Noite!

oliversistemas

acrescente [RESOLVIDO] no nome do tópico, amigo.

Criado 25 de março de 2013
Ultima resposta 26 de mar. de 2013
Respostas 5
Participantes 5