Bien, continuamos con los paquetes en yaba o los paquetes.
Bien, pero qué es lo que son?
De qué se trata?
Son una especie de contenedor que nos permiten organizar y agrupar nuestras clases, ya sea por alguna
característica o bien por algún tipo o jerarquía de clases, o en realidad poco.
Qué función que le queramos dar simplemente para categorizar, para ordenar nuestra estructura, proyecto,
nuestras clases.
Exactamente lo mismo que un directorio de nuestro sistema operativo.
Es lo mismo para guardar archivos, documentos, imágenes, pdf.
La idea organizar.
No podemos tener todos los archivos de nuestro sistema, todo junto dentro de un solo directorio.
Sería muy difícil, por ejemplo, encontrar algún documento, alguna imagen.
En fin, lo mismo pasa acá.
Bueno, carácterísticas, bueno, la primera justamente es lo que comentamos agrupar y organizar en
un proyecto en Java podríamos tener decenas y centenares de clases, muchas.
Por lo tanto, tenemos que organizar nuestra clases de la mejor forma posible, dar alguna estructura
de nuestro proyecto y categorizar nuestras clases.
Otra característica bueno, igual que los directorios evitan conflictos de nombre.
Podríamos tener el mismo nombre de clases en diferentes paquetes.
Por lo tanto, al estar ubicadas en diferentes lugares, no van a existir conflictos de nombre igual
que los archivos.
Podríamos tener archivo con el mismo nombre, pero están en diferentes carpetas.
No se van a reemplazar acá es lo mismo.
Otra característica, según su modificadores, pueden ocultar el acceso a sus clases y también a los
atributos y métodos de estas clases, dependiendo del tipo modificar eso.
Después vamos a ver un ejemplo, pero existe el modificador default que ya lo hemos visto cuando no
se define ningún modificaré de acceso por defecto es de РАМКАХ.
Por lo tanto solamente se pueden utilizar esos miembros, ya sean métodos o atributos dentro сбербанк.
Y lo mismo si la clase no es pública.
Si 1Ti fold solamente se puede acceder en ese package y no en otros.
Pero después vamos a ver.
Bien, veamos el estándar de nombres en paquetes.
Bueno, lo primero que debe estar escrita completamente en minúscula 100 por ciento no puede haber mayúscula.
Bueno, en realidad sí pueden, pero el estándar la convención de nombre es en minúscula y cada su paquete
se separa con puntos.
Bueno, no es que tenga que ser así, pero es un estándar que se utiliza mucho en las empresas como
nombre de РАМКАХ.
Entonces se utiliza, por ejemplo, el nombre de dominio de la empresa, pero comenzando primero con
la extensión.
Por ejemplo, com or ese céle se fijan mx la extensión del dominio punto el nombre del dominio.
Es decir, es como dar vuelta el dominio web.
Veamos ejemplos en vez de ser google.com sería com punto Google o com punto Facebook.
Se fijan entonces primero la extensión, punto el nombre dominio.
Pero también una empresa puede tener muchos proyectos.
Entonces podemos anidar cada uno estos proyectos bajo el mismo nombre de paquete base o principal.
Por ejemplo, el tacas principal sería con punto A, Guzmán punto Proyecto A, Proyecto B, Proyecto
C, entonces podríamos categorizar, ordenar nuestro proyectos dentro de esos paquetes.
Bueno, y por supuesto dentro de ese package principal de cada proyecto proyecto a veces puedo tener
varios sub package.
Por ejemplo se presente capa MBC, controllers, models todo lo que el dato views vistas servis para
nuestra clase de servicio.
Pero también podríamos organizar además por proyecto, también por área, porque un proyecto podría
involucrar varias áreas, por ejemplo venta, soporte.
Entonces tendríamos primero el dominio principal de nuestra compañía con punto a Guzmán, punto el área
que correspondería a un paquete y así cada área podría tener o podría estar involucrada en vez de un
proyecto.
Entonces compra punto, proyecto B, ventas punto, proyecto B, soporte punto, proyecto B y otras
área también participan en el mismo proyecto, pero también podría estar al revés, podría estar primero
el proyecto y después el área o el módulo, por ejemplo con punto a Guzmán punto proyecto de punto compras,
proyecto B, punto ventas, proyecto B, punto soporte.
Pero por lo general es que sea el nombre de la empresa, el área y el proyecto.
Ahora insisto, podemos colocar el nombre que queramos, pero siempre en minúscula y su paquete se para
con punto.
Bueno, la idea de utilizar en nombre de la empresa esta convención más que nada es para evitar conflictos
de nombre y sea lo más único posible.
El dominio no tiene por qué existir físicamente en la web.
Por ejemplo, cómo punto a Guzmán no existe, pero lo podemos utilizar en nuestro proyecto.
Podemos utilizar nombre de dominio existente de nuestra empresa, o bien cualquiera puede ser incluso
nuestro nombre de persona.
Si estamos trabajando en proyectos personales con punto A Guzmán estaría perfecto y no existe en la
web definiendo el РАМКАХ de nuestra clase.
Bueno, cómo se define?
Cómo crea un package en una clase en particular?
Bueno, lo primero es crear físicamente el package en nuestro proyecto.
Por ejemplo, con punto a Guzmán, punto datos y dentro de datos que sería nuestro su paquete que va
a estar dentro de conjunto a Guzmán.
Vamos a tener la clase que representan datos.
Nuestro dominio que también se le conoce a.
Por ejemplo, persona y dentro de clase, con la palabra clave РАМКАХ, seguido del nombre de paquete
con punto a Guzmán punto datos por detrás, un package al final se traduce también a directorios en
nuestro proyecto.
Finalmente, un directorio.
Entonces al final cada punto que tengamos en el package corresponde a un directorio en particular.
Acá tenemos una clase, dentro un paquete.
Ahora, cómo la podemos utilizar esta clase?
Bueno, la trema que importar.
Podemos utilizar la palabra reservada import.
Por ejemplo, en otra clase quiero usar persona.
Simplemente coloco import y el nombre completo de esta clase.
El nombre completo que incluye alpacas.
Punto.
La clase se le conoce como el nombre completamente calificado.
Entonces sería import.
El nombre del package con punto a Guzmán.
Punto.
Datos.
Punto.
La clase.
Y con esto ya la podemos utilizar.
Pero también no es obligación tener que importar la clase.
También la podemos utilizar con el nombre completo.
Por ejemplo, acá tengo la clase main, quiero utilizar la clase persona y en vez de importar simplemente
la utilizo con el nombre completamente calificado, incluyendo РАМКАХ con punto A Guzmán, punto datos,
punto persona y ahí creo la instancia bueno la asigno a una variable, por ejemplo persona igual new
y también el nombre completamente calificado, incluyendo el package se fijan otra forma.
Por lo tanto, utilizar el import no es obligación, pero sí es recomendable porque mucho más legible
es mucho más fácil de leer nuestro código utilizando import, porque si tenemos otro proyecto con esta
forma se dificulta un poco leer el código con lo import que me ha ordenado.
Y acá tenemos el ejemplo importamos persona con import.
Bueno, siempre primero va el package, primero se define alpacas y después los import de la clase que
vamos a utilizar en el ejemplo.
Acá tenemos el importe persona con el nombre completamente calificado y luego en la clase la utilizamos
común y corriente persona sin el nombre completo.
Entonces al final el import no permite simplificar para no tener que usar el nombre largo o completo.
Se hace mucho más simple de leer y me ha ordenado utilizar import o no utilizar lo import no afecta
nada en el rendimiento en la memoria.
Es decir, de hecho una clase que está compilada que utilice import y que no utilice import, sino que
utiliza el nombre completamente calificado en el new, por ejemplo, como lo vimos acá, es exactamente
lo mismo en términos de rendimiento e igual no afecta en nada el import.
Si lo que hace el import no es que cargue la clase de memoria, sino simplemente la habilita para que
la podamos utilizar.
Nada más.
Es como un alias, un atajo para evitar colocar el nombre completo.
Bien, importando toda la clases en un package podríamos tener decenas y centenas de clases, mucha
clase entonces, y podríamos utilizar varias de ésta para no tener que estar importando una a una.
Podemos utilizar el asterisco que se le conoce como wild card.
Entonces con el asterisco simplemente importamos todo de forma automática y lo mismo no afecta nada
en el rendimiento.
No es que estemos cargando toda la clase de este paquete en memoria, en absoluto.
Solamente la clase se carga en la memoria cuando la utilizamos.
Es decir, cuando la instancia con el operador new o cuando la utilizamos de forma estática con el nombre
de la clase punto, el método o el atributo estático.
Y por último, evitando conflictos de nombre.
Podríamos tener, por ejemplo, la clase persona en más de un package, ese par de clase con el mismo
nombre que están en distintos paquetes y la podemos utilizar sin problema, pero solamente podemos importar
una de ellas.
Por ejemplo, importamos persona que está en datos, pero tenemos otra clase persona con el mismo nombre
que está en otro paquete en el package, otro con cómputo a Guzmán puntó, otro punto persona.
Entonces ahí tenemos que utilizar el nombre completamente calificado.
De esa forma evitamos el conflicto nombre import estatico.
También podemos importar métodos y atributos estáticos, por ejemplo, en vez de utilizar o importar
una clase común y corriente con el import con punto a Guzmán punto datos punto persona de forma común
y corriente.
Importamos la clase y para poder utilizar el método estático sería nombre de la clase persona.
Punto saludar suponiendo que saludar es un método estático, entonces persona apuntos ALUAR.
Pero bien.
Otra forma.
Y para simplificar esto, podemos importar el método o el atributo estático con import static en nombre
completamente calificado con punto a Guzmán punto datos punto persona punto.
El miembro estático, por ejemplo, saludar ya sea un método o atributo.
Y este método atributo lo podemos utilizar en la clase como si fuera parte de la clase.
Por ejemplo, simplemente saludar.
De esta forma podemos llamar este método o atributo estático sin usar el nombre de la clase, ya que
está especificado dentro del import estático.
Ahí se indica el nombre.
Entonces lo utilizamos como si fuera un método propio de la clase.
A pesar de que está en la otra clase, en este caso en persona.
Pero bien, también lo vamos a ver más en detalle.
Y por último, también quería mencionar que en Java existen más de 220 paquetes o paquetes más de 4000
clases y están todas organizada por funcionalidad por tipo y hay diferentes РАМКАХ.
Ya vimos algunos que son lo más importante.
Por ejemplo, ya va Blanka, ya Balak es el рамках principal o base del lenguaje yaba hoy tanto la clase
del KOR, por ejemplo la clase String, la clase Integer, la clase System, la clase más de matematica
y la clase Object.
La más importante, en fin, la clase principale.
De hecho, ni siquiera necesario tener que importar porque el import es implícito de forma automática
sin tener que definir el import.
Ya están disponible y la podemos utilizar, es decir, ya vienen importada de forma transparente.
Pero también tenemos otros рамках muy importante como lleba útil.
Ya se cuele, ya va io y salía.
Enfín.
Ya hemos visto alguna clase y durante curso vamos a seguir viendo varias clases de lenguaje java utilizarlas
y por supuesto para poder utilizarla la vamos a tener que importar tal como lo hicimos con Tait por
ejemplo, que la importamos de Java útil o calendar o random que también era de lleba útil.
En fin, continuamos en la siguiente clase.