Classe mercado - JAVA

package java;


public class Mercado {
   static float preco;
   static int qte;
   private float total;
  
  public float  getPreco(){
	  return preco;
  }
  
  public int getQte(){
	  return qte;
  }

  public float getTotal(){
	  return total;
  }
  
  public void setPreco(float preco){
	  this.preco = preco;
  }
  public void setQte(int qte){
	  this.qte = qte;
  }
  public void setTotal(float total){
	  this.total = total;
  }
  
  public  Mercado(float preco, int qte, float total){
	  this.preco = 5;
	  this.qte = 3;
	  this.total = total;
  }
  
  public static float preco(float preco, int qte, float total){
	  total = preco*qte;
	  return total;
	  
  }
}

package java;

public class TesteMercado {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
          
		   Mercado mercado = new Mercado(3,5,15);
           mercado.getPreco();
           mercado.getQte();
           mercado.getTotal();
           System.out.println(mercado.getPreco());
           System.out.println(mercado.getQte());
           System.out.println(mercado.getTotal());
           
           
           
	}

}

Poderiam me dizer onde está o erro?

O que te faz achar que está errado? Dá algum erro ao executar? Se sim, qual? Isso evita que nós tenhamos que copiar seu código e executar para saber qual o problema, e todos ganham tempo.

Por que há atributos estáticos (preco, qte) na sua classe Mercado? Você entende para que servem atributos estáticos numa classe?

Abraço.

1 curtida

Primeiro porque eu estou com dúvida em como instanciar no main para o código rodar.

no construtor de mercado vc espera 3 parâmetros mais apenas atribui a 1 atributo e nos outros vc seta manualmente o valor de 5 e 3, na função preco vc retorna o total do que vc passou manualmente e não do q poderia ser passado na hora da instanciação no main.

agora uma pergunta: o total num é o resultado do preço com a quantidade?

Sim, eu pensei que vamos supor que você compra 6 balas por R$ 1,00 real aí o total a pagar seria a quantidade(que é 6) vezes o preço (1,00). que daria os 6,00 reais no caso.
Eu preciso colocar get.preco ou poderia ser so preco?

então eu faria assim:

public Mercado(float preco, int qte, float total) {
    this.preco = preco;
    this.qte = qtd;
    this.total = preco(preco, qte, total);
}

public static float preco(float preco, int qte, float total) {
    total = preco * qte;
    return total;

}

por que você colocou this.total = preco(preco,qte,total);

dentro da função preço vc calcula o total daí eu só aproveitei

certo, obrigado.