Dúvida simples, static

oi galera,

preciso da ajuda de voces, bem, eu tinha uma ducida, postei aqui no portal, e pediram pra colocar static, na declaração das variaveis, mais o professor disse que está errado em usar, o codigo é:


import javax.swing.*;

public class Venda 
{
    private static Funcionario funcionario;
    private static String produto;
    private static String valorvenda;
    private static String cliente;
    private static String datavenda;

public Funcionario getFuncionario()
{
    return funcionario;
}

public void setFuncionario(Funcionario funcionario)
{
    this.funcionario = funcionario;
}

public String getProduto()
{
    return produto;
}

public void setProduto(String produto)
{
    this.produto = produto;
}

public String getValorVenda()
{
    return valorvenda;
}

public void setValorVenda(String valorvenda)
{
    this.valorvenda = valorvenda;
}

public String getDataVenda()
{
    return datavenda;
}

public void setDataVenda(String datavenda)
{
    this.datavenda = datavenda;
}

public Venda(Funcionario f, String p, String vv, String c, String dv)
{
    funcionario = f;
    produto = p;
    valorvenda = vv;
    cliente = c;
    datavenda = dv;
}

public String toString()
{
    return "Funcionário: " + funcionario + "\n" +
           "Produto(s): " + produto + "\n" +
           "Valor da Venda: " + valorvenda + "\n" +
           "Cliente: " + cliente + "\n" +            
           "DataVenda: " + datavenda + "\n";  
}

public static void main(String args[])
{
    Venda minhaVenda = new Venda(funcionario, produto, valorvenda, cliente, datavenda);
    
    String funcionario, produto, valorvenda, cliente, datavenda;
    
        funcionario = 
            JOptionPane.showInputDialog("Funcionário: ");
 
        produto = 
            JOptionPane.showInputDialog("Produto(s): ");
    
        valorvenda = 
            JOptionPane.showInputDialog("ValorVenda: ");
    
        cliente = 
            JOptionPane.showInputDialog("Cliente: ");
    
        datavenda = 
            JOptionPane.showInputDialog("DataVenda: ");

        
        
        JOptionPane.showMessageDialog(
            null, "Funcionário: " + funcionario + "\n" +
                  "Produto(s): " + produto + "\n" +
                  "Valor da Venda: " + valorvenda + "\n" +
                  "Cliente: " + cliente + "\n" +
                  "Data da Venda: " + datavenda, "Cadastro de Produtos", JOptionPane.PLAIN_MESSAGE);
                
        JOptionPane.showMessageDialog(null, "Cadastro efetuado com sucesso!", "Confirmação do cadastro", JOptionPane.INFORMATION_MESSAGE);
        
        System.exit(0);
}

}
    preciso tirar os statics..  
    private static Funcionario funcionario;
    private static String produto;
    private static String valorvenda;
    private static String cliente;
    private static String datavenda;

quando eu tiro, da erro em:

    Venda minhaVenda = new Venda(funcionario, produto, valorvenda, cliente, datavenda);

o professor disse que era pra fazer chamando o metodo get, ja que tirando o static, fica tipow, invisivel… sei la o q

Espero que me ajudem
valeu galera!
abraço a todos

Não entendi muito bem oq vc queria fazer com esse código! Do jeito que tah, ele nao usa nada dos gets nem dos sets… vc está criando as variaveis locais (e “globais”) e está trabalhando com elas somente…
Pelo que entendi, voce deve usar o método set para setar o valor dessas variaveis e get para pegar esses valores…
Tente corrigir o teu código ae… não vou te passar pronto senão vc não aprende do mesmo modo que poderia aprender “ralando” um pouco… mas vai uma dica ae para vc…

import javax.swing.JOptionPane;

/*
 * Created on 18/03/2004
 *
 * To change the template for this generated file go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */

/**
 * @author elton
 *
 * To change the template for this generated type comment go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */
public class PJ {
	private static String nome;
	private static String site;

	public static void main(String[] args) {
		setNome(JOptionPane.showInputDialog(null,"Entre com seu nome"));
		setSite(JOptionPane.showInputDialog(null,"Entre com o site"));
		JOptionPane.showMessageDialog(null,"O seu nome é "+getNome()+" e o seu site é "+getSite());
	}


	/**
	 * @return
	 */
	public static String getNome() {
		return nome;
	}

	/**
	 * @return
	 */
	public static String getSite() {
		return site;
	}

	/**
	 * @param string
	 */
	public static void setNome(String string) {
		nome = string;
	}

	/**
	 * @param string
	 */
	public static void setSite(String string) {
		site = string;
	}

}

Se tiver problemas, eh soh falar :slight_smile:

Abraços,

bom… pelo q eu entendi o q teu professor quer é o seguinte

1º faça um Construtor padrão…

public Venda() {}

2º construa ele na classe main assim

   Venda minhaVenda = new Venda(); 

3º User os métodos set… para alterar o valor da venda…

minhaVenda.setFuncionario(JOptionPane.showInputDialog("Funcionário: ")); minhaVenda.setProduto(JOptionPane.showInputDialog("Produto(s): ")); //....
siga o padrão e va setando tudo…

eu não vi sentido para funcionário ser uma classe… agora se realmente for… vc terá q mudar a maneira de setar o funcionario…

4º na hora d emostras os resultados faça assim

JOptionPane.showMessageDialog(minhaVenda.toString());

nào precisa escrever todo o código again…

boa sorte…

e sim não eskeca… tire os métodos de estatico

o método public static void main() só sonsegue acessar variáveis estáticas, por isso que dá erro naquela linha, vc está acessando as variáveis que não serão mais estáticas da classe Venda