1
00:00:14,460 --> 00:00:19,220
Hola te saluda Ubaldo Acosta bienvenida y bienvenido nuevamente.

2
00:00:19,890 --> 00:00:22,350
Espero que estés listo para comenzar con esta elección.

3
00:00:23,440 --> 00:00:29,410
Vamos a estudiar el tema de clases y objetos y esto como hemos comentado es la base de la programación

4
00:00:29,470 --> 00:00:30,970
orientada a objetos.

5
00:00:31,000 --> 00:00:32,010
Estás listo.

6
00:00:32,010 --> 00:00:32,450
Vamos

7
00:00:36,510 --> 00:00:38,260
objetos en Java.

8
00:00:38,610 --> 00:00:45,120
Un objeto es la instancia de una clase es decir que a partir de nuestra plantilla es posible crear objetos

9
00:00:45,150 --> 00:00:52,810
en concreto con los cuales podemos trabajar es decir cambiar sus valores y llamar a sus métodos.

10
00:00:52,860 --> 00:00:58,080
Más adelante veremos que hay casos en los que podremos trabajar directamente con la clase.

11
00:00:58,110 --> 00:01:05,070
A esto se le llama contexto estático pero de momento estaremos estudiando el contexto dinámico es decir

12
00:01:05,340 --> 00:01:10,130
necesitamos crear una instancia de una clase para poder trabajar con ella.

13
00:01:10,410 --> 00:01:16,200
Como podemos observar en la figura tenemos la clase de persona y a partir de esta plantilla podemos

14
00:01:16,200 --> 00:01:21,690
crear objetos concretos para poder trabajar con sus características y atributos.

15
00:01:21,690 --> 00:01:27,420
Por ejemplo hemos creado dos objetos de tipo personal y cada uno tiene características similares pero

16
00:01:27,420 --> 00:01:29,030
con valores distintos.

17
00:01:29,340 --> 00:01:37,920
Las características son por ejemplo nombre apellido color género escolaridad etc. y cada uno de los

18
00:01:37,920 --> 00:01:41,480
objetos se les asigna estas características.

19
00:01:41,550 --> 00:01:47,220
De esta manera la clase no sirve sólo para indicar qué características tendrán los objetos que vamos

20
00:01:47,220 --> 00:01:47,720
a crear.

21
00:01:48,840 --> 00:01:51,240
Veamos ahora la sintaxis para crear un objeto

22
00:02:00,720 --> 00:02:02,140
para definir un objeto.

23
00:02:02,220 --> 00:02:08,100
Vamos a utilizar la palabra reservada Niu esta palabra en Java significa en términos simples que vamos

24
00:02:08,100 --> 00:02:12,240
a crear una nueva variable de tipo Persona para crear un objeto.

25
00:02:12,330 --> 00:02:20,970
Vamos a utilizar una línea de código como sigue vamos a indicar el tipo es decir el nombre de la plantilla

26
00:02:21,000 --> 00:02:22,770
o nombre de la clase.

27
00:02:22,770 --> 00:02:31,340
Posteriormente el nombre de la variable que puede ser cualquier nombre posteriormente igual indicamos

28
00:02:31,370 --> 00:02:39,660
el operador new y éste es el que nos va a permitir crear un nuevo objeto y posteriormente indicamos

29
00:02:39,750 --> 00:02:48,490
nuevamente el tipo del cual queremos crear este objeto posteriormente vamos a ver que esto se le conoce

30
00:02:48,490 --> 00:02:56,140
como constructor de la clase pero en este caso vamos a utilizar lo que se conoce como constructor vacío.

31
00:02:56,140 --> 00:03:03,190
Esto simplemente nos va a permitir crear un nuevo objeto a partir de la plantilla o de la clase llamada

32
00:03:03,220 --> 00:03:11,500
persona después de que esta línea se ejecuta la variable P1 podrá acceder a un objeto de tipo persona

33
00:03:12,190 --> 00:03:14,600
cada vez que se manda llamar la palabra New.

34
00:03:14,650 --> 00:03:19,530
Se creará un nuevo objeto de tipo personal y contendrá sus propios valores.

35
00:03:19,570 --> 00:03:22,870
Por ejemplo podríamos definir un objeto llamado Persona

36
00:03:27,200 --> 00:03:36,020
pero en este caso que sea una variable distinta un objeto distinto llamado P2 y cada que utilicemos

37
00:03:36,020 --> 00:03:41,240
la palabra reservada New e indiquemos el tipo respectivo

38
00:03:47,400 --> 00:03:56,640
estamos creando un nuevo objeto y esta variable básicamente es una referencia hacia el nuevo objeto

39
00:03:56,640 --> 00:03:57,810
que hemos creado.

40
00:03:57,810 --> 00:04:05,450
A continuación vamos a platicar más respecto a este concepto de referencias esta nueva variable P2 apunta

41
00:04:05,510 --> 00:04:11,570
a un nuevo objeto de tipo personal y por lo tanto contendrá valores distintos a la variable P1.

