Variables static en Java.

Cuando necesito que una variable definida en una clase, se pueda usar en otra clase conservando su valor, las defino como static ¿Es esto correcto?

Recuerdo cuando me enseñaron a programar en C, que las variables globales era mejor no usarlas, y esto de las variables static creo que es algo parecido.

Saludos.
 
Cuando necesito que una variable definida en una clase, se pueda usar en otra clase conservando su valor, las defino como static ¿Es esto correcto?
Nop. Lo correcto es declararla como public static final. Así se transforma en una constante, y al ser public....cualquier otra clase puede accederla sin alterar su valor. Esto es algo "parecido" al:
Código:
#define PEPE 1234
del lenguaje C, solo que en Java tiene mucha más cáscara:
Código:
public class PP {
     public static final int PEPE =  1234:
     // y acá van otros atributos y métodos
}
Recuerdo cuando me enseñaron a programar en C, que las variables globales era mejor no usarlas, y esto de las variables static creo que es algo parecido.
Esto no es una variable global, sino una CONSTANTE global...pero eso poco importa. Lo que importa es que es CONSTANTE.
Por otra parte, la declaración static significa algo completamente diferente de lo que estás planteando. En Java, el modificacor static solo se aplica a atributos y métodos, y lo que eso significa es ese atributo (o método) no es de instancia sino de clase. Esto es, hay un solo atributo o método (el calificado como static) que es compartido por todas las instancias de la clase, y no uno diferente por cada instancia creada. Se entiende????

Por último, PEPE no es global, por que hay que dar su nombre completamente calificado para poder usarla, y en el mejor de los casos este nombre es: PP.PEPE
 
Atrás
Arriba