1
00:00:11,170 --> 00:00:17,700
Hola Te saludo nuevamente Ubaldo Costa espero que estén listos para comenzar con esta elección.

2
00:00:17,710 --> 00:00:28,360
Vamos a revisar a continuación el tema de paquetes en ya están listos vamos paquetes en Java los paquetes

3
00:00:28,360 --> 00:00:31,330
en Java permiten organizar nuestras clases.

4
00:00:31,330 --> 00:00:37,810
Podemos pensar en los paquetes como cualquier carpeta o folder que creamos para organizar documentos

5
00:00:38,020 --> 00:00:44,680
archivos fotos o cualquier tipo de información en Java lo que organizamos son clases y básicamente nos

6
00:00:44,680 --> 00:00:51,670
permite agrupar clases ya sea por su función por herencia o por cualquier característica que deseemos.

7
00:00:51,670 --> 00:00:57,520
Lo importante es que tengamos una organización de nuestras clases ya que solo en la versión estándar

8
00:00:57,520 --> 00:01:05,500
de Java encontramos más de 4000 clases y por lo tanto es importante definir la forma en que organizaremos

9
00:01:05,500 --> 00:01:06,340
nuestras clases

10
00:01:09,020 --> 00:01:15,230
así que los paquetes en Java nos permiten organizar clases nos permiten evitar conflictos entre nombres

11
00:01:15,230 --> 00:01:16,410
de clases.

12
00:01:16,790 --> 00:01:24,530
Limitamos también el acceso a clases respectivas dentro de ciertos paquetes y también existe una biblioteca

13
00:01:24,530 --> 00:01:28,450
de paquetes ya existentes de igual manera.

14
00:01:28,450 --> 00:01:33,940
Un proyecto en Java suele tener cientos o miles de clases por lo tanto debemos organizar nuestras clases

15
00:01:33,940 --> 00:01:35,230
de la mejor forma.

16
00:01:35,560 --> 00:01:42,040
Normalmente por la función que estas clases desempeñan en nuestro programa a tener tantas clases es

17
00:01:42,040 --> 00:01:44,570
normal que existan clases con el mismo nombre.

18
00:01:44,590 --> 00:01:51,220
Sin embargo como cada clase pertenece a un paquete distinto los paquetes también nos servirán para evitar

19
00:01:51,220 --> 00:01:54,400
problemas en nombres entre clases.

20
00:01:54,400 --> 00:01:58,130
Es decir que nos van a evitar conflictos entre nombres de clases.

21
00:01:58,210 --> 00:02:04,930
Por ejemplo existen muchas clases llamadas Droit o fecha esto solamente en la versión estándar de Java

22
00:02:05,540 --> 00:02:11,920
y para poder distinguir qué clase queremos utilizar debemos especificar el paquete Java donde se encuentra

23
00:02:12,010 --> 00:02:13,600
dicha clase.

24
00:02:13,630 --> 00:02:19,360
Más adelante veremos un ejemplo de cómo hacer uso de paquetes y cómo aullaban nos permite utilizar las

25
00:02:19,360 --> 00:02:21,820
clases que pertenecen a dichos paquetes.

26
00:02:22,800 --> 00:02:28,650
Otro de los usos de los paquetes es que limitan el acceso a los métodos o atributos de nuestras clases

27
00:02:29,280 --> 00:02:33,420
ya que limita según los modificadores de acceso que se utilicen.

28
00:02:33,420 --> 00:02:38,730
Este concepto lo veremos a detalle en el siguiente curso en la versión estándar de Java.

29
00:02:38,750 --> 00:02:44,210
Existen más de 4000 clases por lo que ya existe un gran número de paquetes definidos.

30
00:02:44,450 --> 00:02:50,540
Además de los que nosotros definamos todas estas clases están disponibles para ser utilizadas en nuestros

31
00:02:50,540 --> 00:02:55,190
programas Java y más adelante veremos cómo podemos acceder a estas clases

32
00:02:58,510 --> 00:03:06,980
convención en nombre de paquetes en Java el nombre de los paquetes Java sigue un estándar todo el nombre

33
00:03:06,980 --> 00:03:14,710
debe de estar en minúsculas posteriormente se acostumbra escribir el nombre del dominio web de manera

34
00:03:14,770 --> 00:03:20,330
invertida si es que lo vamos a utilizar para crear un proyecto de nuestra empresa.

35
00:03:20,440 --> 00:03:25,900
Por ejemplo en este caso tenemos el dominio global mentoring punto com punto Mx entonces el nombre del

36
00:03:25,900 --> 00:03:31,490
paquete de Java será MX puntocom Punto G Eme o globalmente.

37
00:03:33,770 --> 00:03:39,520
Y si tenemos un proyecto ya que una empresa puede tener bastantes proyectos podemos simplemente clasificarlo

