Erro de passagem de objeto por parâmetro

class ListaJogadores
{
public Vector Jogadores;

public void ListaJogadores()
{
	this.Jogadores = new Vector();
	this.Jogadores.clear();
}

public void adicionarJogador( EstJogador objJogador ){

	this.Jogadores.addElement(objJogador);

}

public void ordenarJogadores(){
	
	Collections.sort( this.Jogadores , new Comparacao() );
	
}

public static void main(String args[])
{
	EstJogador objJog = new EstJogador();
	objJog.setNome("Cássius");
	objJog.setNumAcertos(1);
	objJog.setNumErros(2);
	this.adicionarJogador( objJog );
}

}

Como resolver o erro non-static: variable this cannot be referenced from a static context?

Olá cyabert!

Tente tirar o “this.” do trecho abaixo!

objJog.setNumAcertos(1);
objJog.setNumErros(2);
this.adicionarJogador( objJog );
}

Ficando assim:

objJog.setNumAcertos(1);
objJog.setNumErros(2);
adicionarJogador( objJog );
}

Na verdade, acredito que o “this.” não é necessário em nenhuma parte deste código!

Se não funcionar avisa aí que a gente dá mais uma verificada! :wink:

[quote=“Adornes”]Olá cyabert!

Tente tirar o “this.” do trecho abaixo!

objJog.setNumAcertos(1);
objJog.setNumErros(2);
this.adicionarJogador( objJog );
}

Ficando assim:

objJog.setNumAcertos(1);
objJog.setNumErros(2);
adicionarJogador( objJog );
}

Na verdade, acredito que o “this.” não é necessário em nenhuma parte deste código!

Se não funcionar avisa aí que a gente dá mais uma verificada! :wink:[/quote]

Olá cyabert, concordo com o Adornes…
Pelo que eu entendi, do q eu sei de Java até agora (estou apenas começando como vc), o this é usado quando queremos referenciar uma instância que ja existe e já que vc não criou nenhuma variável na declaraçao da sua classe, nao vejo pq coloca o this (me corrijam se falei alguma besteira)

Cara o problema tá em você chamar um método NÃO “static” a partir de um método “static”. Você poderia instaciar seu objeto ListaJogadores no método main() e fazer as chamadas dos outros métodos a partir construtor.

Espero ter ajudado

o This, é usado quando vc está fazendo uma referência a um objeto e sua classe específica.

Por exemplo, se vc estiver usando uma classe qualquer e extends JFrame , o this vai ser usado para referenciar todos os métodos relacionados ao JFrame.

Seria assim.
Class exemplo extends JFrame{
exemplo(){
this.setTitle(“Nome da Janela”);
this.setSize(x,y); //tamanho da janela
this.add(JMenu); insere um menu caso vc tenha um;

}
}