Problema com Metodo Construtor

5 respostas
O

Boa tarde galera, estou com uma duvida terrivel, minha professora na faculdade passou a seguinte Questão:

8 ? Crie uma classe chamada Fatura para que uma loja de suprimentos de informática possa utilizá-la para representar uma fatura de um item vendido na loja. Uma fatura deve incluir quatro partes da informações como variáveis de instância ? o código do produto, a descrição , a quantidade comprada de um item e o preço do item. Sua classe deve ter um construtor que inicializa as quatro variáveis de instância. Forneça um método set e um método get para cada variável de instância. Além disso, forneça um método getQuantiaFatura que calcula o valor da fatura (isto é, calcula a quantidade pelo preço por item) e depois retorna o valor como um double. Se o valor não for positivo, ele deve ser configurado como 0. Se o preço por item não for positivo, ele deve ser configurado como 0.0. Escreva um aplicativo de teste chamado FaturaTeste que demonstra as capacidades da classe Fatura.
Eu já fiz a Classe Fatura
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Exercicios;

/**
 *
 * @author RoNii-Ti
 */
public class Fatura {

    public String Codigo,Produto,Descricao,Quantidade,Cliente;
    public double preco;

    //inicio do construtor
    public Fatura ( String Codigo1, String Produto1, String Descricao1, String Quantidade1,String Cliente1)
    {
        Cliente = Cliente1;
        Codigo = Codigo1;
        Produto = Produto1;
        Descricao = Descricao1;
        Quantidade = Quantidade1;
    } // fim do construtor
    //inicio do construtor de double
    public Fatura ( double precoInicial)
    {
       preco = precoInicial;
    }

    //metodo para armazenar as informacoes
    public void setCliente( String Cliente1)
    {
        Cliente = Cliente1;
    }
    public void setCodigo ( String Codigo1)
    {
        Codigo = Codigo1;
    }
    public void setProduto ( String Produto1)
    {
        Produto = Produto1;
    }
    public void setDescricao ( String Descricao1)
    {
        Descricao =  Descricao1;
    }
    public void setQuantidade ( String Quantidade1)
    {
        Quantidade = Quantidade1;
    }
    public void setPreco ( double precoInicial)
    {
        preco = precoInicial;
    }

    //metodos para recuperar informacoes GET
    public String getCliente()
    {
        return Cliente;
    }
    public String getCodigo()
    {
        return Codigo;
    }
    public String getProduto()
    {
        return Produto;
    }
    public String getDescricao()
    {
        return Descricao;
    }
    public String getQuantidade()
    {
        return Quantidade;
    }
    public double getPreco()
    {
        return preco;
    }

}
E A Classe de Fatura TESTE
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Exercicios;
import javax.swing.*;

/**
 *
 * @author RoNii-Ti
 */
public class FaturaTeste {

    public static void main(String[] args)
    {
        String cliente,produto,quantidade,descricao,codigo;
        double preco;
        Fatura mostraCliente = new Fatura("Sem Cliente");
        Fatura mostraCodigo = new Fatura("0");
        Fatura mostraProduto = new Fatura("Sem Produto");
        Fatura mostraDescricao = new Fatura("Sem Descricao");
        Fatura mostraQuantidade = new Fatura("Sem quantidade");
        Fatura mostraPreco = new Fatura("Sem Valor");

      JOptionPane.showMessageDialog(null,"Cliente : "+mostraCliente.getCliente()+"\nCodigo : "+mostraCodigo.getCodigo()
              +"\nProduto : "+mostraProduto.getProduto()+"\nDescricao : "+mostraDescricao.getDescricao()+"\nQuantidade : "
              +mostraQuantidade.getQuantidade()+"\nPreço : "+mostraPreco.getPreco());

      cliente = JOptionPane.showInputDialog("Digite o Nome do Cliente");
      mostraCliente.setCliente(cliente);
      codigo = JOptionPane.showInputDialog("Digite o N° do Codigo do Produto");
      mostraCodigo.setCodigo(codigo);
      produto = JOptionPane.showInputDialog("Digite Nome do Produto");
      mostraProduto.setProduto(produto);
      descricao = JOptionPane.showInputDialog("Digite a Descrição do Produto");
      mostraDescricao.setDescricao(descricao);
      quantidade = JOptionPane.showInputDialog("Digite a Quantidade Vendida");
      mostraQuantidade.setQuantidade(quantidade);
      preco = Double.parseDouble(JOptionPane.showInputDialog("Digite o valor do Produto"));
      mostraPreco.setPreco(preco);

    }

}

Porem na Classe de teste está dando ERRO da linha 19 até a 24 exatamente dizendo que não declarei o Construtor.
Errei em algum lugar?
Outra coisa como que Poderia fazer esse getQuantiaFatura. Fiquei com duvidas..

Desculpe algo dito errado..

AGradeço a ajuda de todos.

5 Respostas

thiago.correa

Você declarou, porém, não há nenhum construtor que receba como parâmetro uma String

Ou você cria uma construtor que receba uma String, ou você pode criar um construtor padrão (sem argumentos) e ir utilizando os métodos getters/setters

O

thiago.correa Poderia explicar melhor?

Não server essa parte ?

//inicio do construtor public Fatura ( String Codigo1, String Produto1, String Descricao1, String Quantidade1,String Cliente1) { Cliente = Cliente1; Codigo = Codigo1; Produto = Produto1; Descricao = Descricao1; Quantidade = Quantidade1; } // fim do construtor

Obrigado!

thiago.correa

Leia direitinho o que eu lhe escrevi

thiago.correa:
[size=18]Você declarou, porém, não há nenhum construtor que receba como parâmetro uma String[/size]

Ou se preferir, você está invocando o seu método construtor da forma errada!
Resumindo se você criou um método que recebe um inteiro como por exemplo

public void somaNumeros(int num1, int num2) {
//logica aqui
}

você não pode chamá-lo da seguinte maneira

meuObjeto.somaNumeros("numero 1");

Porque? Pelo simples fatos que o além do tipo do objeto que você está passando como parâmetro estar errado, está faltando um outro argumento, afinal de contas o método espera 2 valores como argumento, qual seria o certo?!

meuObjeto.somaNumeros(1, 2);

Agora sim :wink:

O

Hum beleza,

Agora resolvi aqui , vi que não tem como Por várias opcoes dentro do Construtor , deixei apenas uma opcao e agora compilo!

So deixei assim agora:
public Fatura (String Cliente1)
    {
        Cliente = Cliente1;
        
    }

Porém pra mim inserir mais opcoes , como posso realizar? Como Codigo, Descricao..

thiago.correa

Você pode sobreescrever qualquer método, inclusive o construtor!

A Sobreescrita se dá da seguinte maneira, mesmo nome, porém, lista de argumentos diferentes!!!

Como você fez

public Fatura ( String Codigo1, String Produto1, String Descricao1, String Quantidade1,String Cliente1)  
     {  
         Cliente = Cliente1;  
         Codigo = Codigo1;  
         Produto = Produto1;  
         Descricao = Descricao1;  
         Quantidade = Quantidade1;  
     } // fim do construtor  
     //inicio do construtor de double  
     public Fatura ( double precoInicial)  {
}
Criado 22 de setembro de 2010
Ultima resposta 22 de set. de 2010
Respostas 5
Participantes 2