Uso de \'static\'

ivalentin
14 de Agosto del 2004
Hola a todos:

Una duda existencial sobre el uso de 'static'. Estoy desarrollando una aplicación en la que tengo clases en las que por así decirlo, solo va a existir un objeto de esa clase. Estoy planteandome hacer todas las funciones públicas de esas clases como estáticas ('public static') para no tener que crear objetos con 'new' ... pero, ¿es conveniente?, ¿qué peligros tiene definir todas las funciones públicas de una clase como 'static'?

Gracias

juan_guns8
14 de Agosto del 2004
Hola..................
Al definir todos los elementos dentro de una estructura static deben ser static ellos mismos , o bien, poseer una instancia ya definida para poder ser invocados........
Lo anterior no implica que no puedan ser generadas instancias dentro de un elemento static; no es lo mismo llamar/invocar que crear/generar.
Espero que te haya servido esto nos vemos...............chao

chuidiang
14 de Agosto del 2004
El uso de static ahorra crear el objeto. Suele usarse para metodos de utilidad (por ejemplo, los de convertir enteros a string, para la salida del sistema, etc), de esta forma se ahorra memoria y tiempo de ejecución (no se ejecutan constructores ni se deja basura para el recolector).

Son adecuados para metodos u objetos que se preve se van a usar mucho y que vale con una única instancia (o ninguna) de ellos.

En cuanto a pegas, los métodos y atribuos static se asemejan a funciones y variables globales (en otros lenguajes de programación) y tienen la pega que tienen estas. Si una clase tuya usa un metodo static de otra clase, la primera depende de la segunda. Si abusas de clases con static, una clase tuya puede depender de un montón de clases con métodos static, con lo que luego será más dificil llevarse esa clase a otro programa y reutilizarla. Tendrás que llevate también todas las demás clases con sus métodos static.

Se bueno.