Dúvida em PUBLIC e STATIC

Gostaria de saber porque alguns métodos são declarados como public static sendo que um método publico já é visualizado em toda a classe?

Por exemplo: porque a classe main tem que ser declarada como public static ?

O Uso do modificador static é empregado quando você quer por exemplo que um método seja chamado sem que uma instância da classe onde ele foi definido seja criada …

Por este motivo o método main precisa ser static, pq não criamos uma instância da classe onde ele está definido …

Deu pra entender ?

Sua dúvida deve ser quanto a métodos STATIC, porque public é só isso mesmo, para que ele seja visto de qualquer classe…

Então lá vai:
Entendendo static

Valeu gente, acho que agora ficou claro… :smiley:

Olhando o artigo aqui do guj, pitou mais uma dúvida…

Sempre que instanciamos uma classe, é executado automáticamente o método construtor dela certo?

Tudo bem que no artigo foi declarado a variavel contador como static mas se o contrutor está sendo invocado a cada instancia e ele zera as duas variáveis: contador e outroContador, porque contador preserva seu valor? mesmo ela sendo static o construtor zera ela???

Um construtor é chamada quando uma instância da classe é criada (um novo objeto é criado).
As variáveis estáticas pertencem a classe, ou seja, todos os objetos acessam a mesma variável.
Se algum objeto setar o valor de uma variável estática (seja através de construtor ou não), todos os outros objetos enxergarão esta mudança.
Lembre-se que só existe uma variável estática na memória, e todos os objetos a compartilham.

Valeu gente!

Gostei muito do pessoal deste site…

MÉTODO:
O que acontece é que quando vc cria um método static automaticamente ele ja fica carregado em memória(heap), por isso vc não precisa criar um objeto dele para usa-lo.

VARIAVEL:
A variavel static é como se fosse uma variavel de aplicação tanto usado na web. Todo mundo ve a mesma instacia e que tem o mesmo ponteiro em memória, por isso quando uma pessoa muda a visão é vista por todos.