38
00:03:39,520 --> 00:03:46,450
como sigue MX punto com punto global mentoring punto mi proyecto y así cada uno de los proyectos que

39
00:03:46,450 --> 00:03:55,220
tengamos van a estar englobados dentro del paquete más general MX com global mentoring ejemplo de sus

40
00:03:55,230 --> 00:04:02,070
paquetes podemos tener el paquete DMX punto com punto global mentoring punto contabilidad junto a mi

41
00:04:02,070 --> 00:04:09,700
proyecto y podemos tener más paquetes por ejemplo MX punto com punto global mentoring punto administración

42
00:04:09,700 --> 00:04:12,790
punto mi proyecto así de esta manera.

43
00:04:12,880 --> 00:04:18,850
Si hubiera algún conflicto de nombres con otro proyecto basta con modificar el nombre de proyecto alguno

44
00:04:18,850 --> 00:04:20,420
que no tenga conflicto.

45
00:04:20,500 --> 00:04:26,590
La idea es que sigamos este estándar aunque no tengamos un dominio en Internet ya que este dominio web

46
00:04:26,830 --> 00:04:32,500
no es necesario que exista en internet es sólo para evitar conflictos de nombres lo más posible.

47
00:04:32,680 --> 00:04:37,840
Sin embargo podemos observar en los ejemplos mostrados el nombre del dominio globalmente en un punto

48
00:04:37,840 --> 00:04:44,980
com punto MX el cual si queremos utilizarlo en nuestros proyectos podríamos usarlo en primer lugar invirtiendo

49
00:04:45,040 --> 00:04:51,130
el orden del nombre del dominio y posteriormente agregando el nombre de nuestro proyecto con el objetivo

50
00:04:51,130 --> 00:04:54,040
de tener un nombre de paquete único.

51
00:04:54,040 --> 00:04:59,980
También vemos algunos ejemplos si tuviéramos un proyecto y si ese proyecto tuviese sus paquetes para

52
00:04:59,980 --> 00:05:01,900
distintas partes del proyecto

53
00:05:05,720 --> 00:05:07,820
ejemplo de clases dentro de un paquete

54
00:05:11,140 --> 00:05:17,890
vamos a ver a continuación algunos ejemplos de paquetes en Java por ejemplo el paquete com punto G M.

55
00:05:18,100 --> 00:05:24,280
Posteriormente se define el nombre de la clase y estamos agregando un método para imprimir y es un método

56
00:05:24,280 --> 00:05:25,610
estático.

57
00:05:25,660 --> 00:05:30,910
Por ello esta clase va a ser llamada utilería ya que estos métodos que vamos a agregar son estáticos

58
00:05:31,180 --> 00:05:34,090
y los vamos a utilizar directamente con el nombre de la clase

59
00:05:37,390 --> 00:05:43,180
posteriormente para utilizar esta clase de utilería lo que vamos a hacer es primeramente importar el

60
00:05:43,180 --> 00:05:50,690
paquete utilizando la palabra reservada import e indicamos que queremos importar el paquete com punto

61
00:05:50,720 --> 00:05:58,510
G.M. punto asterisco y el asterisco significa que podemos importar las clases que vamos a utilizar en

62
00:05:58,510 --> 00:06:01,360
este caso la clase de utilería.

63
00:06:01,510 --> 00:06:07,690
Sin embargo esto no quiere decir que se crea una instancia de la clase simplemente es que podemos utilizar

64
00:06:07,750 --> 00:06:13,960
el nombre de la clase del paquete respectivo ya que en este caso el nombre completamente calificado

65
00:06:14,290 --> 00:06:16,760
de la clase utilería sería como sigue.

66
00:06:16,960 --> 00:06:27,620
Cuando la quisiéramos utilizar sería puntocom G.M. punto utilería pero para no estar utilizando el nombre

67
00:06:27,620 --> 00:06:34,910
completo cada vez que utilicemos esta clase lo que vamos a hacer es importar la clase pero lo que vamos

68
00:06:34,910 --> 00:06:41,820
a hacer es indicar cuál es el paquete que queremos importar podemos especificar que únicamente importe

69
00:06:41,850 --> 00:06:47,880
una clase indicando el nombre de utilería en lugar de asterisco pero básicamente el asterisco lo que

70
00:06:47,880 --> 00:06:54,120
significa es que va a importar todos los nombres de clases que se encuentren dentro del paquete com

71
00:06:54,180 --> 00:07:03,500
punto G M así que de esta manera una vez haciendo el importe del paquete con punto GM la clase de utilería

72
00:07:03,730 --> 00:07:09,140
al agregarla a través del asterisco todas las clases contenidas dentro de este paquete entonces dentro

73
00:07:09,140 --> 00:07:16,780
de nuestro código vamos a poder utilizar simplemente el nombre de la clase ya que ya hicimos el impor

74
00:07:16,830 --> 00:07:23,730
respectivo en la primera línea de código de esta clase así que primero importamos el paquete y posteriormente

75
00:07:23,730 --> 00:07:30,240
por ejemplo dentro de un método podemos utilizar directamente ya el nombre de la clase así que sin importar

76
00:07:30,240 --> 00:07:36,600
que esta clase esté ubicada en otra carpeta en otro paquete simplemente haciendo un import del paquete

77
00:07:36,600 --> 00:07:38,470
que queremos utilizar.

78
00:07:38,580 --> 00:07:45,020
Vamos a poder utilizar finalmente la clase únicamente con el nombre de la misma y así mandar a llamar.

79
00:07:45,090 --> 00:07:52,080
El método estático correspondiente a esta clase así que en este ejemplo primeramente creamos una clase

80
00:07:52,080 --> 00:07:53,760
llamada utilería.

81
00:07:53,760 --> 00:07:59,700
Esta clase la estamos agregando a un paquete llamado conjunto G.M pero puede ser cualquier nombre que

82
00:07:59,700 --> 00:08:01,060
deseemos.

83
00:08:01,200 --> 00:08:07,440
Una vez que hemos agregado una o más clases a este paquete entonces creamos una clase en un paquete

84
00:08:07,440 --> 00:08:08,530
distinto.

85
00:08:08,670 --> 00:08:15,030
En este caso creamos la clase ejemplo paquetes en el paquete por default de IAVA es decir en ningún

86
00:08:15,030 --> 00:08:16,860
paquete en particular.

87
00:08:17,130 --> 00:08:23,640
Cabe señalar que esta práctica no se recomienda sólo es para realizar el ejercicio y recomienda que

88
00:08:23,640 --> 00:08:27,340
todas las clases que creemos deben de estar dentro de un paquete.

89
00:08:27,510 --> 00:08:33,200
Así que a partir de ahora todas las clases que creemos se van a encontrar dentro de un paquete.

90
00:08:33,450 --> 00:08:40,620
Ahora para poder utilizar la clase utilería definida en el paquete con Punto G M según hemos comentado

91
00:08:40,980 --> 00:08:48,450
lo que debemos hacer es utilizar la palabra import la cual podemos utilizar de dos maneras una es importando

92
00:08:48,450 --> 00:08:55,680
todas las clases usando el asterisco o la otra es especificando directamente el nombre de la clase es

93
00:08:55,680 --> 00:09:00,210
decir import con Punto G M.N utilería.

94
00:09:00,270 --> 00:09:06,540
Sin embargo esta última opción nos obliga a hacer un import por cada clase que deseemos utilizar del

95
00:09:06,540 --> 00:09:13,710
paquete con Punto G M y si fueran muchas clases serían muchas líneas de código de cada uno de los importe

96
00:09:13,740 --> 00:09:14,740
de cada clase.

97
00:09:15,530 --> 00:09:23,240
Por lo que en muchas ocasiones la notación import con Punto G M punto asterisco será la más utilizada.

98
00:09:23,240 --> 00:09:28,910
Cabe mencionar que el import no afecta a la memoria ya que no es que se carguen todas las clases de

99
00:09:28,910 --> 00:09:30,500
un paquete en memoria.

100
00:09:30,500 --> 00:09:37,370
Una clase se carga en memoria hasta que se usa el nombre de la clase dentro del código respectivo es

101
00:09:37,370 --> 00:09:40,520
decir en alguna función y no antes.

102
00:09:40,520 --> 00:09:46,790
Finalmente podemos ver cómo estamos utilizando el método estático llamado imprimir el cual pertenece

103
00:09:46,850 --> 00:09:48,830
a la clase utilería.

104
00:09:48,830 --> 00:09:55,190
Observamos que ya no estamos indicando a qué paquete corresponde dicha clase ya que hemos hecho el impor

105
00:09:55,280 --> 00:09:57,820
respectivo al inicio de la clase.

106
00:09:57,860 --> 00:10:04,370
Sin embargo si hubiera más de una clase llamada utilería podríamos eliminar el import e indicar en la

107
00:10:04,370 --> 00:10:10,310
línea de código dónde vamos a utilizar la clase directamente el paquete al cual corresponde la clase

108
00:10:10,850 --> 00:10:14,620
quedando con puntos G M.N utilería punto.

109
00:10:14,660 --> 00:10:21,740
Imprimir con esto sabríamos exactamente a qué paquete corresponde la clase que estamos utilizando

110
00:10:24,520 --> 00:10:25,840
import estatico

111
00:10:28,950 --> 00:10:29,650
en Java.

112
00:10:29,790 --> 00:10:36,240
Es posible importar los métodos estáticos a utilizar y de esta manera simplificar la sintaxis en los

