1
00:00:10,880 --> 00:00:13,100
Hola te saluda Ubal lacosta.

2
00:00:13,760 --> 00:00:15,240
Bienvenidos nuevamente.

3
00:00:15,560 --> 00:00:18,710
Espero que estén listos para comenzar con esta elección.

4
00:00:18,830 --> 00:00:24,570
Vamos a estudiar a continuación el tema de sobrecarga de constructores en Java están listos.

5
00:00:24,650 --> 00:00:33,620
Vamos sobrecarga de constructores en Llada en primer lugar la sobrecarga de constructores tiene que

6
00:00:33,620 --> 00:00:41,280
ver con ofrecer distintas opciones para crear un objeto de una clase en particular esto lo lograremos

7
00:00:41,520 --> 00:00:47,470
creando diferentes constructores con distintos argumentos ya sea en número o en tipo de dato.

8
00:00:48,000 --> 00:00:53,850
Recordemos que el nombre del constructor es igual al nombre de la clase en Java respetando que Java

9
00:00:53,880 --> 00:00:56,860
es sensible a mayúsculas y minúsculas.

10
00:00:57,120 --> 00:01:03,660
Por lo tanto siempre que encontremos un método que sea igual al nombre de la clase y que no regrese

11
00:01:03,660 --> 00:01:10,230
ningún tipo de dato entonces será un constructor de la clase pudiendo existir varios dentro de la misma

12
00:01:10,230 --> 00:01:10,680
clase

13
00:01:17,130 --> 00:01:23,310
podemos decir entonces que la sobrecarga de un constructor es ofrecer más opciones para poder construir

14
00:01:23,340 --> 00:01:25,250
un objeto de una clase.

15
00:01:25,260 --> 00:01:27,690
Esto ya lo hemos realizado anteriormente.

16
00:01:27,690 --> 00:01:32,530
Sin embargo vamos a formalizar este concepto en el código mostrado.

17
00:01:32,530 --> 00:01:39,410
Podemos observar que en primer lugar se ha creado el constructor vació de la clase persona en la línea

18
00:01:39,410 --> 00:01:43,690
4 es decir sin argumentos.

19
00:01:43,690 --> 00:01:49,570
Sin embargo muchas veces queremos ofrecer más opciones de construir un objeto de tipo persona y esto

20
00:01:49,570 --> 00:01:53,650
lo queremos ofrecer desde el momento de la creación del objeto.

21
00:01:53,830 --> 00:01:58,450
Por lo tanto lo que vamos a hacer es agregar un nuevo constructor de esta clase.

22
00:01:58,570 --> 00:02:05,500
Podemos observar que la firma inicial es la misma públic persona que es el nombre de nuestra clase y

23
00:02:05,500 --> 00:02:10,830
también el siguiente constructor que estamos creando también indica públic persona.

24
00:02:11,200 --> 00:02:13,240
Hasta aquí es exactamente lo mismo.

25
00:02:13,300 --> 00:02:19,390
Sin embargo para sobrecargar un constructor basta con diferenciarlo por medio de los argumentos de este

26
00:02:19,390 --> 00:02:20,630
constructor.

27
00:02:20,740 --> 00:02:26,590
Por ejemplo podemos observar que nuestro constructor vació no contiene ningún argumento y la sobrecarga

28
00:02:26,590 --> 00:02:34,090
del constructor básicamente lo estamos diferenciando por medio de los argumentos nombre y edad de esta

29
00:02:34,090 --> 00:02:41,630
forma estamos sobrecargando el constructor que ya habíamos definido previamente y básicamente este constructor

30
00:02:41,660 --> 00:02:49,140
únicamente se encarga de inicializar los argumentos respectivos de esta clase lo importante al momento

31
00:02:49,140 --> 00:02:56,070
de sobrecargar un constructor es observar los tipos de los argumentos de nuestro constructor ya que

32
00:02:56,130 --> 00:03:02,400
estos son los que hacen precisamente la diferencia para sobrecargar un constructor y poder manejar diferentes

33
00:03:02,400 --> 00:03:03,750
argumentos.

34
00:03:03,750 --> 00:03:09,240
Los nombres de los argumentos realmente no se toman en cuenta para la sobrecarga y únicamente se revisan

35
00:03:09,240 --> 00:03:16,110
los tipos así como el orden de definición de cada uno de estos tipos por lo que no debe existir otro

36
00:03:16,110 --> 00:03:20,580
constructor con los mismos tipos ya definidos en el mismo orden.

37
00:03:20,580 --> 00:03:26,730
Sin embargo segregamos un constructor llamado Persona con los argumentos invertidos es decir primero

38
00:03:26,790 --> 00:03:28,860
INDC y posteriormente estrechen.

39
00:03:29,580 --> 00:03:36,360
Entonces este se considera otra sobrecarga de los constructores ya definidos es decir que el orden y

40
00:03:36,360 --> 00:03:39,550
el tipo de los argumentos sí importa.

41
00:03:39,690 --> 00:03:45,420
En resumen la sobrecarga de constructores es definir un constructor con el mismo nombre de la clase

42
00:03:45,660 --> 00:03:51,000
pero con distintos argumentos considerando el tipo y el orden de los mismos.

43
00:03:51,030 --> 00:03:57,180
Esto se hace con el objetivo de brindar varias opciones para la creación de nuestros objetos según la

