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
public int setQuantidadeEstoque(int quantidade) {
this.quantidadeEstoque = quantidadeEstoque;
quantidadeEstoque = 20;//->aqui a quantidade no estoque, que começa com 20-<
quantidadeEstoque+=quantidade;
return quantidadeEstoque;
}
Existem formas melhores de tratar este caso, mas mantendo seu raciocínio, vou sugerir algumas alterações:
[code]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;
}
}[/code]
[code]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);
}
}
[/code]
Se vc executar a classe principal vai ver que o “b2” já terá o valor de estoque acumulado.
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:
[code]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
}
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!