1
00:00:00,240 --> 00:00:03,000
Bien, continuamos con los paquetes en yaba o los paquetes.

2
00:00:03,130 --> 00:00:04,290
Bien, pero qué es lo que son?

3
00:00:04,410 --> 00:00:05,160
De qué se trata?

4
00:00:05,280 --> 00:00:10,680
Son una especie de contenedor que nos permiten organizar y agrupar nuestras clases, ya sea por alguna

5
00:00:10,680 --> 00:00:15,670
característica o bien por algún tipo o jerarquía de clases, o en realidad poco.

6
00:00:15,690 --> 00:00:21,060
Qué función que le queramos dar simplemente para categorizar, para ordenar nuestra estructura, proyecto,

7
00:00:21,120 --> 00:00:21,870
nuestras clases.

8
00:00:21,960 --> 00:00:25,110
Exactamente lo mismo que un directorio de nuestro sistema operativo.

9
00:00:25,200 --> 00:00:28,860
Es lo mismo para guardar archivos, documentos, imágenes, pdf.

10
00:00:28,950 --> 00:00:29,850
La idea organizar.

11
00:00:29,910 --> 00:00:34,890
No podemos tener todos los archivos de nuestro sistema, todo junto dentro de un solo directorio.

12
00:00:35,010 --> 00:00:39,300
Sería muy difícil, por ejemplo, encontrar algún documento, alguna imagen.

13
00:00:39,390 --> 00:00:41,010
En fin, lo mismo pasa acá.

14
00:00:41,110 --> 00:00:46,100
Bueno, carácterísticas, bueno, la primera justamente es lo que comentamos agrupar y organizar en

15
00:00:46,110 --> 00:00:50,370
un proyecto en Java podríamos tener decenas y centenares de clases, muchas.

16
00:00:50,430 --> 00:00:55,800
Por lo tanto, tenemos que organizar nuestra clases de la mejor forma posible, dar alguna estructura

17
00:00:55,890 --> 00:00:58,530
de nuestro proyecto y categorizar nuestras clases.

18
00:00:58,590 --> 00:01:02,280
Otra característica bueno, igual que los directorios evitan conflictos de nombre.

19
00:01:02,370 --> 00:01:05,730
Podríamos tener el mismo nombre de clases en diferentes paquetes.

20
00:01:05,790 --> 00:01:10,770
Por lo tanto, al estar ubicadas en diferentes lugares, no van a existir conflictos de nombre igual

21
00:01:10,800 --> 00:01:12,000
que los archivos.

22
00:01:12,030 --> 00:01:15,780
Podríamos tener archivo con el mismo nombre, pero están en diferentes carpetas.

23
00:01:15,870 --> 00:01:17,730
No se van a reemplazar acá es lo mismo.

24
00:01:17,850 --> 00:01:23,670
Otra característica, según su modificadores, pueden ocultar el acceso a sus clases y también a los

25
00:01:23,670 --> 00:01:28,050
atributos y métodos de estas clases, dependiendo del tipo modificar eso.

26
00:01:28,060 --> 00:01:33,090
Después vamos a ver un ejemplo, pero existe el modificador default que ya lo hemos visto cuando no

27
00:01:33,090 --> 00:01:36,570
se define ningún modificaré de acceso por defecto es de РАМКАХ.

28
00:01:36,600 --> 00:01:42,680
Por lo tanto solamente se pueden utilizar esos miembros, ya sean métodos o atributos dentro сбербанк.

29
00:01:42,810 --> 00:01:44,490
Y lo mismo si la clase no es pública.

30
00:01:44,490 --> 00:01:48,120
Si 1Ti fold solamente se puede acceder en ese package y no en otros.

31
00:01:48,150 --> 00:01:49,080
Pero después vamos a ver.

32
00:01:49,260 --> 00:01:51,900
Bien, veamos el estándar de nombres en paquetes.

33
00:01:51,990 --> 00:01:57,760
Bueno, lo primero que debe estar escrita completamente en minúscula 100 por ciento no puede haber mayúscula.

34
00:01:57,900 --> 00:02:03,660
Bueno, en realidad sí pueden, pero el estándar la convención de nombre es en minúscula y cada su paquete

