El modificador STATIC
Una de los posibles usos de el modificador static es compartir el valor de una variable miembro entre objetos de una misma clase. Si declaramos una variable miembro de una clase, todos los objetos que declaremos basandonos en esa clase compartiran el valor de aquellas variables a las que se les haya aplicado el modificador static, y se podrá modificar el valor de este desde todas.
Un caso en el que nos podría ser muy util este modificador, es en una clase que nos diga la cantidad de objetos que se han creado basandose en ella. Podemos meter una linea de codigo en el constructor que incremente la variable contador con el modificador static, y asi cada vez que se declare un objeto el contador se incrementará. Desde cualquier objeto podremos consultar el valor del contador. El codigo sería algo asiclass Clase {
  static int contador;
  Clase() {
   contador++;
  }
  int getContador() {
   return contador;
  }
}
class Codigo {
  public static void main(String[] args) {
   Clase uno = new Clase();
   Clase dos = new Clase();
   Clase tres = new Clase();
   Clase cuatro = new Clase();
   System.out.println("Hemos declarado " + uno.getContador() + " objetos.");
  }
}
Esto tiene varias ventajas, porque además de ahorrarnos algunas posiciones de memoria (porque todos objetos comparten la misma) podemos crear variables compartidas, cosa que abre la puerta a suculentas posibilidades.




22 Comments:
uy buen ejemplo sobre el funcinamiento de la sentencia static...
Me aclararon mucho ese tema.
Para entenderlo mejor pueden ponerlo en una plataforma de desarrollo java para comprenderlo mejor.
By
Anonymous, at 2:41 PM
Muy buen post!! me has quitado un peso de encima.. jejejeje...
seguire leyendo....
Gracias
By
"Chuchin", at 9:43 AM
esta en java inutil!!!
By
Anonymous, at 7:54 AM
Muy claro y muy conciso. GRACIAS:
By
CESARRUK, at 3:34 PM
Excelente ejemplo para los que nos iniciamos...
By
bruno alberto, at 9:41 PM
Enhorabuena, muy buen ejemplo. Didáctico y útil al mismo tiempo.
By
Juan Ángel Gascón Moya, at 6:22 AM
Estimado, entiendo queesta unpoco equivocado en su concepto, el "mofificador" STATIC hace referencia a que no necesita ser instanciado la clase que contiene al metodo o a la variable, es mas para compartir una variable dentro de los mismos metodos solo bastaria dejar a manera global, en este caso no tiene nada que ver el Static, por otro lado al dejar metodos o variables estaticas consumebastante recurso de la maquina, por lo que se recomienda solo utilizar cuando sea estrictamente necesario, generalmente se utilizan en las clases utilitarias que son de alto uso en la aplicacion.
Saludos.
Ele
By
Anonymous, at 5:57 AM
Quisiera saber si se puede usar al tipo static para aplicaciones en javascript para un entorno web. O algo que se le paresca para crear una especie de bandera de control de estado para interactuar entre diferentes funciones.
Muy bueno el post.
By
Dante, at 6:18 PM
No se entiende bien, y ademas el codigo asi como esta no compila. Me confundio mas :(
By
Anonymous, at 3:11 AM
este blog es super poderoso z. ayuda mucho.
By
Oscar OAC, at 8:01 PM
anda asi como esta esto .hay que poner la clase de java el nombre "Fecha" a mi me anduvo
By
max master, at 9:08 AM
Esta bueno...gracias
By
Yasmeth, at 4:33 PM
Sencillamente excelente, muchas gracias.
Saludos.
By
KnxDT, at 10:00 PM
Muy buen artículo; a mi me aclaró el concepto.
By
Anonymous, at 1:09 PM
Gracias! me aclaró bastante
By
KαM!, at 9:45 PM
Buenas, estaba buscando sobre lo que dijo ele sobre no usar static y usar mejor "global", pero navegando en la internet encontre lo siguiente (cabe aclarar que no es spam, yo les pongo los resultados que obtuve al buscar en google):
http://www.devx.com/tips/Tip/13741
http://www.glenmccl.com/tip_002.htm
Talvez ele se refiere a lo de compartir la variable en todos los metodos de una clase, si es asi tiene razon, pero para compartir la variable en un contexto mas amplio (entre objetos) se usa static ya que el modificador global no existe en java, solo en c++
By
Oscar, at 8:41 AM
Para la persona que dijo que una variable static no puede ser instanciada, debo decirle que esta equivocad@, pues de hecho en java el patron de diseño Singleton hace uso de la palabra reservada static.
By
Anonymous, at 4:08 PM
This comment has been removed by the author.
By
Lulu, at 10:03 AM
Totalmente aclarado, gracias!
By
Anonymous, at 2:56 PM
Más claro el agua, chapeau!
By
roy, at 5:17 AM
no entiendo ni papas
By
Anonymous, at 9:59 AM
Solo quería comentarte que tu artículo me ha ayudado con un problema en una aplicación.
Muchas gracias!
PD: este "proyecto" que tienes con el blog lo quise hacer hace tiempo, sin embargo te me adelantaste, exactamente el mismo dominio =P
By
Fran, at 3:15 AM
Post a Comment
<< Home