Solução: non static variable nome cannot be referenced fro

4 respostas
M

Aew galera,

To precisando da ajuda de vcs, o codigo e o seguinte:
Quando eu executo a classe o erro esta dando em:

Produto meuProduto = new Produto(nome, fornecedor, qtdestoque, precovenda);

" non static variable nome cannot be referenced from a static context "
esse erro esta dando na minha classe venda tb, so q e outro atributo, no caso eh funcionario.

bem… qual a solução, tenho impressao q e besteira, mais sou iniciante neh… ai eh fods

import javax.swing.*;

public class Produto  
{
    private String nome;
    private Fornecedor fornecedor;
    private String qtdestoque;
    private String precovenda;
    
public String getNome()
{
    return nome;
}

public void setNome(String nome)
{
    this.nome = nome;
}

public Fornecedor getFornecedor()
{
    return fornecedor;
}

public void setFornecedor(Fornecedor fornecedor)
{
    this.fornecedor = fornecedor;
}

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, Fornecedor f,String qtdest, String pv)
{
    nome = n;
    fornecedor = f;
    qtdestoque = qtdest;
    precovenda = pv;
}

public String toString()
{
    return "Nome: " + nome + "\n" +
           "Fornecedor: " + fornecedor + "\n" +
           "QtdEstoque: " + qtdestoque + "\n" +
           "PreçoVenda: " + precovenda + "\n";
}

public static void main(String args[])
{
    Produto meuProduto = new Produto(nome, fornecedor, qtdestoque, precovenda);
    
    String nome, fornecedor, qtdestoque, precovenda;
    
        nome = 
            JOptionPane.showInputDialog("Nome do Produto: ");
    
        fornecedor = 
            JOptionPane.showInputDialog("Fornecedor: ");
        
        qtdestoque = 
            JOptionPane.showInputDialog("QtdEstoque: ");

        precovenda = 
            JOptionPane.showInputDialog("PreçoVenda: ");
    
        JOptionPane.showMessageDialog(
            null, "Nome do Produto: " + nome + "\n" +
                  "Fornecedor: " + fornecedor + "\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);
}

}

4 Respostas

J

Oi

Matheus, o erro é pq tu está acessando uma variavel de instância não estática de dentro de um método estático… Uma menria de fácil de se resolver é assim, mude a parte inicial do código por:

private static String nome; private static Fornecedor fornecedor; private static String qtdestoque; private static String precovenda;

T+

M

“jeveaux”:
Oi

Matheus, o erro é pq tu está acessando uma variavel de instância não estática de dentro de um método estático… Uma menria de fácil de se resolver é assim, mude a parte inicial do código por:

private static String nome; private static Fornecedor fornecedor; private static String qtdestoque; private static String precovenda;

T+

aff que vergonha huahuahuahuauh, inda bem que tenho uma saida, sou iniciante hehe :P, ei, valeu cara, tanks

T

bahhh… teu código ta meio louco Mateus :galera: … vou da minha opnião de como deveria ficar… :error:

import javax.swing.*;

public class Produto 
{
    private String nome;
    private Fornecedor fornecedor;
    private String qtdestoque;
    private String precovenda;
   
public String getNome()
{
    return nome;
}

public void setNome(String nome)
{
    this.nome = nome;
}

public Fornecedor getFornecedor()
{
    return fornecedor;
}

public void setFornecedor(Fornecedor fornecedor)
{
    this.fornecedor = fornecedor;
}

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, Fornecedor f,String qtdest, String pv)
{
    nome = n;
    fornecedor = f;
    qtdestoque = qtdest;
    precovenda = pv;
}

public String toString()
{
    return "Nome: " + nome + "\n" +
           "Fornecedor: " + fornecedor + "\n" +
           "QtdEstoque: " + qtdestoque + "\n" +
           "PreçoVenda: " + precovenda + "\n";
}

public static void main(String args[])
{
    String nome, fornecedor, qtdestoque, precovenda;
   
        nome =
            JOptionPane.showInputDialog("Nome do Produto: ");
   
        fornecedor =
            JOptionPane.showInputDialog("Fornecedor: ");
       
        qtdestoque =
            JOptionPane.showInputDialog("QtdEstoque: ");

        precovenda =
            JOptionPane.showInputDialog("PreçoVenda: ");

    Produto meuProduto = new Produto(nome, fornecedor, qtdestoque, precovenda);
   
   
        JOptionPane.showMessageDialog(
            null, "Nome do Produto: " + nome + "\n" +
                  "Fornecedor: " + fornecedor + "\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);
}

}

bom mesmo assim… axo q esse código akaba fazendo nada =]

mas se é pra estudo entaum é VALIDO :lolgoku:

M

afff… vou pendurar a chuteira
auhauhahua

Criado 16 de março de 2004
Ultima resposta 16 de mar. de 2004
Respostas 4
Participantes 3