Segui vários tutorias na internet, e finalmente achei um que eu aprendi:
Dúvidas:
1º Para criar uma thread, eu necessáriamente preciso fazer ela implementar “Runnable?”
2º Posso criar uma classe dentro de uma classe?
Vlw gente!
Segui vários tutorias na internet, e finalmente achei um que eu aprendi:
Dúvidas:
1º Para criar uma thread, eu necessáriamente preciso fazer ela implementar “Runnable?”
2º Posso criar uma classe dentro de uma classe?
Vlw gente!
Primeiramente, a classe Thread já implenta Runnable. Para criar uma Thread vc precisa passar um Runnable em seu construtor. Para fazer isto, crie uma classe que implementa Runnable ou que estende Thread (Lembrando que Thread é um Runnable) e passar no construtor da Thread que for criar. Caso sua classe extender Thread, terá que sobreescrever o método run(). Eu não recomendo que estenda Thread pois em java pode-se estender somente 1 classe e implementar várias interfaces. Então implemente Runnable ao inves de estender Thread para aumentar a flexibilidade da classe.
Depois que criar uma instancia de Thread passando o Runnable, quando for iniciar a Thread (atraves do metodo start()) , o método run() da classe thread será executado. Ele verificará se vc passou algum Runnable, caso não tenha passado nenhum Runnable (nos casos em que cria a Thread usando o construtor padrão) ele não fará absolutamente nada. Caso tenha passado, executará o método run() de sua classe Runnable que vc passou no construtor desta Thread. O método é mais ou menos isso:
public void run() {
if (target != null) { //target seria a classe Runnable que vc passou
target.run();
}
}
Pode sim.
Não. A classe ExecutorService também permite que você implemente Callable:
Mas uma das duas classes sempre terá que ser implementada, pois o Java precisa saber onde que a thread começa a executar.
Sim, isso chama-se Inner Class (classe interna):
http://javafree.uol.com.br/artigo/6954/Cap-8-Classes-internas.html
Você pode cria-las dentro de uma classe, de um método. Ela também pode ou não ser estática ou ter um nome.