35
00:02:03,750 --> 00:02:05,040
se separa con puntos.

36
00:02:05,130 --> 00:02:09,570
Bueno, no es que tenga que ser así, pero es un estándar que se utiliza mucho en las empresas como

37
00:02:09,570 --> 00:02:10,450
nombre de РАМКАХ.

38
00:02:10,590 --> 00:02:16,080
Entonces se utiliza, por ejemplo, el nombre de dominio de la empresa, pero comenzando primero con

39
00:02:16,080 --> 00:02:16,670
la extensión.

40
00:02:16,680 --> 00:02:24,870
Por ejemplo, com or ese céle se fijan mx la extensión del dominio punto el nombre del dominio.

41
00:02:24,960 --> 00:02:28,110
Es decir, es como dar vuelta el dominio web.

42
00:02:28,260 --> 00:02:33,860
Veamos ejemplos en vez de ser google.com sería com punto Google o com punto Facebook.

43
00:02:33,960 --> 00:02:37,890
Se fijan entonces primero la extensión, punto el nombre dominio.

44
00:02:37,950 --> 00:02:41,100
Pero también una empresa puede tener muchos proyectos.

45
00:02:41,160 --> 00:02:47,370
Entonces podemos anidar cada uno estos proyectos bajo el mismo nombre de paquete base o principal.

46
00:02:47,490 --> 00:02:53,430
Por ejemplo, el tacas principal sería con punto A, Guzmán punto Proyecto A, Proyecto B, Proyecto

47
00:02:53,430 --> 00:02:57,930
C, entonces podríamos categorizar, ordenar nuestro proyectos dentro de esos paquetes.

48
00:02:58,050 --> 00:03:04,050
Bueno, y por supuesto dentro de ese package principal de cada proyecto proyecto a veces puedo tener

49
00:03:04,050 --> 00:03:05,250
varios sub package.

50
00:03:05,340 --> 00:03:13,260
Por ejemplo se presente capa MBC, controllers, models todo lo que el dato views vistas servis para

51
00:03:13,260 --> 00:03:14,460
nuestra clase de servicio.

52
00:03:14,520 --> 00:03:20,580
Pero también podríamos organizar además por proyecto, también por área, porque un proyecto podría

53
00:03:20,580 --> 00:03:24,360
involucrar varias áreas, por ejemplo venta, soporte.

54
00:03:24,450 --> 00:03:31,080
Entonces tendríamos primero el dominio principal de nuestra compañía con punto a Guzmán, punto el área

55
00:03:31,140 --> 00:03:36,690
que correspondería a un paquete y así cada área podría tener o podría estar involucrada en vez de un

56
00:03:36,690 --> 00:03:37,170
proyecto.

57
00:03:37,260 --> 00:03:43,470
Entonces compra punto, proyecto B, ventas punto, proyecto B, soporte punto, proyecto B y otras

58
00:03:43,470 --> 00:03:49,080
área también participan en el mismo proyecto, pero también podría estar al revés, podría estar primero

59
00:03:49,170 --> 00:03:55,860
el proyecto y después el área o el módulo, por ejemplo con punto a Guzmán punto proyecto de punto compras,

60
00:03:55,950 --> 00:03:59,220
proyecto B, punto ventas, proyecto B, punto soporte.

61
00:03:59,310 --> 00:04:03,390
Pero por lo general es que sea el nombre de la empresa, el área y el proyecto.

62
00:04:03,480 --> 00:04:08,280
Ahora insisto, podemos colocar el nombre que queramos, pero siempre en minúscula y su paquete se para

63
00:04:08,280 --> 00:04:08,790
con punto.

64
00:04:08,880 --> 00:04:14,340
Bueno, la idea de utilizar en nombre de la empresa esta convención más que nada es para evitar conflictos

65
00:04:14,340 --> 00:04:16,710
de nombre y sea lo más único posible.

66
00:04:16,830 --> 00:04:19,680
El dominio no tiene por qué existir físicamente en la web.

67
00:04:19,740 --> 00:04:24,360
Por ejemplo, cómo punto a Guzmán no existe, pero lo podemos utilizar en nuestro proyecto.

