Bienvenidos a esta elección.
A continuación vamos a revisar el tema de la creación de objetos en Java.
Están listos.
Vamos bien vamos a seguir utilizando nuestro proyecto de creación clases objetos y aunque podríamos
agregar un método main dentro de esta clase no recomendable y lo que vamos a ver más comúnmente es que
se cree otra clase para poner a prueba esta plantilla que hemos creado esta clase que hemos creado.
Así que sobre Defour package vamos a dar clic derecho y vamos a crear una nueva clase y esta clase se
va a llamar prueba personas va a ser el mismo nombre del proyecto la ubicación va a ser en Sors package
el nombre del paquete vamos a dejarlo en blanco y podemos observar la ruta completa donde está depositando
esta clase y damos fuguen finalizar.
Vamos a quitar estos comentarios con control e íbamos a agregar un método main a esta clase así que
escribimos públic Static void main y presionamos la tecla de tabulador.
Si por alguna razón no funcionara este Charcot entonces hay que escribir este código
damos un formato y el código que se debe escribir es públic espacio Static espacio bait espacio Main.
Posteriormente definimos el argumento que vamos a recibir que debe de ser un arreglo de tipo cadena.
Posteriormente vamos a ver el tema de arreglos pero esta es la sintaxis para definir una variable de
tipo arreglo string.
Posteriormente abrimos y cerramos corchetes y el nombre de nuestro argumento o parámetro que estamos
recibiendo en este método se llama Arcs pero este es cualquier nombre podría ser cualquier otro.
Posteriormente abrimos y cerramos nuestras llaves y este es el cuerpo del método main y básicamente
este método main lo necesitamos para ejecutar nuestra clase.
Obviamente ya lo hemos venido trabajando bastante pero poco a poco vamos a ir definiendo más características
de este método para que les vaya quedando más claro conforme avancemos en la explicación de cada uno
de estos elementos bien así que lo que vamos a hacer ahora dentro de este método main es utilizar la
plantilla que hemos definido la clase de persona ahora para poder utilizar esta plantilla.
Necesitamos crear objetos según lo hemos comentado hasta este momento y para crear un nuevo objeto de
nuestra plantilla vamos a hacer lo siguiente ponemos entre comentarios creación de un objeto de tipo
Persona son varios pasos los que se deben de realizar en primer lugar vamos a declarar nuestra variable
de tipo personal ya que la clase que hemos creado es un nuevo tipo como utilizáramos int Nobol o tipo
String.
La clase persona es un nuevo tipo que podemos utilizar así que ponemos persona y definimos el nombre
de nuestra variable hasta este momento únicamente hemos indicado el tipo de nuestra variable y posteriormente
definimos el nombre de la variable por ejemplo persona 1 punto y coma así que hasta este momento únicamente
se ha definido la variable de tipo persona ahora para asignarle un valor a esta variable entonces necesitamos
instancias de nuestra clase persona instancias significa lo mismo que crear un objeto así que vamos
a ver el siguiente código distanciando entre paréntesis creando un objeto de la clase persona así que
para instancias un objeto de nuestra clase persona vamos a utilizar la sintaxis Nioh y posteriormente
definimos el tipo que queremos instancias.
En este caso queremos crear un objeto de la clase persona abrimos y cerramos paréntesis punto y coma
así que esta línea de código va a crear un objeto de nuestra clase persona pero necesitamos asignarlo
a nuestra variable persona 1.
De lo contrario no vamos a poder acceder a este objeto así que esta línea lo que va a hacer es lo siguiente
de nuestra plantilla persona que este es el nombre de la clase la palabra lo que va a ser es que va
a crear un nuevo objeto de tipo Persona pero necesitamos ahora que nuestra variable persona 1
apunte al objeto que se acaba de crear y para que pueda acceder al objeto que se acaba de crear.
Entonces hacemos lo siguiente la variable persona 1 que hemos declarado debe de recibir el valor donde
se ha creado este objeto así que del lado derecho lo que estamos haciendo es creando un objeto y el
valor donde se ha creado este objeto entonces se le proporciona a la persona 1 para que podamos acceder
a este objeto que se ha creado y es que entonces a través de la variable Persona 1 vamos a poder acceder
al objeto persona que se ha creado.
Vamos a hacer esto
accedemos al objeto persona y llamamos al método
desplegar nombre quien si este método aquí me equivoqué deberá de ser desplegar nombres ya que despliega
los nombres de los atributos de nuestra clase así que cambiamos este valor debe de ser desplegar nombres
así que llamamos al método desplegar nombres y para ello vamos a utilizar nuestra variable Persona 1
y observamos que si ponemos punto podemos acceder tanto a los atributos que hemos definido en nuestra
clase los atributos de apellido y nombre pero también podemos acceder al método desplegar nombres.
Así que si damos enter Podemos se va en automático el IDE nos complementa.
Desplegar nombres pone los paréntesis para indicar si se le tiene que enviar información al método desplegar
nombres pero en este caso no requiere de ninguna información.
Este método ya que simplemente va a desplegar la información de los atributos que tengamos en esta clase
así que guardamos cambios y ejecutamos
y podemos ver que en este momento ya podemos ejecutar nuestra clase se manda llamar el método desplegar
nombres y lo que observamos es la impresión de los atributos de nuestra clase puesto que ese es el código
que agregamos dentro de nuestra clase mandamos en primera consola los valores de nombre y apellido y
podemos observar que nombre contiene el valor de Nul la palabra reservada Null significa que un objeto
en Java no contiene ningún valor no se ha definido un valor aún así que Null significa ausencia de valor
así que por ello tanto el nombre como el apellido tienen el valor de Null ya que podemos observar que
en ningún momento hemos asignado un valor.
Por lo tanto cuando se mandan a imprimir estos valores entonces su valor es ausencia de valor o Null
pero con esto ya podemos acceder al objeto que se ha creado.
En esta línea a través de la variable Persona 1 así que en resumen la variable persona 1 no es un objeto
sino es una variable y esta variable apunta al objeto que se ha creado pero ahora lo que queremos hacer
es modificar los valores para que no se despliegue el valor de Null o ausencia de valor sino que muestre
algún valor.
Así que para ello vamos a hacer lo siguiente modificamos
los valores de los atributos del objeto persona para poder acceder a los valores y modificarlos.
Vamos a hacer lo siguiente persona 1 punto y podemos observar que podemos acceder directamente a los
atributos de nuestra clase.
Esto vamos a ver más adelante que no es una buena práctica pero debido a que estamos iniciando con IAVA
vamos a utilizar de momento esta sintaxis y posteriormente vamos a ver el tema de encapsulamiento para
que podamos utilizar las mejores prácticas en IAVA así que de momento accedemos al atributo de nuestra
clase llamado nombre y vamos a asignarle un nuevo valor por ejemplo el valor de Juan y podemos observar
que nuestro atributo nombre es de tipo String.
Por lo tanto cuando estamos accediendo a este atributo le tenemos que asignar un valor de tipo string
y ahora vamos a modificar también el valor de apellido utilizando nuestra variable Persona 1 punto accedemos
al apellido
y le asignamos el valor de Pérez.
Ahora vamos a volver a imprimir los valores
mandamos a llamar de nueva cuenta el método desplegar nombres antes de mandar a imprimir vamos a imprimir
un salto de línea así que mandamos a llamar el método LNA para que no se agregue un salto de línea
y podemos observar en la primera prueba los valores fueron nulos pero en esta segunda prueba estamos
accediendo a los valores de Juan en el nombre y apellido Pérez.
Así que con esto ya estamos modificando correctamente los valores de los atributos de nuestra clase.
Ahora hasta este momento lo que hemos hecho es lo siguiente Por un lado se creó la clase persona que
es este archivo
con los dos atributos y con un método desplegar nombres por otro lado lo que hicimos fue crear un nuevo
objeto de tipo persona y por otro lado creamos una variable llamada persona 1 de tipo persona
y esta variable persona 1 apunta al objeto que se ha creado de la clase persona y lo que hizo esta variable
Persona 1 de tipo Persona es que accedió a los atributos de nuestro objeto y los modificó.
Por ello es que cuando se mandó a llamar el método desplegar nombres lo que imprime son los atributos
del objeto y no los valores de la clase.
Básicamente lo que estamos haciendo aquí es que la plantilla de persona crea un objeto a su semejanza
es decir con los atributos y métodos que hemos definido en nuestra plantilla pero los valores no se
están modificando en nuestra clase.
Aquí únicamente tenemos la plantilla sino que los valores se están modificando en el objeto que se ha
creado y se creamos más objetos entonces
cada uno de los objetos tiene acceso a sus propios atributos así que los valores no porque modifiquemos
los valores del objeto que se ha creado en este momento cada uno de los objetos va a tener sus propios
valores así que vamos a escribir el siguiente código para comprobar esto vamos a crear un segundo objeto
creamos un segundo objeto de tipo personal.
Para ello podemos utilizar la misma variable que ya hemos definido o podemos definir una nueva variable
en este caso para hacerlo más sencillo vamos a definir una nueva variable llamada personados y a diferencia
de como lo hicimos en las primeras líneas podemos crear en la misma línea tanto la variable y asignarle
la referencia del nuevo objeto creado así que creamos un nuevo objeto de tipo persona utilizando la
palabra NIU y posteriormente abrimos y cerramos paréntesis.
Esta es la sintaxis para crear nuestro nuevo objeto y el objeto que se está creando.
Asignamos su referencia a la variable personados así que a través de la variable personados es que vamos
a poder acceder al objeto que se está creando en este momento cada que veamos la palabra New es porque
se está creando un nuevo objeto en memoria así que en este momento se crea un nuevo objeto en memoria
y se asigna una referencia en memoria para este objeto.
Así que esta referencia del objeto que se está creando se asigna a la variable persona.
Por ello es que a través de la variable Persona 1 es que pudimos acceder al objeto que se creó.
En esta línea y de igual manera en este momento estamos creando un nuevo objeto se le asigna un valor
en memoria a este objeto que se conoce como referencia y esa referencia se le asigna a la variable Persona
2 para que podamos acceder al objeto que se está creando en este momento.
Así que a través de la variable personados ahora es que vamos a acceder al nombre vamos a asignarle
el valor
de Carla y el apellido le asignamos el valor de Gómez y a través de la variable Persona 2 mandamos a
llamar el método desplegar nombres pero antes de desplegar los nombres vamos a ser lo siguiente imprimimos
también un salto de línea para que no se junte la impresión de estos valores.
Guardamos cambios y ejecutamos y podemos observar en esta prueba lo que estamos observando son los valores
nulos del primer objeto.
Posteriormente se modificaron los valores a Juan Pérez y hemos creado un segundo objeto.
En este segundo objeto tenemos los valores de Karla Gómez así que no se combinaron los valores de Juan
Pérez sino que cada uno de los objetos ahora contiene sus valores.
El primer objeto que se ha creado el cual está referenciado por la variable Persona 1 accede a estos
valores.
Juan Pérez y el segundo objeto que se creó apuntado por la variable Persona 2 contiene los valores de
Karla Gómez.
Así que cada uno de los objetos que se crea tiene sus propios valores.
En resumen lo que hemos hecho es lo siguiente tenemos nuestra clase persona tenemos los atributos y
los métodos y cada vez que utilizamos la palabra Niu es que se crea un objeto así que creamos dos objetos
ya que tenemos en nuestro código dos veces la palabra reservada nio y posteriormente creamos dos variables
para poder acceder a estas referencias de los objetos que se han creado.
Creamos la variable de persona 1 y apunta al objeto que se creó en la primera línea.
La primera vez que se mandó a llamar nio y la persona 2
Accede al segundo objeto que se creó.
En esta línea de código cuando se mandó llamar esteño y cada uno de estos objetos contiene sus valores.
En este caso el primer objeto tiene los valores de Juan Pérez y el segundo objeto tiene los valores
de Karla Gómez y podemos observar que la plantilla no se altera.
Esta contiene la base o la estructura para crear estos objetos pero la plantilla no se modifica lo que
se modifica son los valores de los objetos que hemos creado.
Ahora finalmente un detalle es que estos objetos se depositan en algún lugar de la memoria.
Por ejemplo si ponemos algún valor hexadecimal podríamos decir que es la dirección de memoria 0 x 3
3 3 y este es el valor de memoria donde se encuentra este objeto.
A esta dirección de memoria se le conoce como referencia del objeto y realmente lo que almacena la variable
Persona 1 es el valor de la referencia de la memoria del objeto.
Por ejemplo en este caso el valor de 0 x 3 3 3.
Así que de esta manera es que la variable Persona 1 es que realmente apunta al objeto que se ha creado
en esta dirección de memoria y cada vez que utilizamos la palabra reservada Anneo es que se crea un
objeto y se le asigna una referencia en memoria dinámicamente.
Esto lo hace en automático el compilador de Java.
La máquina virtual de Java y la segunda vez que se mandó llamar la palabra reserva Danio se creó este
segundo objeto y se depositó por ejemplo en la referencia de memoria 0 4 4 4.
Esto es por poner un ejemplo es el nombre de la referencia en memoria y este valor es que realmente
se le asignó a la variable Persona 2
por ello es que esta variable Persona 2 puede acceder al objeto que se creó en esta memoria.
De esta manera es que las variables realmente almacenan la dirección de memoria de los objetos.
Esta característica en otros lenguajes se le conoce como apuntadores ya que podemos observar que la
variable Persona 1 realmente está apuntando a la referencia de memoria del objeto.
Por ello es que almacena este valor de la referencia de memoria y cada vez que creamos un objeto se
le asigna una referencia en memoria y son las variables las que almacenan estas referencias.
Por lo tanto estas variables apuntan al objeto bien poco a poco vamos a ir viendo a más detalle cada
uno de estos elementos pero con esto ya tenemos las bases de tanto la creación de una clase en Java
y la creación de objetos a su vez también modificamos cada uno de los valores de nuestros objetos y
podemos acceder a la modificación de los valores de estos atributos de cada objeto bien eso es todo
por esta elección y nos vemos en el siguiente vídeo.
Saludos.