Olá pessoal,
Sou iniciante em Java e tenho algumas dúvidas. Para praticar um pouco aqui o uso de Threads eu tentei criar uma simulação pequena de arena de luta onde os threads vão rodando e exibindo mensagens de acordo com a condição dos “lutadores”. Sei que parece tosco mas não consigo pensar em exemplo melhor no momento.
O que acontece é que eu não sei como posso passar os objetos por argumento para serem tratados no Thread, não sei nem se isso é possível. Vou tentar ilustrar aqui o máximo que puder… Se ficar ruim por aqui eu posto no pastebin, sei lá.
[code]public class TesteMain {
public static void main(String[] args) {
…
…
…
//Criações de objetos e setters
…
…
…
Lutador lutador = new Lutador();
lutador.setAtaque(atk1);
lutador.setDefesa(2);
lutador.setHp(10);
lutador.setNome("Bruce");
...
...
...
//Mais criações de objetos e setters
...
...
...
ThreadLuta threadLuta = new ThreadLuta();
Thread tLuta = new Thread(threadLuta);
tLuta.start();
}[/code]
Aqui eu crio a classe do Thread, e tento acessar o lutador que está no main, e obviamente não funciona já que é outra classe e não tem nenhum objeto criado na classe do Thread e nada passando por argumento.
Mas não posso passar o objeto lutador por argumento pelo “run()” porque o run é do Runnable, não funciona. Se eu passar o objeto lutador em outra parte (método) da classe vai ficar limitado àquele escopo apenas e não vai pegar no run.
[code]public class ThreadLuta implements Runnable{
@Override
public void run() {
// TODO Auto-generated method stub
if(lutador.getHp>0){
System.out.println("Luta");
}
}
}[/code]
Não sei se estão entendendo o que quero fazer, mas gostaria de saber se há alguma forma de manipular os objetos criados na classe main em um Thread.
Agradeço muito pela atenção e pela ajuda. Que Deus os abençoe, abraço!