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:
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