Dúvida em relação ao static

[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?
:slight_smile:

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 :slight_smile: