Miembros estáticos
Las variables de clase o miembros estáticos son aquellos a los que se antepone el modificador static.
Vamos a comprobar que un miembro dato estático guarda el mismo valor en todos los objetos de dicha clase.
Sea una clase denominada Alumno con dos miembros dato, la nota de selectividad, y un miembro estático denominado nota de corte. La nota es un atributo que tiene un valor distinto para cada uno de los alumnos u objetos de la clase Alumno, mientras que la nota de corte es un atributo que tiene el mismo valor para a un conjunto de alumnos. Se define también en dicha clase una función miembro que determine si está (true) o no (false) admitido.
public class Alumno {
double nota;
static double notaCorte=6.0;
public Alumno(double nota) {
this.nota=nota;
}
boolean estaAdmitido(){
return (nota>=notaCorte);
}
}
Creamos ahora un array de cuatro alumnos y asignamos a cada uno de ellos una nota.
Alumno[] alumnos={new Alumno(5.5), new Alumno(6.3), new Alumno(7.2), new Alumno(5.0)};
Contamos el número de alumnos que están admitidos
int numAdmitidos=0;
for(int i=0; i<alumnos.length; i++){
if (alumnos[i].estaAdmitido()){
numAdmitidos++;
}
}
System.out.println("admitidos "+numAdmitidos);
Accedemos al miembro dato notaCorte desde un objeto de la clase Alumno, para cambiarla a 7.0
alumnos[1].notaCorte=7.0;
Comprobamos que todos los objetos de la clase Alumno tienen dicho miembro dato estático notaCorte
cambiado a 7.0
for(int i=0; i<alumnos.length; i++){
System.out.println("nota de corte "+alumnos[i].notaCorte);
}
El miembro dato notaCorte tiene el modificador static y por tanto está ligado a la clase más que a cada uno de los objetos de dicha clase. Se puede acceder a dicho miembro con la siguiente sintaxis:
Nombre_de_la_clase.miembro_estático
Si ponemos
Alumno.notaCorte=6.5;
for(int i=0; i<alumnos.length; i++){
System.out.println("nota de corte "+alumnos[i].notaCorte);
}
Veremos que todos los objetos de la clase Alumno habrán cambiado el valor del miembro dato estático
notaCorte a 6.5.
Un miembro dato estático de una clase se puede acceder desde un objeto de la clase, o mejor, desde la clase misma.
0 comentarios:
Publicar un comentario
Gracias por comentar ;-)