42
00:04:11,570 --> 00:04:18,680
Así cada nuevo objeto contendrá valores distintos en los atributos de nombre apellido paterno y apellido

43
00:04:18,680 --> 00:04:26,900
materno que son los atributos que se definieron en la plantilla la sintaxis New persona hace referencia

44
00:04:26,960 --> 00:04:32,120
al nombre de la clase de la cual queremos crear una nueva instancia es decir un objeto.

45
00:04:32,720 --> 00:04:38,860
Además estamos haciendo uso del concepto de constructor de la clase como hemos comentado este concepto

46
00:04:38,870 --> 00:04:40,640
lo estudiaremos más adelante.

47
00:04:40,700 --> 00:04:47,510
Aquí solo debemos notar que para llamar al constructor de la clase se pone el nombre de la clase y posteriormente

48
00:04:47,510 --> 00:04:54,200
se utilizan los paréntesis en este caso un constructor sin argumentos o también conocido como constructor

49
00:04:54,200 --> 00:04:55,030
vacío.

50
00:04:55,220 --> 00:05:01,880
Pero veremos posteriormente que podemos enviar argumentos al momento de crear un objeto en nombre de

51
00:05:01,880 --> 00:05:08,240
la variable puede ser cualquiera que elijamos pero no debe tener caracteres especiales o espacios para

52
00:05:08,240 --> 00:05:10,490
acceder a los atributos de nuestras clases.

53
00:05:10,550 --> 00:05:13,380
Vamos a utilizar el operador punto.

54
00:05:13,730 --> 00:05:16,850
Vamos a ver ahora cómo acceder a los valores de nuestra clase

55
00:05:22,650 --> 00:05:25,170
para acceder a los atributos de nuestras clases.

56
00:05:25,170 --> 00:05:33,060
Vamos a utilizar el operador punto a través de este operador se liga el nombre del objeto con el nombre

57
00:05:33,060 --> 00:05:35,170
del atributo de la clase.

58
00:05:35,250 --> 00:05:41,720
Por ejemplo podemos observar en nuestro código que tenemos la variable P 1 punto.

59
00:05:41,760 --> 00:05:47,730
Este es el operador que nos va a permitir acceder a los atributos de nuestra clase en este caso al atributo

60
00:05:47,730 --> 00:05:54,450
de nombre y le vamos a asignar el valor de Armando a este atributo y así con cada uno de los atributos

61
00:05:54,450 --> 00:06:02,160
de nuestra clase podemos modificarlos de la misma forma por medio del operador punto indicando el nombre

62
00:06:02,400 --> 00:06:05,250
de la variable del objeto que hemos creado.

63
00:06:05,250 --> 00:06:12,600
Posteriormente el punto y finalmente el atributo o método que queremos utilizar de nuestra clase.

64
00:06:12,600 --> 00:06:18,720
ELECCIONES POSTERIORES veremos en términos más técnicos lo que hace la palabra New pero para esta elección

65
00:06:18,810 --> 00:06:26,300
es suficiente con saber que nos permite crear nuevos objetos más allá de la palabra Neo.

66
00:06:26,620 --> 00:06:31,850
La palabra New solicita espacio de memoria de manera dinámica para poder almacenar un objeto.

67
00:06:32,140 --> 00:06:38,790
Vamos a utilizar la sintaxis generalmente como sigue vamos a definir primero una variable que almacena

68
00:06:38,850 --> 00:06:46,500
una referencia y posteriormente utilizar la palabra New indicando el tipo de la clase que vamos a crear

69
00:06:46,560 --> 00:06:53,550
un objeto en la figura podemos observar que en primer lugar declaramos una variable de tipo de la clase

70
00:06:53,550 --> 00:07:02,680
persona esta variable se llama p 1 y podemos observar que el efecto que esto tiene en la memoria aullaba

71
00:07:02,950 --> 00:07:09,190
es que se crea espacio para esta variable llamada P1 pero esa variable aún no tiene ningún valor asignado

72
00:07:09,610 --> 00:07:11,290
ya que solo se declaró la variable

73
00:07:14,330 --> 00:07:20,150
en esta segunda sentencia podemos observar que además de declarar una variable de tipo personal llamada

74
00:07:20,150 --> 00:07:27,080
P2 se le asigna la referencia de un objeto de tipo Persona para la creación de este objeto de ese tipo

75
00:07:27,080 --> 00:07:33,470
de personas se utiliza la palabra Niu seguida del nombre de la clase de la cual queremos crear el objeto

76
00:07:33,950 --> 00:07:39,170
y finalmente los paréntesis es el tipo de constructor que vamos a utilizar para la creación de este

77
00:07:39,170 --> 00:07:40,550
objeto.

78
00:07:40,640 --> 00:07:46,220
El concepto de constructor lo estudiaremos a detalle posteriormente pero sólo pensemos en el constructor

79
00:07:46,490 --> 00:07:52,580
como la forma en que queremos crear nuestros objetos de manera inicial podemos crear por ejemplo un

80
00:07:52,580 --> 00:08:00,620
objeto de tipo Persona ya con valores definidos como son nombre apellido etc. o como en este caso podemos