68
00:04:24,420 --> 00:04:30,720
Podemos utilizar nombre de dominio existente de nuestra empresa, o bien cualquiera puede ser incluso

69
00:04:30,810 --> 00:04:32,180
nuestro nombre de persona.

70
00:04:32,230 --> 00:04:37,470
Si estamos trabajando en proyectos personales con punto A Guzmán estaría perfecto y no existe en la

71
00:04:37,470 --> 00:04:39,620
web definiendo el РАМКАХ de nuestra clase.

72
00:04:39,750 --> 00:04:40,740
Bueno, cómo se define?

73
00:04:40,800 --> 00:04:43,140
Cómo crea un package en una clase en particular?

74
00:04:43,260 --> 00:04:47,280
Bueno, lo primero es crear físicamente el package en nuestro proyecto.

75
00:04:47,340 --> 00:04:52,800
Por ejemplo, con punto a Guzmán, punto datos y dentro de datos que sería nuestro su paquete que va

76
00:04:52,800 --> 00:04:55,080
a estar dentro de conjunto a Guzmán.

77
00:04:55,170 --> 00:04:57,780
Vamos a tener la clase que representan datos.

78
00:04:57,900 --> 00:04:59,730
Nuestro dominio que también se le conoce a.

79
00:04:59,860 --> 00:05:05,590
Por ejemplo, persona y dentro de clase, con la palabra clave РАМКАХ, seguido del nombre de paquete

80
00:05:05,650 --> 00:05:12,310
con punto a Guzmán punto datos por detrás, un package al final se traduce también a directorios en

81
00:05:12,310 --> 00:05:13,120
nuestro proyecto.

82
00:05:13,210 --> 00:05:14,200
Finalmente, un directorio.

83
00:05:14,350 --> 00:05:20,200
Entonces al final cada punto que tengamos en el package corresponde a un directorio en particular.

84
00:05:20,350 --> 00:05:22,240
Acá tenemos una clase, dentro un paquete.

85
00:05:22,390 --> 00:05:24,580
Ahora, cómo la podemos utilizar esta clase?

86
00:05:24,700 --> 00:05:26,560
Bueno, la trema que importar.

87
00:05:26,620 --> 00:05:29,870
Podemos utilizar la palabra reservada import.

88
00:05:29,980 --> 00:05:32,560
Por ejemplo, en otra clase quiero usar persona.

89
00:05:32,650 --> 00:05:36,040
Simplemente coloco import y el nombre completo de esta clase.

90
00:05:36,200 --> 00:05:37,710
El nombre completo que incluye alpacas.

91
00:05:37,810 --> 00:05:38,440
Punto.

92
00:05:38,530 --> 00:05:42,340
La clase se le conoce como el nombre completamente calificado.

93
00:05:42,520 --> 00:05:44,020
Entonces sería import.

94
00:05:44,200 --> 00:05:46,690
El nombre del package con punto a Guzmán.

95
00:05:46,690 --> 00:05:46,990
Punto.

96
00:05:46,990 --> 00:05:47,410
Datos.

97
00:05:47,470 --> 00:05:48,040
Punto.

98
00:05:48,130 --> 00:05:48,670
La clase.

99
00:05:48,760 --> 00:05:49,960
Y con esto ya la podemos utilizar.

100
00:05:50,020 --> 00:05:52,570
Pero también no es obligación tener que importar la clase.

101
00:05:52,660 --> 00:05:55,180
También la podemos utilizar con el nombre completo.

102
00:05:55,390 --> 00:06:00,700
Por ejemplo, acá tengo la clase main, quiero utilizar la clase persona y en vez de importar simplemente

103
00:06:00,700 --> 00:06:06,730
la utilizo con el nombre completamente calificado, incluyendo РАМКАХ con punto A Guzmán, punto datos,

104
00:06:06,820 --> 00:06:13,560
punto persona y ahí creo la instancia bueno la asigno a una variable, por ejemplo persona igual new

105
00:06:13,660 --> 00:06:18,640
y también el nombre completamente calificado, incluyendo el package se fijan otra forma.

106
00:06:18,730 --> 00:06:24,670
Por lo tanto, utilizar el import no es obligación, pero sí es recomendable porque mucho más legible

