MUTABLES E INMUTABLES
HOLA QUISIERA QE ALGUIEN ME EXPLICARA LO DE MUTABLES E INMUTABLES EN JAVA POR FAVOR ESTOI COMENZANDO A INTRODUCIRME EN ESTE LENGUAJE Y PS KISIERA APOYO GRACIAS
- Inicie sesión o regístrese para enviar comentarios
HOLA QUISIERA QE ALGUIEN ME EXPLICARA LO DE MUTABLES E INMUTABLES EN JAVA POR FAVOR ESTOI COMENZANDO A INTRODUCIRME EN ESTE LENGUAJE Y PS KISIERA APOYO GRACIAS
Los mutables ( si te refieres
Los mutables ( si te refieres a las clases ) pueden cambiar su estado.
Un ejemplo de una clase mutable es un ArrayList:
System.out.println( l.size() ); // imprime 0
l.add("x");
System.out.println( l.size() ); // imprime 1
Los inmutables no.
System.out.println( s.length() ) ; // imprime 0
String t = s;
t+= "Hola"; //"intenta cambiarla"
System.out.println( t.lenght() ); // imprime 4
System.out.println( s.length() );// sigue imprimiendo 0, no ha mutado
Antes de seguir echando más rollo sobre esto, primero dinos si a esto es a lo que te refieres o nada que ver? En que contexto supiste sobre las clases mutables e inmutables?
BUENO LO QE ESTABA LEYENDO
BUENO LO QE ESTABA LEYENDO DICE ESTO
. Los objetos de un tipo mutable pueden ser alterados, es decir,
facilitan operaciones que, cuando son ejecutadas, hacen que los resultados de otras
operaciones sobre el mismo objeto provoquen resultados diferentes. Por tanto, Vector
es mutable porque usted puede llamar a addElement y observar la alteración con la
operación size, que provocará un resultado distinto en cada ejecución de addElement
ASI DICE LA INFORMACION PERO LA VDD NO LE ENTIENDO
Ahh pues justamente eso. Un
Ahh pues justamente eso.
Un objeto tiene atributos, correcto? Cuando esos atributos cambian se dice que la clase es mutable.
Un ejemplo más sencillo es el siguiente:
private String name;
private int edad;
Persona( Stirng name, int edad ) {
this.name = name;
this.edad = edad;
}
public void cumpleAños() {
edad++;
}
public String toString() {
return name + ", edad: " + edad;
}
}
Ahi tenemos una clase, que tiene dos atributos, nombre y edad y un método que se llama "cumpleAños".
Cada vez que invocamos ese método, el estado del objeto cambia o muta, es decir, el objeto es mutable:
public static void main( String ... args ) {
Persona p = new Persona("Oscar", 0x20 );
System.out.println( p );
p.cumpleAños();
System.out.println( p );
}
...
Cambió la edad.
Cuando no existen métodos que muten el estado de los atributos ( o sea que los cambien ) la clase es inmutable, un ejemplo sería la misma clase definida así:
private String name;
private int edad;
Persona( Stirng name, int edad ) {
this.name = name;
this.edad = edad;
}
public void cumpleAños() {
// ajá si, gracias, gracias,
}
public String toString() {
return name + ", edad: " + edad;
}
}
Al volver a ejecutar esta versión cambiada, verás que la edad no cambia.
A esto se refiere lo que leiste ( bastante viejo por cierto ). La clase Vector, es una clase mutable, porque sus atributos internos se pueden modificar.
Eso es todo.