Las variables miembro en Java, son aquellas que conservan su valor en toda la clase, a diferencia de las variables de parámetro por ejemplo, que solo son útiles en el cuerpo del método donde se declaran.
Las variables miembro de la clase, pueden tener tres atributos de acceso: public, protected y private; estos atributos determinan que otras clases pueden ver o utilizar estas variables. A esta cualidad de la programación orientada a objetos se le conoce como encapsulación.
- public: cualquier otra clase que tenga acceso a la clase donde esta declarada, podrá hacer uso de la variable.
- protected: solamente las clases que pertenezcan al mismo package pueden utilizar las variables.
- private: solo la clase donde se declaro la variable tiene acceso a la misma.
Gracias a estos atributos es posible controlar el acceso a las variables, pero estos atributos se aplican al leer el valor o al modificarlo, de tal forma que si una variable miembro se declara como private ninguna clase podrá leer o modificar su valor, lo que limita su uso.
public class ClaseA
{
public int varA;
private int varB;
protected int varC;
}
Para darle mayor flexibilidad a estos atributos se crean los métodos get y set, que permiten leer el valor de la variable o modificarlo, pero de forma independiente se puede restringir o no el uso de estos métodos.
- Los métodos get permiten leer el valor de una variable miembro.
public int getVarA()
{
return (this.varA);
}
- Los métodos set permiten modificar el valor de una variable miembro.
public void setVarA(int varA)
{
this.varA = varA;
}
A estos método se les puede colocar también los atributos de acceso public, protected y private, con lo cual se puede limitar el acceso ya sea a la lectura o la escritura de los valores de las variables miembro.
public class ClaseA
{
public int varA;
private int varB;
public void setVarA(int varA)
{
this.varA = varA;
}
private void setVarB(int varB)
{
this.varB = varB;
}
public int getVarA()
{
return (this.varA);
}
public int getVarB()
{
return (this.varB);
}//aunque la variable varB es privada al crear el método get con el atributo public, se da acceso de lectura a otras clases.
}
class ClaseB extends ClaseA
{
public static void main(String sax[])
{
ClaseB objeto = new ClaseB();
objeto.varA=5; //modifica el valor de la variable varA directamente sin usar el método setVarA(5)
System.out.println("VarA: "+objeto.varA); //imprime el valor de la variable varA sin usar el método getVarA()
objeto.setVarA(10);//modifica el valor de la variable varA utilizando el método, téngase en cuenta que el método es público.
System.out.println("VarA: "+objeto.getVarA());
System.out.println("VarB: "+objeto.getVarB());
//objeto.setVarB(10); no es posible utilizar este método porque es privado
}
}
Nota: el ejemplo anterior muestra el uso de las variables miembro de una clase que están declaradas dentro de la ClaseA y su uso dentro de otra clase, en este caso las ClaseB que hereda de la ClaseA.
Nota: es posible programar varias clases dentro de un mismo archivo de código, pero en este archivo solo puede haber una clase public, que es la que le dará el nombre al archivo, es el ejemplo anterior seria ClaseA.java.
Comentarios