Java - DIFERNCIAS ENTRE VARIABLES STATIC Y NO-STATIC

   
Vista:

DIFERNCIAS ENTRE VARIABLES STATIC Y NO-STATIC

Publicado por Alvaro Raul (4 intervenciones) el 22/01/2014 15:42:41
Hola amigos! Quisiera sacarme una duda tremenda, a traves de ejemplos claros... Cual es la diferencia entre usar una variable static y otra variable sin la definicion static... Les agradeceria muchisimo su ayuda.
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

DIFERNCIAS ENTRE VARIABLES STATIC Y NO-STATIC

Publicado por reyki (4 intervenciones) el 22/01/2014 19:38:50
por definición, una variable estática significa sera una sola variable para N instancias de la clase que contenga a la variable, y una variable que no tenga el identificador significa que sera una variable por cada instancia de la clase contenedora.

también para accesar a una variable estática no se necesita realizar una instancia de la clase que la contiene.

dicho de otro modo.

******************************************Variable Estática******************************************
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class A{
    public static int ESTATICA=0;
}
 
class B{
    public static void main(String args[ ]){
        //**********imprimiria 0, nO se hiso instancia de la clase A
        System.out.println("El valor de la variable estatica es: " + A.ESTATICA);
        A.ESTATICA=999;
         }
}
 
class C{
    public static void main(String args[ ]){
        //imprimiria 999, 
        //no se hiso instancia de la clase A para utilizar la variable, esto es por que al tener el identificador "static" 
        //solo existe una variable ESTATICA para cuantas clases la utilizen
        System.out.println("El valor de la variable estatica es: " + A.ESTATICA);
         }
}

******************************************Variable sin identificador static******************************************
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class A{
    public int NORMAL=0;
}
 
class B{
    public static void main(String args[ ]){
        A MyA = new A();
        //para utilizar la variable se tuvo que crear la instancia de la clase A, imprimirá 0, luego se incrementa a 999
        System.out.println("El valor de la variable estática es: " + MyA.NORMAL );
        MyA.NORMAL=999;
         }
}
 
class C{
    public static void main(String args[ ]){
        A MyA = new A();
        //para utilizar la variable se tuvo que crear la instancia de la clase A, imprimirá 0, 
        //al crear una nueva instancia de la clase, todos los elementos de la clase son nuevos.
        System.out.println("El valor de la variable estática es: " + MyA.NORMAL );
         }
}

como nota, también una variable estática se puede utilizar a modo instancia, ejemplo:
A MyA = new A();
MyA.ESTATICA=100
pero esto no significa que al crear una instancia de la clase A, la variable ESTATICA sea nueva, puesto que la variable ESTATICA se rige por las reglas que le impuso el identificador "static"

a modo contrario una variable sin este identificador NO se puede ocupar con un acceso directo
A.NORMAL=100
esto es debido a que se al ser una variable normal, es forzoso crear una instancia de la clase para que la variable se pueda utilizar.

espero que te sirva de algo.

saludos !
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

DIFERNCIAS ENTRE VARIABLES STATIC Y NO-STATIC

Publicado por Alvaro Raul (4 intervenciones) el 03/02/2014 21:07:53
Muchas gracias mi amigo! uff, al fin una respuesta satisfactoria y entendible...
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