44
00:03:57,180 --> 00:03:58,830
clase que estemos codificando

45
00:04:01,330 --> 00:04:04,340
uso de Diz en la sobrecarga de constructores.

46
00:04:04,450 --> 00:04:08,740
En ocasiones podemos tener llamadas entre constructores de la misma clase.

47
00:04:08,770 --> 00:04:11,350
Existen varias razones para realizar esta tarea.

48
00:04:11,350 --> 00:04:12,670
Veamos un ejemplo de ello

49
00:04:21,580 --> 00:04:27,970
supongamos que el constructor vació hace la tarea de asignar un valor al atributo Heydi persona.

50
00:04:27,970 --> 00:04:33,400
Por ejemplo nuestro constructor vació lo que está haciendo es inicializar el atributo Heydi persona

51
00:04:33,820 --> 00:04:37,400
y ésta es la única tarea que realiza este constructor vacío.

52
00:04:37,540 --> 00:04:43,660
Sin embargo desde un constructor sobrecargado podríamos reutilizar el código que ya ha definido el constructor

53
00:04:43,660 --> 00:04:44,350
vació.

54
00:04:44,560 --> 00:04:49,800
Para ello lo que vamos a hacer es mandar a llamar el constructor vació con la siguiente sintaxis Diz

55
00:04:50,100 --> 00:04:54,390
y entre paréntesis precisamente la llamada al constructor vacío.

56
00:04:54,430 --> 00:04:58,100
De esta manera se ejecuta el código del constructor vacío.

57
00:04:58,120 --> 00:05:03,250
Sin embargo este debe de ser la primera línea que debe existir dentro de un constructor si es que se

58
00:05:03,250 --> 00:05:09,460
va a utilizar y posteriormente lo que podemos hacer es seguir trabajando con los argumentos recibidos

59
00:05:09,460 --> 00:05:15,610
en este constructor en este caso terminamos de asignar los valores a los atributos restantes de esta

60
00:05:15,610 --> 00:05:23,440
clase para hacer esta llamada entre constructores utilizamos la palabra Diz y posteriormente especificamos

61
00:05:23,650 --> 00:05:29,520
los argumentos de la llamada al constructor que deseemos no necesariamente tiene que ser al constructor

62
00:05:29,520 --> 00:05:35,560
vació sino que podemos mandar a llamar cualquier otro constructor simplemente proporcionando los argumentos

63
00:05:35,860 --> 00:05:41,230
definiendo el tipo y el orden en el que se está también proporcionando estos argumentos.

64
00:05:41,350 --> 00:05:47,830
Así es que por medio de Diz y entre paréntesis los argumentos se puede mandar a llamar el constructor

65
00:05:47,830 --> 00:05:53,860
que deseemos así que esto realiza una llamada entre constructores de la misma clase para aprovechar

66
00:05:53,890 --> 00:06:01,450
el código ya definido en otros constructores en este ejercicio podemos observar algo más en este caso

67
00:06:01,450 --> 00:06:05,350
que el constructor sin argumentos es privado.

68
00:06:05,350 --> 00:06:12,640
Esto quiere decir que desde otra clase yo no podría crear un objeto de tipo Persona sin argumentos obligatoriamente

69
00:06:12,640 --> 00:06:18,930
tengo que utilizar este constructor o cualquier otro definido como público pero este constructor que

70
00:06:18,940 --> 00:06:26,050
es privado únicamente se va a poder utilizar dentro de esta misma clase así que con mayor razón este

71
00:06:26,050 --> 00:06:32,410
código no se va a poder utilizar sino únicamente dentro de esta misma clase y para ello es que nos sirve

72
00:06:32,470 --> 00:06:39,220
esta llamada al constructor y en este caso es una llamada a un constructor privado es algo extra de

73
00:06:39,220 --> 00:06:45,400
este ejercicio para que puedan observar que también podemos definir constructores privados esos constructores

74
00:06:45,580 --> 00:06:52,180
no son accesibles fuera de esta clase sino únicamente dentro de esta clase ya que si recordamos es precisamente

75
00:06:52,270 --> 00:07:00,210
el uso que le damos a la palabra reservada Privat así que en este caso de la clase persona debemos proporcionar

76
00:07:00,330 --> 00:07:07,020
un nombre y una edad forzosamente para poder crear un objeto de este tipo no podemos simplemente crear

77
00:07:07,110 --> 00:07:14,070
un objeto de tipo personas sin argumentos ya que este constructor es privado y de esta forma de manera

78
00:07:14,100 --> 00:07:20,610
interna la funcionalidad de asignar el valor de Heydi persona lo realiza el constructor vació de esta

79
00:07:20,610 --> 00:07:21,780
clase.

80
00:07:22,050 --> 00:07:27,990
La única condición para mandar a llamar a otro constructor desde otro constructor sobrecargado es que

81
00:07:27,990 --> 00:07:32,470
el uso de Diz sea la primera línea de código de este constructor.

82
00:07:32,550 --> 00:07:39,750
Por ello en esta línea 12 lo primero que se usa en el constructor es la llamada a bis así que esta la

83
00:07:39,750 --> 00:07:43,530
única restricción para mandar a llamar otro constructor dentro de esta misma clase.
