style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

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

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

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:

List l = new ArrayList();
System.out.println( l.size() ); // imprime 0
l.add("x");
System.out.println( l.size() ); // imprime 1

Los inmutables no.

String s = new String();
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?

Imagen de Jackhy010288

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:

class Persona {
   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í:

class Persona {
   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.

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">