113
00:10:36,240 --> 00:10:44,010
métodos estáticos de nuestro código así que podemos observar a continuación un ejemplo de este tipo

114
00:10:44,250 --> 00:10:51,450
de import estatico similar al ejemplo anterior que hemos comentado estamos definiendo un paquete con

115
00:10:51,450 --> 00:10:59,130
Punto G M y posteriormente en este paquete estamos agregando la clase utilería y dentro de esta clase

116
00:10:59,160 --> 00:11:02,880
estamos definiendo un método imprimir de tipo estático.

117
00:11:02,880 --> 00:11:07,620
Esto es lo mismo que creamos y comentamos en el ejemplo anterior posteriormente.

118
00:11:07,650 --> 00:11:14,310
Ahora lo que hacemos es utilizar un import estático para poder mandar a llamar directamente el nombre

119
00:11:14,310 --> 00:11:22,170
del método sin utilizar el nombre de la clase para ello lo que vamos a hacer es indicar Import y posteriormente

120
00:11:22,230 --> 00:11:29,520
indicamos que queremos importar un método estático y posteriormente indicamos a qué clase corresponde

121
00:11:29,550 --> 00:11:31,330
este método estático.

122
00:11:31,350 --> 00:11:37,500
De esta manera indicamos que el método estático a imprimir pertenece al paquete com punto G M de la

123
00:11:37,500 --> 00:11:44,550
clase utilería e indicamos el método que vamos a utilizar directamente así que este va a ser el método

124
00:11:44,550 --> 00:11:50,670
estático que vamos a utilizar y por ello es que este import a diferencia del ejemplo anterior debemos

125
00:11:50,730 --> 00:11:57,960
especificar que va a ser estático ya que el método que vamos a utilizar es estático y esto tiene el

126
00:11:57,960 --> 00:12:03,410
beneficio de que cuando ya estamos dentro de la clase ejemplo de paquetes y dentro de El método main

127
00:12:03,990 --> 00:12:08,670
podemos mandar a llamar directamente este método imprimir Hola.

128
00:12:08,910 --> 00:12:14,990
Si observamos directamente pareciera que este método debe estar definido dentro de esta clase.

129
00:12:15,090 --> 00:12:22,440
Sin embargo este método está definido en la clase utilería y por medio del import Static estamos simplificando

130
00:12:22,530 --> 00:12:29,730
el acceso a esta clase así que en el ejemplo mostrado podemos observar que la clase utilería y el paquete

131
00:12:29,790 --> 00:12:35,430
al que pertenecen son los mismos que en el ejemplo anterior pero debido a que el método a imprimir es

132
00:12:35,430 --> 00:12:42,000
un método estático podemos aprovechar la sintaxis de import Static que nos brinda IAVA para importar

133
00:12:42,030 --> 00:12:48,060
el método estático a utilizar y de esta manera se simplifica la sintaxis del uso del método.

134
00:12:48,060 --> 00:12:55,500
Imprimir ya que como podemos observar el método imprimir ya no debe indicar a qué clase pertenece sino

135
00:12:55,500 --> 00:13:01,770
que es suficiente con indicar el nombre del método ya que en el import Static ya se ha indicado que

136
00:13:01,770 --> 00:13:03,660
pertenece a la clase de utilería

137
00:13:06,350 --> 00:13:09,800
paquetes más importantes de Java estándar Edition.

138
00:13:10,040 --> 00:13:16,210
En la tabla mostrada podemos observar algunos de los paquetes Java más comunes en la versión estándar.

139
00:13:16,430 --> 00:13:22,850
El más importante es el paquete Java punto Langue el cual contiene las clases Kort del lenguaje Java

140
00:13:23,270 --> 00:13:29,000
tales como la clase Object que es la clase de la cual descienden todas las clases en Java entre varias

141
00:13:29,000 --> 00:13:30,170
clases más.

142
00:13:30,170 --> 00:13:36,770
Cabe señalar que no es necesario hacer import de ninguna de las clases de este paquete Java punto Langa

143
00:13:37,490 --> 00:13:43,280
ya que es el único que se importa de manera automática por la importancia que tienen estas clases en

144
00:13:43,280 --> 00:13:46,930
la compilación y ejecución de nuestras clases Java.

145
00:13:46,940 --> 00:13:53,570
Existen otros paquetes los cuales también son muy importantes tales como los paquetes Java punto y útil

146
00:13:54,110 --> 00:14:01,760
ya va punto net Java punto a doble UTEM ya va punto uy ya va punto applet etc..

147
00:14:01,820 --> 00:14:08,510
Entre muchos paquetes más conforme vayamos avanzando a lo largo del curso y cursos posteriores estaremos

148
00:14:08,510 --> 00:14:11,240
estudiando varias de las clases de estos paquetes.
