Aew galera…,
por favor me ajudem,
tipow, estou compilando minha classe Produto, por exemplo e esta dando o seguinte erro:
java.lang.NoSuchMethodError: Fornecedor: method ()V not found
at Produto.(Produto.java:39)
at Produto.main(Produto.java:56)
Exception in thread “main”
o que eh isso??? ate ontem ele tava sem erros
meu construtor:
public Produto(String n, String nf, String qtdest, String pv)
{ (linha 39)
nome = n;
this.setNomeFornecedor(nf);
qtdestoque = qtdest;
precovenda = pv;
}
Produto meuProduto = new Produto("", “”, “”, “”); => linha 56
a classe estya declarada: public class Produto extends Fornecedor
e no Fornecedor esta como protected o atributo nomeFornecedor
espero que me ajudem,
obrigado pela atenção
Mateus Zenaide
…e existe o método setNomeFornecedor( String nome ) na classe Fornecedor? :?:
existe sim…
[code]public String getNomeFornecedor()
{
return nomeFornecedor;
}
public void setNomeFornecedor(String nomeFornecedor)
{
this.nomeFornecedor = nomeFornecedor;
}[/code]
mateus, poste teu codigo completo ai… ai a gente acha o erro… :bocao: …2 matheus’es pensam melhor q 1… ehaeheha :naughty:
import javax.swing.*;
public class Produto extends Fornecedor
{
private String nome;
private String qtdestoque;
private String precovenda;
public String getNome()
{
return nome;
}
public void setNome(String nome)
{
this.nome = nome;
}
public String getQtdEstoque()
{
return qtdestoque;
}
public void setQtdEstoque(String qtdestoque)
{
this.qtdestoque = qtdestoque;
}
public String getPrecoVenda()
{
return precovenda;
}
public void setPrecoVenda(String precovenda)
{
this.precovenda = precovenda;
}
public Produto(String n, String nf, String qtdest, String pv)
{
nome = n;
this.setNomeFornecedor(nf);
qtdestoque = qtdest;
precovenda = pv;
}
public String toString()
{
return "Nome: " + nome + "\n" +
"Fornecedor: " + nomeFornecedor + "\n" +
"QtdEstoque: " + qtdestoque + "\n" +
"PreçoVenda: " + precovenda + "\n";
}
public static void main(String args[])
{
Produto meuProduto = new Produto("", "", "", "");
String nome, nomeFornecedor, qtdestoque, precovenda;
nome =
JOptionPane.showInputDialog("Nome do Produto: ");
nomeFornecedor =
JOptionPane.showInputDialog("Fornecedor: ");
qtdestoque =
JOptionPane.showInputDialog("QtdEstoque: ");
precovenda =
JOptionPane.showInputDialog("PreçoVenda: ");
JOptionPane.showMessageDialog(
null, "Nome do Produto: " + nome + "\n" +
"Fornecedor: " + nomeFornecedor + "\n" +
"QtdEstoque: " + qtdestoque + "\n" +
"PreçoVenda: " + precovenda, "Cadastro de Produtos", JOptionPane.PLAIN_MESSAGE);
JOptionPane.showMessageDialog(null, "Cadastro efetuado com sucesso!", "Confirmação do cadastro", JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}
--------------------------------------------------------------------------------------
ERRO:
java.lang.NoSuchMethodError: Fornecedor: method <init>()V not found
at Produto.<init>(Produto.java:39)
at Produto.main(Produto.java:56)
Exception in thread "main"
--------------------------------------------------------------------------------------
import javax.swing.*;
public class Fornecedor
{
protected String nomeFornecedor;
private String produto;
private String endereco;
public String getNomeFornecedor()
{
return nomeFornecedor;
}
public void setNomeFornecedor(String nomeFornecedor)
{
this.nomeFornecedor = nomeFornecedor;
}
public String getProduto()
{
return produto;
}
public void setProduto(String produto)
{
this.produto = produto;
}
public String getEndereco()
{
return endereco;
}
public void setEndereco(String endereco)
{
this.endereco = endereco;
}
public Fornecedor(String f, String p, String e)
{
nomeFornecedor = f;
produto = p;
endereco = e;
}
public String toString()
{
return "Nome do Fornecedor: " + nomeFornecedor + "\n" +
"Produto: " + produto + "\n" +
"Endereço: " + endereco;
}
public static void main(String args[])
{
Fornecedor meuFornecedor = new Fornecedor("", "", "");
String nomeFornecedor, produto, endereco;
nomeFornecedor =
JOptionPane.showInputDialog("Nome do Fornecedor: ");
produto =
JOptionPane.showInputDialog("Produto: ");
endereco =
JOptionPane.showInputDialog("Endereço: ");
JOptionPane.showMessageDialog(
null, "Nome do Fornecedor: " + nomeFornecedor + "\n" +
"Produto: " + produto + "\n" +
"Endereço: " + endereco);
JOptionPane.showMessageDialog(null, "Cadastro efetuado com sucesso!", "Confirmação do cadastro", JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}
Num repara no codigo nao, sou iniciante, e um projeto para faculdade.
[color=“red”]Editado para conter BBCode por jujo[/color]
mateus, coloque um construtor sem argumentos na sua classe Fornecedor, recompile ela… e agora pode compilar o Produto… :yes:
public class Fornecedor {
protected String nomeFornecedor;
private String produto;
private String endereco;
public Fornecedor() {}
/*
...
continuação da classe, não precisa tirar nada...
...
*/
[]'s
[quote=“matheus”]mateus, coloque um construtor sem argumentos na sua classe Fornecedor, recompile ela… e agora pode compilar o Produto… :yes:
public class Fornecedor {
protected String nomeFornecedor;
private String produto;
private String endereco;
public Fornecedor() {}
/*
...
continuação da classe, não precisa tirar nada...
...
*/
[]'s[/quote]
Meu fiiiiiiiiiiiii… vc caiu do céu uheueheuheuh, tava precisando disse urgente, mais tipow, que besteira…, tipow, eu nao entendi pq fazendo o construtor sem argunmentos, rodou filé, pq sabe dizer? a pessoa pode fazer isso em todos os construtores ? ou so quando tiver dando pau uhahuauhauha
um abraço e obrigado aí! :lol:
bem, ocorre o seguinte… sabe-se q qnd se define um construtor com argumentos em uma classe, vc esta anulando o construtor padrão sem argumentos dessa classe… E, se vc tem uma subclasse dessa classe, o construtor da subclasse irá chamar implicitamente um super() sem argumentos, q nada mais é do q uma chamada ao construtor default da superclasse… Como vc definiu um construtor com argumentos na superclasse, e não colocou um construtor para ser o padrão, logo… a chamada a super() da subclasse ira gerar um erro, pq a superclasse não tem nenhum construtor sem argumentos…! sacou? :naughty: