Métodos Estáticos

-Olá pessoal, gostaria de saber, quais são as diferenças entre métodos estáticos e não-estáticos (sei que os estáticos podem ser usados sem estanciar o objeto), eles tem diferenças de uso de memória ou performance???

-Pensando em OO, quando devo usar métodos estáticos?

Quem souber responde aí por favor, vai ser de grande ajuda para um projeto que estou fazendo!

Os membros não-estaticos (comuns) pertencem a um objeto, enquanto um estatico pertence à classe, ou seja, não está associado a nenhum objeto especifico, só existe um e ele pertence à classe…

ex.:

public class Usuario{ public String nome; }

nesse caso cada objeto da classe Usuario tem uma atributo nome, ele é particular daquele objeto especifico…

Usuario u1 = new Usuario(); u1.nome = "Jair"; Usuario u2 = new Usuario(); u2.nome = "Elton";

nesse momente existem duas variaveis nome, e cada uma tem seu proprio valor…

public class Usuario{ public static String nome; }

nesse caso o atributo pertence à classe, sejam quantos forem os objetos instanciados dessa classe, haverá apenas uma variavel nome…

Usuario.nome = "Jair"; Usuario.nome = "Elton";

veja que um está substituindo o outro, pois existe uma unica variavel…

no que diz respeito a memoria faz diferença pois como eu disse quando é estatico só existe um na memoria, enquanto se não for estatico existem tantos quantos objetos existirem…

Você usa um membro estatico quando ele não diz respeito a um objeto em particular, e sim à classe… quando você quer compartilhar uma informação com todas as instancias da classe, ou quando tiver um metodo utilitario que você não quer ficar criando instancias para acessa-lo…

Olá Jair, eu perguntei sobre MÉTODOS estáticos e não sobre membros (ou atributos). Essas coisas de atributos estáticos eu já sabia, mas obrigado mesmo assim. Quem souber responde aí!!!

Membros significam tanto métodos quanto atributos.

É isso aí, membro é uma forma de generalizar a coisa, tanto pra metodos quanto pra atributos a resposta é a mesma…