Hola y bienvenidos a esta elección.
A continuación vamos a revisar el tema de paquetes en Java están listos.
Vamos bien lo primero que vamos a hacer es cerrar este proyecto el derecho Clowes
y vamos a crear un nuevo proyecto damos clic en File un proyecto seleccionamos lleva Wild Mayrén y Java
Application.
Damos clic en Next y el nombre del proyecto se va a llamar ejemplo
paquetes y lo depositamos en la carpeta de cursos diagonal Java
llegamos el mismo grupo Heydi la versión y de momento el nombre del paquete vamos a quitarlo ya que
nosotros lo vamos a crear manualmente así que dejamos los valores tal como se muestra y damos clic en
Finalizar
bien ahora lo que vamos a hacer es crear un nuevo paquete un paquete básicamente es una carpeta o folder
que vamos a crear dentro de nuestro proyecto pero en Java se le conoce como pacato o paquete así que
vamos a crear un nuevo paquete damos clic derecho nio y se puede crear un folder o un Java package.
El resultado va a ser exactamente igual pero en este caso vamos a crear un Java package ya que es la
lección que estamos estudiando así que seleccionamos Java Package y podemos escribir por ejemplo el
siguiente nombre de paquete com punto G M.
Globalmente olí puede ser cualquier nombre de paquete y se acostumbra a que utilicemos el nombre de
un dominio de Internet.
Sin embargo este nombre de dominio no importa si está registrado en internet o no simplemente es para
poder organizar y clasificar nuestros paquetes de nuestras aplicaciones sin embargo si vamos a utilizar
algún nombre de dominio se va a invertir el nombre del dominio.
Por ejemplo en lugar de poner Gógol punto com lo que vamos a hacer es poner com punto Gógol.
Así que se va a invertir el nombre del dominio ya que esas son las prácticas que vamos a ver cuando
utilizamos paquetes en Java así que en este caso ponemos com G.M. globalmente y dejamos los demás valores
por default y realmente lo que va a suceder es que dentro de la carpeta de Source en Java se van a crear
dos carpetas la primer carpeta es la de COM y posteriormente la de G.M así que por cada punto que agreguemos
dentro de nuestro nombre se van a crear diferentes carpetas.
Si únicamente ponemos por ejemplo com entonces únicamente se va a crear esta carpeta y como en este
caso pusimos com punto GBM.
Entonces tenemos dos carpetas com y GBM una dentro de otra damos clic en Finalizar y Podemos se va que
ya tenemos el paquete com G.M y si vamos al tabulador de Fils vamos a ver qué es lo que se ha creado
físicamente vamos a Sors Main Java posteriormente com y aquí podemos observar que se ha creado el folder
de COM y posteriormente el folder de GM.
Incluso podemos observar aquí que es un folder es una carpeta bien vamos a regresar al tabulador de
proyectos y vamos a crear una nueva clase dentro de este paquete.
Los paquetes los vamos a utilizar para organizar nuestras clases así que ahora la clase la vamos a crear
dentro de este paquete así que damos clic derecho seleccionamos Nioh y posteriormente Java class el
nombre de la clase que vamos a crear se llama utilería y ahora si vamos a utilizar el nombre del paquete.
Si quitamos este nombre de paquete podemos observar que nos recomienda que no utilicemos el paquete
por default ya que esta no es una buena práctica así que ahora que ya vamos a conocer el tema de paquetes
podemos mencionarle este error si no indicamos ningún nombre de paquete entonces nuestras clases se
depositan en lo que se conoce como el paquete por default.
Sin embargo IAVA recomienda que no depositemos clases en este paquete y que siempre las organicemos
en paquetes así que ahora sí ya vamos a poder poner nuestro código dentro de un folder dentro de un
paquete así que podemos observar que nuestra clase ahora se va a crear dentro de Source en Java y posteriormente
se va a depositar dentro del folder de com.
Posteriormente G.M y finalmente se deposita nuestra clase utilería apuntó IAVA y el paquete por default
sería si la depositamos a nivel de sours menguaba sobre esta carpeta.
Este se conoce como el paquete por default así que aquí no se recomienda depositar nuestras clases.
Todo lo anterior lo hemos hecho debido a que todavía no conocíamos el tema de paquetes pero ahora que
ya conocemos este tema se recomienda que siempre depositemos nuestras clases dentro de un paquete bien
damos en finalizar
quitamos estos comentarios y podemos observar que lo nuevo que nos ha agregado el IDE en este caso es
la sentencia de.
Así que estamos indicando que esta clase de utilería se encuentra dentro del paquete.
Com punto G.M que es precisamente este nombre de paquete que hemos creado en el Sors Package y de esta
manera ya vamos a empezar a organizar mejor nuestras clases en Java.
No es necesario utilizar varios nombres como en este caso con G.M. podría ser simplemente un nombre
así que cualquier opción que seleccionemos es correcta.
Bien ahora en esta clase utilería vamos a hacer lo siguiente vamos a agregar un método estático Public
Static no va a regresar nada va a ser el tipo Void y se va a llamar el método imprimir va a recibir
una cadena a imprimir y simplemente va a imprimir el valor del argumento que estamos recibiendo.
El valor de la cadena es lo único que va a hacer y ahora vamos a crear otra clase sobre los package
damos el derecho no ya va a clase y vamos a crear una clase de prueba que se llame ejemplo paquetes
prueba de momento aunque ya sabemos que debemos depositar esta clase en un nombre de paquete vamos a
omitirlo para comentar algunos detalles más de los paquetes.
Sin embargo como ya saben se recomienda depositar esta clase dentro de un paquete.
De momento vamos a dejar en blanco este nombre y damos clic en Finalizar
debido a que no se encuentra en un paquete esta clase entonces no tenemos la definición de package como
lo tenemos en la clase de utilería no encontramos esta sentencia indicando que está dentro de un paquete
ya que esta clase está a nivel raíz en lo que se conoce como el default package.
Ahora vamos a hacer lo siguiente Vamos a crear un método main
damos un formato y lo que vamos a hacer es utilizar nuestro método de imprimir que hemos definido en
nuestra clase de utilería.
Para esto podemos hacerlo de varias maneras.
La primera es utilizar el nombre completo de nuestra clase el nombre completo ya no va a ser simplemente
el nombre y ya directamente sino que debemos de anteponer el nombre del paquete así que debemos de poner
un punto GBM y posteriormente punto el nombre de nuestra clase.
En este caso utilería así que esta va a ser la primer forma de poder utilizar una clase que se encuentra
dentro de un paquete así que vamos a poner com punto m punto y podemos ver que el mismo IDE nos está
mostrando qué clases contiene este paquete así que damos enter y nos muestra la clase de utilería así
que ya podemos utilizar esta clase y podemos posteriormente punto y podemos ver que ya podemos acceder
al método imprimir proporcionamos una cadena en este caso la cadena de Hola.
Guardamos cambios y ejecutamos y podemos observar que ya estamos imprimiendo sin ningún problema.
La cadena de Hola así que esta es la primer forma de acceder a una clase que se encuentra dentro de
un paquete utilizando lo que se conoce como el nombre completamente calificado.
Sin embargo esto no es lo más común ya que podemos observar que el código se vuelve difícil de leer
así que vamos a poner entre comentarios esto utilizando el nombre de la clase completamente calificado.
Así es como se conoce o en inglés se conoce como fully fully qualifying Nain.
Bien esta es la primer forma de mandar a llamar una clase de poder utilizarla pero lo más común es que
hagamos un import de la clase que queremos utilizar.
Vamos a hacer el siguiente código así que en este caso vamos a hacer un import de la clase ponemos utilería
punto y el método imprimir y podemos observar que directamente al hacer Enter el IDE lo que hizo fue
hacer el import de esta clase así que utilizando la palabra reservada Import y posteriormente indicar
el nombre del paquete donde se encuentra esta clase escribió de manera automática com punto G.M y posteriormente
punto el nombre de la clase que queremos utilizar esto para que el compilador no nos marque error al
momento de utilizar esta clase y posteriormente podemos proporcionar alguna cadena a imprimir como la
cadena de Hola.
Guardamos cambios y ejecutamos y podemos ver que el resultado es el mismo podemos utilizar sin ningún
problema ya la clase utilería debido a que se agregó el importe de la clase que queremos utilizar.
El importe debe de ir antes de la definición de la clase igual al igual que la definición del paquete.
En dado caso que se utilice también debe de estar fuera de la definición de la clase y debe de ir antes
así que eso es lo primero que vamos a utilizar en nombre del paquete.
Después los importes y posteriormente la definición de la clase.
En ese orden el nombre del paquete si es que existe posteriormente los importes que vamos a utilizar
dentro de esta clase si es que se requieren y posteriormente la definición de la clase.
En este orden
y como en este caso no estamos definiendo un paquete no estamos usando la palabra reservada package
al inicio de esta clase pero sí tenemos importes por lo tanto es lo siguiente que debe de aparecer y
posteriormente tenemos la definición de nuestra clase.
Ahora este importe también lo podemos modificar.
No es la única forma.
Observamos que si lo quitamos nos está marcando un error indicando que no encuentra esta clase Canacine
Simbol y el símbolo es la variable utilería que en este caso es realmente una clase así que para que
encuentre entonces esta clase vamos a hacer lo siguiente ponemos import.
Posteriormente el nombre del paquete com punto G M punto y podemos observar que nos muestra la clase
que queremos utilizar en este caso utilizaría esa es la primera forma en la que ya utilizamos pero también
podemos poner punto asterisco y si ponemos punto asterisco lo que va a hacer es que va a importar todas
las clases del paquete punto com punto GM así que podemos tener más clases dentro de este paquete y
todas las clases que estén definidas dentro de este paquete.
Si ponemos punto asterisco entonces se van a importar y esto va a ser útil debido a que muchas veces
vamos a tener que importar muchas clases de un mismo paquete y para no tener muchas líneas de código
como ésta en la cual se importan las clases de manera individual entonces podemos indicar que se importen
todas las clases de un paquete.
Sin embargo si tenemos paquetes esta sintaxis no va a importar las clases de los paquetes en su paquete
podría ser por ejemplo com G.M. punto contabilidad por poner un ejemplo cualquier su paquete o cualquier
paquete dentro de este paquete se conoce como su paquete.
Sin embargo si ponemos punto asterisco dentro de este paquete este importe no va a incluir a las clases
que estén dentro de los paquetes así que sí requerimos de clases que se encuentran dentro de sus paquetes.
Como hemos comentado por ejemplo con GM punto contabilidad obviamente no lo hemos declarado pero por
poner un ejemplo tendríamos que hacer el import directamente de este paquete para que incluye todas
las clases definidas dentro del paquete con GM contabilidad ya que este importe no va a incluir a las
clases que se encuentran en su paquetes esto lo vamos a ir aclarando poco a poco conforme empecemos
a utilizar librerías de Java.
Pero básicamente es para que podamos empezar a utilizar este tema de paquetes bien y también cabe mencionar
que si utilizamos la notación de punto asterisco no quiere decir que se carguen en memoria todas las
clases que tengamos definidas en este paquete.
Las clases se van a cargar en memoria únicamente hasta que se encuentre una línea de código que utiliza
este nombre de clase.
De lo contrario aunque pongamos punto asterisco no va a cargar en memoria todas las clases sino hasta
que se utilicen dentro de nuestro programa.
Esto quiere decir que es bastante eficiente en este tema.
No va a utilizar recursos de más de nuestro CPU o nuestra computadora debido a que utilicemos punto
asterisco ya que cuando iniciamos este puede ser un error común pensar que si ponemos punto asterisco
se están gastando los recursos de nuestra computadora y esto no es así si ponemos punto asterisco únicamente
quiere decir que va a reconocer los nombres de nuestras clases pero se van a cargar en memoria hasta
que encuentra que se utiliza este nombre de clase.
De lo contrario no se van a cargar en memoria.
Y por último vamos a mencionar que también existen import de funciones estáticas así que en este caso
podemos observar que tenemos una función estática como la función imprimir o también podríamos tener
un atributo estático y esos atributos estáticos también se pueden importar pero utilizando la siguiente
notación.
Vamos a quitar este import.
De momento vamos a tener un error y vamos a hacer lo siguiente Vamos a poner import pero en lugar de
poner directamente el nombre del paquete vamos a indicar que queremos importar un método estático así
que ponemos import Static y posteriormente indicamos el nombre del paquete com punto GBM punto el nombre
de la clase que contiene el método estático y posteriormente el nombre del método estático que queremos
utilizar punto imprimir.
Ahora si agregamos este import nos está poniendo en gris debido a que no está detectando que lo estemos
utilizando dentro de nuestra clase para poder utilizarlo de manera validad ya no necesitamos indicar
el nombre de nuestra clase sino que directamente ya podemos utilizar el nombre del método estático.
Así que con esto ya se limpia mucho más nuestro código.
Vamos a poner entre comentarios la llamada anterior utilería punto imprimir
simplemente para que tengan también esta referencia y aquí vamos a poner haciendo un import de tipo
estática.
Así que este método no se encuentra definido dentro de nuestra clase sino es un método que se está definiendo
dentro de la clase utilería y por ello es que estamos haciendo el import estatico de este método también
podría ser un atributo estático cualquiera de las dos formas funciona exactamente igual.
Ahora lo único que debemos tener cuidado es que este método podría confundir y podríamos pensar que
está definido dentro de esta clase.
Pero para salir de dudas podemos presionar la tecla de control y posteriormente dar clic sobre este
método y podemos observar que se está mostrando que este método imprimir está definido dentro de la
clase con G.M. utilería así que con eso podemos observar que está definido dentro de otra clase y para
ir a la definición de este método de nueva cuenta presionamos control y posteriormente damos clic sobre
este nombre de método y podemos ver que nos lleva a la definición del método imprimir y ya estamos dentro
de la clase utilería así que cualquiera de estas formas funciona exactamente igual pero ya con esto
estamos mostrando varias opciones que tenemos para manejar el concepto de paquetes y el concepto de
import de las clases definidas dentro de paquetes.
Guardamos cambios ejecutamos
y podemos observar que el resultado es exactamente el mismo.
Así que con esto ya hemos visto varios temas del manejo de paquetes.
Vamos a seguir utilizando estos temas en las siguientes lecciones pero con esto ya tenemos las bases
del manejo de paquetes en Java bien eso es todo por esta elección y nos vemos en el siguiente vídeo.
Saludos.