107
00:06:24,760 --> 00:06:30,190
es mucho más fácil de leer nuestro código utilizando import, porque si tenemos otro proyecto con esta

108
00:06:30,190 --> 00:06:33,940
forma se dificulta un poco leer el código con lo import que me ha ordenado.

109
00:06:34,030 --> 00:06:37,660
Y acá tenemos el ejemplo importamos persona con import.

110
00:06:37,750 --> 00:06:42,610
Bueno, siempre primero va el package, primero se define alpacas y después los import de la clase que

111
00:06:42,610 --> 00:06:44,200
vamos a utilizar en el ejemplo.

112
00:06:44,290 --> 00:06:49,930
Acá tenemos el importe persona con el nombre completamente calificado y luego en la clase la utilizamos

113
00:06:49,990 --> 00:06:52,930
común y corriente persona sin el nombre completo.

114
00:06:52,990 --> 00:06:57,880
Entonces al final el import no permite simplificar para no tener que usar el nombre largo o completo.

115
00:06:57,970 --> 00:07:02,910
Se hace mucho más simple de leer y me ha ordenado utilizar import o no utilizar lo import no afecta

116
00:07:02,940 --> 00:07:05,380
nada en el rendimiento en la memoria.

117
00:07:05,470 --> 00:07:10,300
Es decir, de hecho una clase que está compilada que utilice import y que no utilice import, sino que

118
00:07:10,300 --> 00:07:15,580
utiliza el nombre completamente calificado en el new, por ejemplo, como lo vimos acá, es exactamente

119
00:07:15,580 --> 00:07:19,840
lo mismo en términos de rendimiento e igual no afecta en nada el import.

120
00:07:19,930 --> 00:07:23,980
Si lo que hace el import no es que cargue la clase de memoria, sino simplemente la habilita para que

121
00:07:23,980 --> 00:07:25,030
la podamos utilizar.

122
00:07:25,090 --> 00:07:25,570
Nada más.

123
00:07:25,660 --> 00:07:29,130
Es como un alias, un atajo para evitar colocar el nombre completo.

124
00:07:29,320 --> 00:07:34,660
Bien, importando toda la clases en un package podríamos tener decenas y centenas de clases, mucha

125
00:07:34,660 --> 00:07:39,520
clase entonces, y podríamos utilizar varias de ésta para no tener que estar importando una a una.

126
00:07:39,580 --> 00:07:42,940
Podemos utilizar el asterisco que se le conoce como wild card.

127
00:07:43,060 --> 00:07:48,290
Entonces con el asterisco simplemente importamos todo de forma automática y lo mismo no afecta nada

128
00:07:48,400 --> 00:07:49,240
en el rendimiento.

129
00:07:49,330 --> 00:07:53,050
No es que estemos cargando toda la clase de este paquete en memoria, en absoluto.

130
00:07:53,110 --> 00:07:56,500
Solamente la clase se carga en la memoria cuando la utilizamos.

131
00:07:56,590 --> 00:08:02,740
Es decir, cuando la instancia con el operador new o cuando la utilizamos de forma estática con el nombre

132
00:08:02,740 --> 00:08:05,680
de la clase punto, el método o el atributo estático.

133
00:08:06,100 --> 00:08:08,020
Y por último, evitando conflictos de nombre.

134
00:08:08,080 --> 00:08:13,660
Podríamos tener, por ejemplo, la clase persona en más de un package, ese par de clase con el mismo

135
00:08:13,660 --> 00:08:18,910
nombre que están en distintos paquetes y la podemos utilizar sin problema, pero solamente podemos importar

136
00:08:19,000 --> 00:08:19,780
una de ellas.

137
00:08:19,840 --> 00:08:25,780
Por ejemplo, importamos persona que está en datos, pero tenemos otra clase persona con el mismo nombre

138
00:08:25,870 --> 00:08:32,050
que está en otro paquete en el package, otro con cómputo a Guzmán puntó, otro punto persona.

139
00:08:32,110 --> 00:08:35,620
Entonces ahí tenemos que utilizar el nombre completamente calificado.

