-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…