Soy nuevo en la programación orientada a objetos, y un concepto que me ha llevado un tiempo comprender es la inmutabilidad. Creo que la bombilla se apagó anoche, pero quiero verificar:
Cuando me encuentro con declaraciones de que un objeto inmutable no se puede cambiar, estoy confundido porque puedo, por ejemplo, hacer lo siguiente:
NSString *myName = @"Bob";
myName = @"Mike";
Allí, acabo de cambiar miNombre, de tipo NSString inmutable. Mi problema es que la palabra "objeto" puede referirse al objeto físico en la memoria, o la abstracción, "miNombre". La primera definición se aplica al concepto de inmutabilidad.
En cuanto a la variable, una definición más clara (para mí) de inmutabilidad es que el valor de un objeto inmutable solo puede cambiarse cambiando también su ubicación en la memoria, es decir, su referencia (también conocido como su puntero).
¿Esto es correcto o aún estoy perdido en el bosque?