140
00:08:35,740 --> 00:08:39,460
De esa forma evitamos el conflicto nombre import estatico.

141
00:08:39,550 --> 00:08:45,490
También podemos importar métodos y atributos estáticos, por ejemplo, en vez de utilizar o importar

142
00:08:45,580 --> 00:08:51,340
una clase común y corriente con el import con punto a Guzmán punto datos punto persona de forma común

143
00:08:51,340 --> 00:08:51,970
y corriente.

144
00:08:52,070 --> 00:08:57,370
Importamos la clase y para poder utilizar el método estático sería nombre de la clase persona.

145
00:08:57,400 --> 00:09:02,530
Punto saludar suponiendo que saludar es un método estático, entonces persona apuntos ALUAR.

146
00:09:02,650 --> 00:09:03,010
Pero bien.

147
00:09:03,100 --> 00:09:03,880
Otra forma.

148
00:09:03,970 --> 00:09:11,500
Y para simplificar esto, podemos importar el método o el atributo estático con import static en nombre

149
00:09:11,500 --> 00:09:16,510
completamente calificado con punto a Guzmán punto datos punto persona punto.

150
00:09:16,600 --> 00:09:21,100
El miembro estático, por ejemplo, saludar ya sea un método o atributo.

151
00:09:21,280 --> 00:09:25,510
Y este método atributo lo podemos utilizar en la clase como si fuera parte de la clase.

152
00:09:25,540 --> 00:09:27,130
Por ejemplo, simplemente saludar.

153
00:09:27,220 --> 00:09:32,740
De esta forma podemos llamar este método o atributo estático sin usar el nombre de la clase, ya que

154
00:09:32,740 --> 00:09:36,190
está especificado dentro del import estático.

155
00:09:36,340 --> 00:09:37,260
Ahí se indica el nombre.

156
00:09:37,360 --> 00:09:40,480
Entonces lo utilizamos como si fuera un método propio de la clase.

157
00:09:40,570 --> 00:09:44,290
A pesar de que está en la otra clase, en este caso en persona.

158
00:09:44,350 --> 00:09:46,480
Pero bien, también lo vamos a ver más en detalle.

159
00:09:46,900 --> 00:09:53,080
Y por último, también quería mencionar que en Java existen más de 220 paquetes o paquetes más de 4000

160
00:09:53,080 --> 00:09:57,970
clases y están todas organizada por funcionalidad por tipo y hay diferentes РАМКАХ.

161
00:09:58,060 --> 00:09:59,770
Ya vimos algunos que son lo más importante.

162
00:09:59,970 --> 00:10:06,660
Por ejemplo, ya va Blanka, ya Balak es el рамках principal o base del lenguaje yaba hoy tanto la clase

163
00:10:06,660 --> 00:10:13,680
del KOR, por ejemplo la clase String, la clase Integer, la clase System, la clase más de matematica

164
00:10:13,770 --> 00:10:14,700
y la clase Object.

165
00:10:14,850 --> 00:10:17,340
La más importante, en fin, la clase principale.

166
00:10:17,520 --> 00:10:23,610
De hecho, ni siquiera necesario tener que importar porque el import es implícito de forma automática

167
00:10:23,700 --> 00:10:25,200
sin tener que definir el import.

168
00:10:25,380 --> 00:10:29,930
Ya están disponible y la podemos utilizar, es decir, ya vienen importada de forma transparente.

169
00:10:30,030 --> 00:10:33,450
Pero también tenemos otros рамках muy importante como lleba útil.

170
00:10:33,480 --> 00:10:36,950
Ya se cuele, ya va io y salía.

171
00:10:37,020 --> 00:10:37,320
Enfín.

172
00:10:37,440 --> 00:10:43,560
Ya hemos visto alguna clase y durante curso vamos a seguir viendo varias clases de lenguaje java utilizarlas

173
00:10:43,680 --> 00:10:48,060
y por supuesto para poder utilizarla la vamos a tener que importar tal como lo hicimos con Tait por

174
00:10:48,060 --> 00:10:52,870
ejemplo, que la importamos de Java útil o calendar o random que también era de lleba útil.

175
00:10:53,010 --> 00:10:55,470
En fin, continuamos en la siguiente clase.
