[b]Pessoal alguem poderia me explicar quando se deve usar o static? Li em vários lugares e até agora não entendi.
E se possível poderiam me explicar por que esse método utiliza o static?[/b]
public static void limpar(Object obj)
{
if(obj instanceof Bola)
{
((Bola)obj).EmitirSom();
}
else
if(obj instanceof Animal)
{
((Animal)obj).EmitirSom();
}
}
Obrigado.
Amigo ja existe um poste falando sobre Static…muito bom por sinal.Certeza que vc ira entender…mais qualquer coisa …
http://www.guj.com.br/articles/121
abzz
Voce sabe o que acontece quando vc usa o static?

A princípio este método está muito mal elaborado, e sem olhar para o restante do sistema, não tem como dizer por que ele é static.
Você usa static numa declaração de variável ou método, quando quer criar um atributo (ou método) de classe, e não do objeto. Uma classe Pessoa, por exemplo, tem um atributo chamado nome. Cada Pessoa tem um nome diferente, por isso o atributo nome não é estático. Agora, se você quer, por exemplo, controlar o número de Pessoas instanciadas no teu sistema, você pode criar um atributo estático chamado quantidadeDePessoas. Este atributo pertence à classe e não a cada pessoa especificamente.
De qualquer maneira, é melhor ler algum livro de Orientação a Objetos ou um livro de Java pra entender bem o conceito (bem como outros conceitos básicos em OO e Java).
Método estáticos são métodos que não precisam de uma instância de um objeto para serem chamados.
Vou dar um exemplo besta.
public class Calculadora
{
public static int somar(int x, int y)
{
return x + y;
}
}
Para chamar o método somar, você faz assim:
int x = Calculadora.somar(10, 20);
EDIT: Caraca, várias respostas dadas ao mesmo tempo 