81
00:08:00,620 --> 00:08:07,040
simplemente crear el objeto de tipo Persona sin proporcionar los valores de nombre y apellido y posteriormente

82
00:08:07,040 --> 00:08:12,980
podremos cambiar y o asignar estos valores a los atributos de nuestro objeto de tipo persona

83
00:08:16,980 --> 00:08:25,440
el efecto en memoria que tiene esta línea de código es que se crea un objeto pero esta variable P2 apunta

84
00:08:25,770 --> 00:08:33,660
a un objeto de tipo Persona y este objeto es quien contiene finalmente los atributos de nombre apellido

85
00:08:33,860 --> 00:08:35,010
etc..

86
00:08:35,310 --> 00:08:41,940
Debemos aclarar que los tipos primitivos como no etcétera no son objetos por lo tanto para declarar

87
00:08:41,940 --> 00:08:48,970
variables de estos tipos no se necesita utilizar la palabra reservada New recordemos que la palabra

88
00:08:48,970 --> 00:08:55,690
Niu lo que hace internamente es solicitar espacio de memoria para la creación de un objeto.

89
00:08:55,810 --> 00:09:01,420
Por lo tanto la palabra Nioh básicamente lo que hizo fue reservar espacio de memoria para crear este

90
00:09:01,420 --> 00:09:09,310
objeto y una vez que se crea este objeto se asigna la referencia a esta variable persona de alguna manera

91
00:09:09,370 --> 00:09:16,480
es el mismo efecto que se logra creando este objeto y asignando la referencia a la variable llamada

92
00:09:16,480 --> 00:09:17,740
persona P2.

93
00:09:17,950 --> 00:09:25,540
Y finalmente esta es la variable que nos va a permitir acceder a nuestro objeto que hemos creado así

94
00:09:25,540 --> 00:09:31,840
que la palabra Niu lo que hace internamente es solicitar espacio de memoria para la creación de un nuevo

95
00:09:31,900 --> 00:09:32,870
objeto.

96
00:09:33,100 --> 00:09:35,830
Podemos crear tantos objetos como necesitemos.

97
00:09:35,830 --> 00:09:42,160
Sin embargo la memoria es finita y por lo tanto podríamos recibir un error al momento de crear demasiados

98
00:09:42,160 --> 00:09:47,920
objetos en tiempo de ejecución dentro de nuestros programas en temas posteriores veremos el manejo de

99
00:09:47,920 --> 00:09:52,990
errores y cómo tratar los más comunes como la falta de memoria en Java.

100
00:09:52,990 --> 00:09:59,410
En conclusión una clase define un nuevo tipo y un objeto es una instancia de este nuevo tipo que ya

101
00:09:59,410 --> 00:10:01,420
se ha creado previamente.

102
00:10:01,420 --> 00:10:07,270
Podemos crear tantos objetos del tipo creado como necesitemos esto con la ayuda de la palabra new

103
00:10:12,180 --> 00:10:18,330
si recordamos elecciones previas mencionamos que el tipo string es una clase en Java pero con tratamiento

104
00:10:18,330 --> 00:10:24,270
especial debido a que este tipo de dato se utiliza en repetidas ocasiones en nuestros programas.

105
00:10:24,270 --> 00:10:30,210
Es posible omitir el uso de la palabra New y por lo tanto simplificar la creación de una variable de

106
00:10:30,210 --> 00:10:31,350
tipo String.

107
00:10:31,350 --> 00:10:35,110
De esta manera podemos omitir el uso de la palabra Neo

108
00:10:39,890 --> 00:10:41,930
y también el constructor

109
00:10:56,300 --> 00:11:02,420
podemos omitir la sintaxis mostrada ya que esa sería la sintaxis formal para crear un objeto de tipo

110
00:11:02,420 --> 00:11:03,250
destruí.

111
00:11:03,260 --> 00:11:09,260
Sin embargo podemos observar la sintaxis simplificada simplemente asignando una cadena.

112
00:11:09,260 --> 00:11:14,340
Esta cadena crea un objeto en Java y se asigna la referencia a la variable.

113
00:11:14,360 --> 00:11:15,310
Saludo.

114
00:11:15,380 --> 00:11:21,430
Ambas opciones son válidas pero normalmente utilizaremos más la opción sin utilizar el operador neo

115
00:11:22,620 --> 00:11:27,220
sólo no hay que olvidar que el tipo string es una clase y no un tipo primitivo.

116
00:11:27,240 --> 00:11:32,870
Este tipo de dato es la única excepción a la regla para crear objetos utilizando el operador Nio.

117
00:11:33,000 --> 00:11:38,250
Todas las demás clases deberán utilizar el operador Niu para poder crear un nuevo objeto.

118
00:11:38,880 --> 00:11:44,580
Empezaremos a utilizar estos tipos de datos en nuestros siguientes ejemplos y así nos vamos a ir familiarizando

119
00:11:44,580 --> 00:11:49,260
rápidamente con el uso del tipo string en Java y otros tipos que creemos.
