pessoal pergunta boba: qual a diferença de
public JTextField texto = new JTextField();
e
public static JTextField texto = new JTextField();
pessoal pergunta boba: qual a diferença de
public JTextField texto = new JTextField();
e
public static JTextField texto = new JTextField();
Um dos melhores tópicos sobre a palavra reservada static: http://www.guj.com.br/posts/list/114680.java
Nunca usei static para um JTextField, mas seria o mesmo JTextField para qualquer instância desta classe que ele pertence. Acredito que se você tiver várias instâncias abertas e fizer alguma operação neste JTextField em alguma delas, irá replicar para todas.
O que você pretende fazer com isso? Talvez não seja necessário usar o static.
[]'s
a diferença é que static quer dizer que só pode haver 1… igual high-lander (axo que escreve assim) … isso quer dizer que é uma propriedade compartilhada por todas as intancias dakele objeto… por exemplo
[code]public class Pessoa {
private static String ultimoNome; //propriedade estatica
private String nome; //propriedade não estatica
private String nomeAntesDeMim; //propriedade não estatica
public Pessoa(String meuNome) {
if (ultimoNome == null)
nomeAntesDeMim = “ninguem”;
else
nomeAntesDeMim = ultimoNome;
nome = meuNome;
ultimoNome = meuNome;
}
//método normal
public String getNome() {
return nome;
}
public String getNomeAntesDeMim() {
return nomeAntesDeMim;
}
//método estatico
public static String getUltimoNome() {
return ultimoNome;
}
}[/code]
agora usando essa classe… para exemplificar
[code]Pessoa joao = new Pessoa(“joao”);
System.out.println(“Ultima pessoa cadastrada = :” + joao.getUltimoNome());
Pessoa pedro = new Pessoa(“pedro”);
System.out.println(“Ultima pessoa cadastrada = :” + pedro.getUltimoNome());
Pessoa augusto = new Pessoa(“augusto”);
System.out.println(“Ultima pessoa cadastrada = :” + augusto .getUltimoNome());
//…
System.out.print(“Meu nome é " + joao.getNome())
System.out.print(” antes de mim foi cadastrado " + joao.antesDeMim())
System.out.println(" e a ultima pessoa cadastrada foi " + Pessoa.getUltimoNome());
System.out.print(“Meu nome é " + pedro.getNome())
System.out.print(” antes de mim foi cadastrado " + pedro.antesDeMim())
//veja que mesmo invocando diretamente de pedro sai o mesmo nome
System.out.println(" e a ultima pessoa cadastrada foi " + pedro.getUltimoNome());
System.out.print(“Meu nome é " + antonio.getNome())
System.out.print(” antes de mim foi cadastrado " + antonio.antesDeMim())
System.out.println(" e a ultima pessoa cadastrada foi " + Pessoa.getUltimoNome());
//a maneira mais usual de invocar um método estatico é assim
System.out.println("a ultima pessoa cadastrada foi " +Pessoa.getUltimoNome());
[/code]
note que quando o valor de ultimoNome muda… ele muda para todos… pois esse valor é estatico e portanto compartilhado por todos, ele pertence a classe e não a um objeto instanciado dakela classe…
É Highlanger Lavieri
Att.,
Acho que você está querendo complicar onde não é necessário.