Foros del Web » Programación para mayores de 30 ;) » Java »

problema mutabilidad

Estas en el tema de problema mutabilidad en el foro de Java en Foros del Web. Problema de certificación en java: teniendo en cuenta que los arrays de java son mutables, cómo protegerías la clase CuentasPrivilegiadas? Cuenta.java package banco; public class ...
  #1 (permalink)  
Antiguo 18/12/2012, 12:43
 
Fecha de Ingreso: diciembre-2012
Mensajes: 2
Antigüedad: 11 años, 4 meses
Puntos: 0
problema mutabilidad

Problema de certificación en java: teniendo en cuenta que los arrays de java son mutables, cómo protegerías la clase CuentasPrivilegiadas?

Cuenta.java
package banco;
public class Cuenta {
private long numero;
public Cuenta(long numero, String password){
this.numero = numero;
}
public Cuenta(Cuenta origen) {
this.numero = origen.numero;
}
public long getNumero () {
return numero;
Professional Security Auditor
Actividad Búsqueda de vulnerabilidades en
el código
}
public void setNumero(long numero,String password){
this.numero = numero;
}
public boolean bloqueada() {
return numero % 2 == 0;
}
public String toString() {
return numero + "-" + bloqueada();
}
}
CuentasPrivilegiadas.java
package banco;
public class CuentasPrivilegiadas {
private Cuenta[] cuentas;
public CuentasPrivilegiadas() {
cuentas = new Cuenta[2];
cuentas[0] = new Cuenta(33631,"password");
cuentas[1] = new Cuenta(6293,"otherpassword");
}
public Cuenta[] getCuentasPrivilegiadas() {
return cuentas;
}
public void show() {
System.out.println("Cuentas privilegiadas:");
for (int index=0;index<cuentas.length;index++)
System.out.println(cuentas[index]);
}
}
  #2 (permalink)  
Antiguo 18/12/2012, 13:50
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: problema mutabilidad

El array no sería público, tiene que ser private.

No le haces el getter y obligas a que lo que se añada se haga a través de un método, en él podrías poner las condiciones para protegerlo y hacer el método de acceso synchronized.

Si quieres es que no se pueda modificar, con hacerlo private y eliminar el get llega.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.

Etiquetas: clase, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:27.