Hola bienvenidos esta elección.
A continuación vamos a estudiar el tema de bloques de código en Java están listos.
Vamos bien vamos a ver nuestro IDE si tenemos algún proyecto abierto vamos a cerrarlo y una vez que
lo hemos cerrado vamos a crear uno nuevo.
Damos clic en File ni proyecto seleccionamos llevá with Mayberry.
Posteriormente Java Application.
Damos clic en Next.
El nombre del proyecto va a llamarse bloques código y lo vamos a depositar en la carpeta de cursos diagonal
Java agrupa y ahí va a ser MX con G.M. de globalmente.
La versión 1.0 y el paquete vamos a dejarlo vacío.
Estamos hoy en finalizar
y ahora vamos a crear una clase llamada persona sobre los packages damos clic derecho nio y seleccionamos
Java clase el nombre de la clase va a ser persona y la depositamos en el paquete de bloques código y
damos clic en Finalizar
quitamos estos comentarios
y vamos a agregar el siguiente código a nuestra clase.
Vamos a agregar un atributo privado llamado Heydi persona así que playback final va a ser el tipo entero
llamado Heydi persona va a ser final debido a que una vez que le hayamos asignado el valor entonces
ya no vamos a poder modificar este valor de persona y por otro lado vamos a definir una variable estática
llamada Contador personas Playboy Static de tipo entero llamada Contador personas ahora la variable
de Heydi persona nos está marcando un error debido a que esta variable se debe de inicializar porque
le hemos marcado como final pero tenemos varias opciones donde podemos inicializar puede ser un constructor
o como lo vamos a ver en esta elección vamos a utilizar un bloque de código para inicializar esta variable
y vamos a ver que también es posible utilizar estos bloques de código en lugar de los constructores
no es tan común utilizar ese tipo de bloques pero podrían llegar a encontrar este código o también se
presentan alguna certificación podrían encontrar preguntas relacionadas con este tema así que vamos
a definir los bloques de código siguientes.
Primero vamos a utilizar un bloque de código estático
y este bloque estático se va a asociar también con la clase.
Cualquier duda pueden revisar el tema de Static
definimos la palabra Static abrimos y cerramos llaves y este va a ser el bloque de código que entre
otras cosas nos permite inicializar también atributos estáticos de nuestra clase así como también mandar
a llamar.
Otros métodos estáticos de nuestra clase pero este bloque de código se va a ejecutar solamente al momento
de cargar esta clase en memoria así que una vez que se carga la clase en memoria ya no vamos a poder
mandar a llamar o ejecutar nuevamente este bloque de código solamente se ejecuta la primera vez.
Cuando se carga la clase en memoria por eso se llama Bloque de inicialización estatico
bien y básicamente para lo que vamos a utilizar este bloque de código es para inicializar nuestra variable
Contador personas ya que es una variable estática así que vamos a utilizar nuestra variable Contador
personas y le vamos a asignar un valor inicial.
En este caso el valor inicial de 10 y en este bloque estático recordemos que no podemos utilizar variables
que no sean estáticas como la variable Dairy persona y si tratamos de utilizarla tratamos de asignar
por ejemplo un valor nos manda el mensaje de que variables no estáticas como la variable Heydi persona
no pueden ser referenciadas desde un contexto estático así que esta variable no se puede utilizar debido
a que no es estática.
Vamos a poner este comentario y también entre comentarios.
Este código
así que no podemos utilizar variables no estáticas
dentro del bloque estatica ahora antes de terminar este bloque vamos a imprimir un mensaje para que
sepamos en qué momento se está ejecutando este bloque
así que vamos a mandar la consola ejecución del bloque estatico.
Ahora vamos a construir un bloque no estático para eso simplemente abrimos llaves y cerramos llaves
este bloque no estático se va a copiar a cada uno de los objetos que creemos.
Es como el constructor de la clase pero se ejecuta antes del constructor de la clase.
Así que esto ya es parte de lo que va a ejecutar el objeto.
Vamos a imprimir a consola ejecución bloque no estático y lo que vamos a hacer en este bloque es aquí
ya podemos utilizar el operador dice y mandar a llamar la variable Heydi persona para asignarle su valor
en lugar de utilizar el constructor de la clase.
En este momento vamos a aprovechar este bloque para inicializar el valor de la variable Heydi persona
así que utilizamos nuestra variable Contador personas
y le asignamos un nuevo valor.
Este código obviamente lo podemos incluir en el constructor de la clase pero la idea es que pongamos
en práctica estos bloques de código para que también conozcan esta sintaxis.
No es tan común como utilizar constructores pero podrían llegar a encontrarse ese tipo de preguntas
en algún examen de certificación o en algún código de algún proyecto que estén trabajando bien como
siguiente paso vamos a crear un constructor de nuestra clase.
Creamos el constructor de persona y mandamos a imprimir
ejecución del constructor para que veamos el orden en que se están ejecutando cada uno de estos bloques
y finalmente agregamos el método GET Eugui persona
para que podamos obtener este valor
y simplemente regresamos el valor de Heydi persona eso es todo el código que va a tener esta clase de
persona.
Ahora vamos a crear otra clase para poner a prueba esta clase de persona son los paquetes de Derecho
seleccionamos Java class
y la clase se llama bloques código y la depositamos en el paquete de test damos clic en Finalizar
quitamos estos comentarios agregamos un método main públiques estatizó y Main tabulador y vamos a crear
un nuevo objeto de tipo persona
queremos la variable de tipo personal llamada PD1 y creamos un nuevo objeto de tipo personal y con eso
se van a ejecutar todos los bloques de código que hemos trabajado.
Importamos esta clase
recuperamos el valor
de Heydi persona del objeto que hemos construido y mandamos a imprimir este valor con ese Addy tabulador
imprimimos el valor de Heydi persona a quien nos está marcando un detalle debido a que el constructor
de la clase no lo marcamos como público debemos de marcarlo como público debido a que estamos en otro
paquete si estuviéramos dentro del mismo paquete podemos omitir públic pero en este caso lo creamos
en otro paquete.
Por lo tanto el constructor debe ser público para que se pueda mandar a llamar desde otro paquete.
Bien con esto ya tenemos todo nuestro código y vamos a ejecutarlo.
Damos clic derecho seleccionamos ROM File
y podemos llevar el siguiente orden de ejecución.
Primero se ejecutó el bloque estático posteriormente el bloque no estático o block inicializar.
Posteriormente se ejecutó el constructor de la clase y finalmente obtuvimos el valor de Heydi persona
podemos observar que primero se inicia la hizó con el valor de 10 en el bloque estático.
Después en el bloque no estático se incrementó y por lo tanto el valor de persona tiene el valor de
11 y se creáramos más objetos.
El valor de Heydi personas se están incrementando por cada uno de los objetos que vayamos creando así
que podemos observar el orden de ejecución pero vamos a ejecutar paso a paso este ejercicio para que
también lo veamos desde Lide así que ponemos un punto de ruptura.
En esta línea damos un derecho de Buffy
y presionamos F7 para entrar al detalle de la construcción de la clase persona y podemos observar que
la primera parada es sobre el constructor de la clase.
Sin embargo si presionamos de nueva cuenta F7 no va a ejecutar la siguiente línea del constructor sino
que lo que va a hacer es empezar a ejecutar los bloques de inicialización así que presionamos F7
entramos a la construcción del objeto salimos de la construcción del objeto de la clase padre.
Presionando este auto
y podemos ver como siguiente paso Se ejecuta el bloque no estático desafortunadamente con la ejecución
paso a paso del IDEP no podemos observar la ejecución del bloque estático ya que este bloque se ejecuta
cuando se carga la clase en memoria y los pasos para levantar una clase en memoria no los podemos visualizar
con la ejecución paso a paso.
Por ello es que se fue directamente al bloque no estático pero si observamos en consola ya se ejecutó
el bloque estático así que este código ya se ejecutó debido a que para crear un objeto de esta clase
ya se debe de cargar en memoria la clase persona y como siguiente paso se ejecuta el bloque inicializar.
Así que en este caso presionamos F8 podemos observar en la salida ejecución del bloque no estático y
ahora se va a asignar el valor ya tenemos el valor de Contador personas igual a 10 pero ahora se va
a incrementar presionamos F8 y ahora la variable Eugui persona ya contiene el valor de 11 y una vez
que ha terminado de ejecutarse este bloque no estático entonces el siguiente paso es terminar de ejecutar
el constructor de nuestra clase presionamos F8 y revisamos en la salida y revisamos en la salida.
Ejecución del constructor en este caso en el constructor ya no hemos asignado ningún otro código ya
no hemos inicializar variables ni estamos ejecutando otro tipo de código.
Esto ya lo hicimos en los bloques de inicialización anterior.
Por lo tanto el constructor ya únicamente estamos mandando a imprimir el mensaje.
Ejecución del constructor bien vamos a continuar presionamos F8 y podemos con esto ya se ha terminado
de crear nuestro objeto persona.
Como hemos comentado desafortunadamente con el IDE y la ejecución paso a paso no podemos observar el
momento en que se carga esta clase en memoria pero para poder quedar primero un objeto entonces se tuvo
que haber cargado primero la clase en memoria se ejecuta el bloque inicializar estático y posteriormente
se ejecuta el bloque no estático.
Finalmente se ejecuta el bloque constructor y con eso se ha terminado de crear nuestro objeto persona
vamos a continuar con ese 8
como siguiente paso obtenemos el Heydi de la persona y finalmente imprimimos el valor así que observamos
en la consola el valor de Heydi persona igual a 11 y con eso termina de ejecutarse en nuestro programa
quitamos el punto de ruptura y con eso hemos terminado bien.
Así que con este ejercicio hemos puesto en práctica el concepto de bloques de código.
Hemos visto cómo utilizarlos para inicializar variables tanto estáticas como estáticas aunque como hemos
comentado esto no es muy común pero es necesario que conozcan ese tema para cuestiones de certificación
o en dado caso de que se encuentren este código en algún otro proyecto todo este ejercicio y nos vemos
en la siguiente elección.
Saludos.