Duvida sobr metodo static

Antes que eu alguem me mander procurar nos tutoriais ja adianto que olhei e ainda sobrou uma pequena duvida
tb não precis dizer que to longe de estar engatinhando em java né mas blz

de acordo com o codigo abaixo
oq ocorre é o seguinte
de inicio o contador statico é zero quando ele recebe contador++ atraves do metodo implantado
ele sai de zero para 1 ou seja 0=0+1
até ai tudo bem a duvida quando é criado o segundo objeto ele volta a ser zero por causa do metodo estatico ou seja é como se ele não acumulasse informação!!! é isso mesmo que o metodo static serve??? qual a vantagem disso?no dia a dia do desenvolvedor oq isso ajuda??

contador agora é 1
outroContador agora é 1
contador agora é 2
outroContador agora é 1
contador agora é 3
outroContador agora é 1
contador agora é 4
outroContador agora é 1

// TesteStatic.java
 class Classe1
 {
     // Variavel static
     public static int contador = 0;
 
     // Variavel nao-static
     public int outroContador = 0;
 
     public Classe1() {}
 
     // Precisa ser static porque "contador" é static
     public static void incrementaContador()
     {
         contador++;
 
         System.out.println("contador agora é "+ contador);
     }
 
     public void incrementaOutroContador()
     {
         outroContador++;
 
         System.out.println("outroContador agora é "+ outroContador);
     }
 }
 
 public class TesteStatic
 {
     public static void main(String args[])
     {
         Classe1 c1 = new Classe1();                     
         c1.incrementaContador();
         c1.incrementaOutroContador();
 
         Classe1 c2 = new Classe1();
         c2.incrementaContador();
         c2.incrementaOutroContador();
        
         Classe1 c3 = new Classe1();
         c3.incrementaContador();
         c3.incrementaOutroContador();
 
         Classe1 c4 = new Classe1();
         c4.incrementaContador();
         c4.incrementaOutroContador();
     }
}

Não encontrei nenhum contador no seu código… postou o código todo?
Seu código acima funciona corretamente…

E quanto a [quote]// Construtor, apenas para mostrar que
// ele nem chega ser chamado[/quote]

?

Quando os métodos são static não precisa criar uma nova instância da classe.

Tente postar o código todo ou esclarecer sua dúvida, não consegui entender seu problema.

realmete eu fiz errado na correria aqui postei um codigo que num tinha nada a ver ai mas ja consertei foi mal

bom continuando ai,
o metodo estatico eu não preciso criar um objeto para poder usalo certo??
qual a vantagem de não precisar criar um objeto sendo que se pode crialo??
existe alguma aplicação que eu precise chamar o metodo e não é possivel criar o objeto?

e a variavel static??? parece que num tem nada a ver com metodo static !!!
diz ai
falow

outroContador fica sempre em 1, porque você está criando uma nova instância da classe e como outroContador não é estático ele, a cada instanciação da classe, é reiniciado, o que não ocorre com contador que é estático e mantém seu valor.

Certo, não precisa!

Métodos estáticos são métodos que não operam sobre objetos. O método “pow” da classe “Math” é um exemplo de método estático. A expressão: Math.pow(x,a) eleva x à a. Não usa nenhum objeto de Math.
Usa-se métodos estáticos em duas situações:

  • Quando um método não precisa acessar o estado do objeto porque todos os parâmetros necessários foram fornecidos como parâmetros explícitos (exemplo: Math.pow)
  • Quando um método somente precisa acessar campos estáticos da classe.

(Fonte: Core Java 2)

Não! Entretanto não é nem um pouco recomendável fazê-lo devido a confusão que causa no código, o correto seria chamar métodos estáticos somente com nome da classe e não objetos.