Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: Zepovop en Enero 03, 2017, 04:43:43 PM

Título: [SOLUCIONADO] Java - Instanciar Objeto como Constante
Publicado por: Zepovop en Enero 03, 2017, 04:43:43 PM
Buenas, siguiendo un curso de fundamentos de programación, me he enterado que los objetos también pueden ser declaradas como constantes, por lo que he decidido hacer una prueba en Java, que es el lenguaje de programación que mejor controlo. Sin embargo, al hacer la prueba no encuentro ninguna diferencia entre declarar un objeto como constante o como variable. Aquí les dejo el código:

(http://i.imgur.com/pKyoGjL.png)
Título: Re:Java - Instanciar Objeto como Constante
Publicado por: rollth en Enero 03, 2017, 05:02:14 PM
Buenas.

final en el caso de los objetos no hace que no se lo pueden cambiar los valores, si no que lo que no te permitirá es cambiar el valor de referencia, es decir no te dejará apuntar a otro punto de la memoria, como si fuera un puntero en c.

Prueba en tu código al final, después de imprimir a igualar el segundo objeto al primero y lo imprimes de nuevo. No se si me he explicado bien, pero espero que te sirva.

Saludos
Título: Re:[SOLUCIONADO] Java - Instanciar Objeto como Constante
Publicado por: Hu3c0 en Enero 03, 2017, 07:55:56 PM
Lo que te está diciendo el compadre rollth es que al declararlo como final ese objeto.
Ya no puedes crear un nuevo identificativo que haga referencia a ese  espacio de
memoria.

Te lo voy a explicar  en php
//Creamos un objeto

$p=new  NombreObjeto()

//Ahora voy a crear un nuevo identificador para ese Objeto $p
$a= $p
//Si yo ahora trabajo el Objeto $a modificaré  los atributos en el
espacio de memoria de $p

En tu caso al declarar final el Objeto2 ya no puedes crear nin-
gún identificativo o copia como quieras  llamarlo con la cual
podrías modificar los atributos, propiedades en el espacio de
memoria que ocupa el Objeto2.



PD: lo explicado en php es para versiones PHP5 ya que en la
versión PHP4 $a=$p era como crear un __clone de $a en otro
espacio de memoria.

Gracias por read me;