Quando usar métodos do tipo Static?

Pessoal, bom dia.

Como hoje é véspera de feriado, acho que minha mente já está em ritimo de carnaval… Heheheh

A minha dúvida é relativa a utilização do método Static. Sei que um método quando é declarado como Static, pode ser chamado diretamente da classe, sem precisar ter que instanciar um objeto. Até aí beleza.

O problema é a declaração de objetos dentro de métodos statics. Por exemplo, suponham que eu tenha um método do t ipo modificarCliente. Este método deverá verificar se o cliente existe. Se existir, ele deverá ser modificado. Caso contrário, deverá ser incluído. Bom, se ele existir, terei que criar uma variável dentro deste método para armazenar o código do cliente, para que assim eu possa modificá-lo. Aí que reside minha dúvida: Se o método é statico, as variáveis que criar dentro dele serão também stático? Pois eu posso ter mais de um usuário utilizando este método ao mesmo tempo, e cada usuário necessitará armazenar um código de cliente diferente.

Esta que é a grande dúvida. Se em métodos staticos eu posso usar variáveis não staticas, ou se isso não é possível.

Agradeço por qualquer ajuda.

Esse artigo é fera…

Dá uma olhada e bons códigos…

When Statics Methods and Code Collide

[]'s

o método é static, mas suas variáveis não… logo, o teu problema não existe, pode usar ele com quantos usuários quiser…, não existe variáveis locais estáticas… o unico modificador q tu pode usar em atributos locais é o final

Diana, valeu pelo artigo. O problema é só o meu inglês que arrasta que é bem fraco. Mais vou deixar no meu bookmark e assim que ele estiver mais aprimorado vou ler este artigo :slight_smile:

E Matheus, valeu pela informação. Agora ficou claro a utilização do método Static :slight_smile:

Pelo que entendi, o único caso que não seria possível utilizar métodos estáticos seria quando o mesmo irá modificar variáveis e objetos pertencentes ao escopo da classe, correto?

bem… se teu atributo não for statico, nao tem problema, porém, o teu método statico nao vai poder acessá-lo… logo, se o atributo é statico, ele é igual pra todos, e não pra cada cliente um valor diferente… finalizando, vc esta certo

Valeu pelas respostas Matheus. Agora eu sei que nas minhas classes Helper e DAO os métodos poderão ser todos staticos. Só as classes DataSource e DTO que terão métodos de instância. :slight_smile: