Java - Metodos y variables estaticas(static) ?

 
Vista:

Metodos y variables estaticas(static) ?

Publicado por Marcelo (10 intervenciones) el 21/03/2007 01:41:03
Espero tengan la paciencia de explicarme

tengo entendido que tanto los metodos y los miembros estaticos se asocian a la clase y no a un instancia(objeto) aunque por lo que entiendo los miembros estaticos tambien se puden instanciar haciendo referencia a un objeto de la clase.
"no hay una copia del dato para cada objeto sino una sola copia que es compartida por todos los objetos de la clase."

Que diablos significa esto ?
Alguien me puede explicar con manzanitas porfavor con un jemplo practico

saludos
y muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Metodos y variables estaticas(static) ?

Publicado por Gonzalo (180 intervenciones) el 21/03/2007 09:34:28
No sé qué quieres decir con "los miembros (...) se pueden instanciar", pero supongo que a lo que te refieres es a que se puede acceder a ellos.

Es decir que lo que preguntas es esto. Si tenemos:
class UnaClase {
····public static int propiedadEstatica = 1;
}

que puedes acceder a propiedadEstatica haciendo:
UnaClase.propiedadEstatica
pero que también si ya tienes un objeto de esa clase:
UnaClase unObjeto = new UnaClase();
puedes acceder a propiedadEstatica haciendo:
unObjeto.propiedadEstatica

Si es eso a lo que te refieres... pues sí, se puede y efectivamente ocurre lo que dices, que unObjeto.propiedadEstatica realmente es una referencia a UnaClase.propiedadEstatica. Es decir, que no se crea una copia de propiedadEstatica para cada objeto que instancias.

A ver si lo explico mejor. Vamos a usar esta clase:
class UnaClase {
····public static int propiedadEstatica = 1;
····public int propiedad = 2;
}

Cuando instanciamos un par de objetos de esta clase:
UnaClase unObjeto = new UnaClase();
UnaClase otroObjeto = new UnaClase();
lo que ocurre es que para cada uno de ellos se crea una variable "propiedad". unObjeto.propiedad no tiene nada que ver con otroObjeto.propiedad. "propiedad" es de cada objeto.
Ahora bien, no se crea ninguna "propiedadEstatica" para cada objeto, sino que sólo existe 1, compartida por todos los objetos de tipo UnaClase. Es decir, que...
UnaClase.propiedadEstatica, unObjeto.propiedadEstatica y otroObjeto.propiedadEstatica todos hacen referencia a una misma cosa.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar