Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Clase 12-12-23 - 2 - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Bueno, pues venga, estábamos programando esta clase, ¿vale?
00:00:00
Por ahora habíamos dicho que una vez decidida la clase, esto empezaba
00:00:05
con la palabra CLAS, todo en minúscula, y el nombre que nosotros decidíamos
00:00:11
como pauta que deberíamos seguir de estilo, empezando en letra mayúscula
00:00:16
y lo más explicativa posible.
00:00:21
Vale, bueno, pues ¿ahora qué hacemos dentro?
00:00:23
¿Ahora qué hacemos dentro?
00:00:25
Pues dentro esencialmente hay dos partes.
00:00:27
A ver, yo todo lo que os voy contando es...
00:00:29
Iba a decir es pseudo-mentira, no es que sea mentira.
00:00:36
Lo que pasa es que, claro, hay que incorporar, robo, tantísimas cosas
00:00:38
que hay muchas cosas que no os voy a decir.
00:00:43
Entonces vos veis a lo mejor una clase, veis el programa y decís
00:00:45
¡Uy, pero esta parte me falta!
00:00:47
Vale, es que no podemos meternos todo de golpe ni hablarlo todo, ¿vale?
00:00:49
Vamos progresivamente.
00:00:53
Bueno, pues esencialmente una clase tiene dentro dos partes.
00:00:55
Dos partes.
00:01:03
Una parte es la de las propiedades
00:01:06
y otra parte es la de los métodos.
00:01:14
Esas dos partes son las que tiene, la de las propiedades y la de los métodos.
00:01:20
Bueno, pues en la parte de las propiedades, ¿qué codificamos?
00:01:26
Ahí codificamos las propiedades que hemos decidido nosotros
00:01:30
que necesitamos para caracterizar el pedido.
00:01:36
Ahí ponemos lo que nos interesa que caracterice a los pedidos.
00:01:39
Las cosas que nos interesan, no.
00:01:43
Entonces si hemos decidido, después de hacer un buen diseño,
00:01:46
que el pedido sólo necesita para caracterizarse su código y su descripción,
00:01:49
pues esas son sus dos propiedades, código y descripción.
00:01:56
Y ahora toca declararlas aquí.
00:01:59
¿Cómo se declaran las propiedades de una clase?
00:02:02
¿Cómo se declaran las variables?
00:02:05
Exactamente igual, no hay ninguna diferencia.
00:02:07
Bueno, pues si yo he decidido que una propiedad del pedido es el código,
00:02:09
pues tengo que pensar, vale, ¿y el código qué tipo de dato es?
00:02:13
Pues tiene que ser uno de los tipos de datos de Java que conocemos.
00:02:17
Venga, el código va a ser un número entero, vale,
00:02:20
pues declaro esa propiedad como declaro cualquier variable entera.
00:02:23
Int, tipo de dato y el nombre de la propiedad.
00:02:27
Entonces esto es como declarar una variable, exactamente igual.
00:02:35
Exactamente igual.
00:02:38
La puedo inicializar también, aunque eso por ahora vamos a dejarlo,
00:02:40
porque ya veremos eso qué implica.
00:02:43
Sigue el mismo criterio de estilo que las propiedades que empiecen con minúscula,
00:02:48
porque en realidad eso es una declaración de variable,
00:02:54
pero es una declaración de variable hecha dentro de una clase.
00:02:57
¿Eso qué significa?
00:03:01
Que esta variable es una propiedad del pedido.
00:03:02
Eso significa, vale.
00:03:07
Bueno, pues ya tengo mi primera propiedad declarada.
00:03:10
Pues los pedidos se caracterizan por su código.
00:03:13
Pues ya está, pongo aquí su propiedad, vale,
00:03:16
y la declaro como cualquier otra variable.
00:03:19
A ver qué más propiedades hemos decidido que interesan para caracterizar un pedido.
00:03:21
Hemos dicho que la descripción.
00:03:25
Bueno, pues ahora pensamos, vale, la descripción,
00:03:27
¿qué tipo de dato le interesa?
00:03:29
Pues si es una cadena pedido de bolis.
00:03:31
Pues string, es el tipo de dato que le interesa.
00:03:33
Pues entonces lo declaramos como cualquier otra variable.
00:03:36
String, string y el nombre de la variable.
00:03:39
Vale, entonces nombres lo más explicativos posibles.
00:03:48
Cuando hay una clase con propiedades X e Y,
00:03:53
eso es horroroso.
00:03:56
¿X y qué propiedad es X?
00:03:57
¿Y qué propiedad es Y?
00:03:59
Sin embargo aquí uno ve código de descripción
00:04:00
y rápidamente ya entiende que va a contener esto.
00:04:03
Pues esto va a contener un código, el del pedido.
00:04:07
Esto va a contener una descripción, el del pedido.
00:04:09
Si yo la llamo X e Y, ¿qué va a contener X e Y?
00:04:11
Lo sabrá él que las ha declarado y las va a usar,
00:04:14
pero nadie más sabe qué va a contener X e Y.
00:04:16
Entonces vamos a elegir nombres explicativos
00:04:19
que empiecen con minúscula, no obligatorio,
00:04:22
pero es un criterio de estilo que deberíamos seguir, recomendable,
00:04:24
y tipo de dato de los que conocemos, de Java.
00:04:30
Bueno, pues nuestro pedido.
00:04:33
Si ya no tiene más propiedades,
00:04:34
porque no le hacen falta más,
00:04:36
ya hemos acabado con la parte de propiedades,
00:04:38
ya la hemos terminado.
00:04:39
Ya está, ya no hay más que poner nada más.
00:04:40
Cuidado.
00:04:43
Entonces ahora habría que hacer la parte de métodos.
00:04:44
Pero antes de meternos con la parte de métodos,
00:04:48
vamos a entender ahora cómo funciona una aplicación
00:04:50
que tiene pedidos.
00:04:53
Porque esta clase pedido, ¿ahora qué?
00:04:54
¿Y los pedidos dónde están?
00:04:55
¿Y el pedido qué código tiene?
00:04:57
¿Y cuántos pedidos tengo?
00:04:59
¿Y si mi aplicación tiene 20 pedidos?
00:05:00
¿Qué tengo, 20 clases?
00:05:03
O sea, ese tipo de cosas se han quedado como...
00:05:04
¿Y qué significa una clase pedido?
00:05:06
¿Y ahora esto cómo se usa?
00:05:08
¿Cómo se usa esto?
00:05:09
Bueno.
00:05:11
A ver, todo esto que estamos viendo ahora
00:05:14
es lo más importante de entender.
00:05:16
Porque una vez entendido el funcionamiento,
00:05:18
luego ya los detalles de cómo se codifica esto,
00:05:21
cómo se codifican los métodos,
00:05:24
son detalles de sintaxis.
00:05:25
Eso no es el problema.
00:05:27
El problema es entender la filosofía
00:05:28
de la relación entre dos objetos.
00:05:30
Bueno, pues hasta aquí estamos simplemente
00:05:32
en que hemos decidido que haya una clase pedido
00:05:34
porque mi aplicación va a trabajar con pedidos.
00:05:37
Va a trabajar con ellos.
00:05:40
Entonces tiene sentido que haya una clase pedido.
00:05:41
Tiene sentido.
00:05:43
Y una vez que lo he decidido,
00:05:45
codifico, declaro las propiedades que lo caracterizan.
00:05:47
Ahora ya vendría la pregunta natural de
00:05:51
¿y mi aplicación funcionando dónde está?
00:05:53
¿Dónde está mi aplicación que yo arranco,
00:05:55
le doy al play de la aplicación
00:05:57
y dónde está esa aplicación?
00:05:59
¿Y pedidos?
00:06:01
¿Cuántos puedo tener?
00:06:02
¿20, 30?
00:06:03
Porque ahí solo tengo una clase.
00:06:04
¿Puedo tener 20 pedidos?
00:06:06
Pues sí, eso es una aplicación que trabaja con pedidos
00:06:07
y debería poder tener 30, 40, 50.
00:06:09
Entonces, ¿qué?
00:06:11
¿Eso cómo encaja con que haya una sola clase?
00:06:12
¿Cómo lo ha...?
00:06:14
¿Cómo encaja?
00:06:15
Bueno, pues entonces,
00:06:16
vamos a seguir construyendo esta mini aplicación.
00:06:18
Vale, pues efectivamente
00:06:22
tiene que haber una aplicación que arranque en algún lado.
00:06:24
Tiene que haber una aplicación que arranque.
00:06:27
Que yo le dé al play y la aplicación arranque.
00:06:28
Para que empiece yo a poder trabajar con pedidos y con cosas.
00:06:30
Tiene que haber una aplicación que arranque.
00:06:33
Efectivamente.
00:06:35
Bueno, pues en mi aplicación,
00:06:36
aparte de mis clases entidad,
00:06:38
mi clase pedido, mi clase cliente.
00:06:40
Tiene que haber una clase.
00:06:42
Tiene que haber otra más.
00:06:44
Tiene que haber otra.
00:06:46
Que tenga el famoso método ese
00:06:48
que ya nos hemos tudo de memoria.
00:06:51
Public, static, void, main, bla, bla, bla.
00:06:53
Este método que hemos escrito tantísimas veces.
00:07:03
Bueno.
00:07:17
Vale.
00:07:24
Vale, pues otra clase más de mi aplicación.
00:07:26
Otra más.
00:07:29
Tiene que ser una clase que no es ni entidad ni es nada.
00:07:30
No es ni pedido, ni es cliente, ni es nada.
00:07:33
No es entidad ni es nada.
00:07:35
Es una clase
00:07:36
que tiene
00:07:38
este método, esta función,
00:07:40
como la queremos llamar.
00:07:42
La veremos aquí dentro, que la hemos usado siempre.
00:07:43
Que es el punto de arranque de la aplicación.
00:07:45
Aquí es donde la aplicación arranca.
00:07:48
Ahí arranca.
00:07:51
Entonces, esto es una clase sin más.
00:07:56
De hecho, empieza con class.
00:07:58
La hemos hecho hasta ahora.
00:08:00
Empieza con class y le hemos dado un nombre.
00:08:01
El nombre que nos dé la gana.
00:08:03
Bueno, como esta clase,
00:08:04
que es una clase más,
00:08:06
es la clase que es el punto de arranque
00:08:07
de la aplicación, de la aplicación arranca,
00:08:09
pues normalmente
00:08:11
uno la suele ver identificada
00:08:13
pues con el nombre de main en mayúscula
00:08:14
o principal,
00:08:16
o como uno la quiera llamar.
00:08:18
Es la clase, es el punto de arranque.
00:08:20
Porque la aplicación,
00:08:22
cuando se está ejecutando,
00:08:24
es una sentencia tras otra, eso sí o sí.
00:08:26
Que las sentencias estén en clases diferentes.
00:08:28
Da igual, pero es esta
00:08:30
y de aquí saltará aquí, de aquí saltará aquí.
00:08:32
Bueno, pues el punto de arranque,
00:08:34
donde la aplicación arranca, ¿cuál va a ser?
00:08:36
Aquí.
00:08:37
Tendré yo mi clase principal
00:08:39
con esto dentro
00:08:41
y aquí arranca mi aplicación.
00:08:43
Entonces, cuando mi aplicación
00:08:45
con todas las clases, las que sean
00:08:46
uno o mil, en este caso dos,
00:08:48
esta y esta, en este caso dos,
00:08:50
cuando mi aplicación arranque,
00:08:52
donde va a arrancar es aquí.
00:08:54
En la primera sentencia del main.
00:08:56
Ahí es donde va a arrancar.
00:08:58
Y ahí empiezan a pasar cosas.
00:09:00
Bueno, y ahí que empieza a pasar
00:09:02
lo que a mí me dé la gana.
00:09:04
Empieza a pasar lo que a mí me dé la gana.
00:09:06
Vale, pues ¿qué es lo primero que vamos a hacer?
00:09:08
En esta aplicación.
00:09:10
Pues crear un pedido.
00:09:12
No es una aplicación que trabaja con pedidos,
00:09:14
vamos a crear uno.
00:09:16
Voy a escribir esto aquí un poquito mejor
00:09:18
para traer espacio.
00:09:20
¿Qué?
00:09:26
¿En qué método?
00:09:28
No, no, no.
00:09:30
Hemos dicho que esto por ahora
00:09:32
lo dejamos vacío, ¿vale?
00:09:34
Puede estar vacío, no es obligatorio que tenga algo.
00:09:36
Esta clase tal y como está, si la escribís,
00:09:38
es una clase perfectamente válida.
00:09:40
Lo que importa es que las dos partes estén rellenas.
00:09:42
Vamos a hacer la principal,
00:09:44
esta de aquí.
00:09:46
Vale, y esta clase principal es la que tiene
00:10:02
ese main ahí.
00:10:04
Como es muy largo, bueno,
00:10:08
lo pongo así.
00:10:12
Vale.
00:10:16
Vale, entonces tengo dos clases,
00:10:22
esta y esta.
00:10:24
Arranco la aplicación,
00:10:26
la máquina virtual automáticamente
00:10:28
se va a buscar este main,
00:10:30
se va a buscar esto,
00:10:32
navega por todas las clases,
00:10:34
ya veremos también cómo, tenemos millones de cosas que ver.
00:10:36
La máquina virtual, cuando yo le digo
00:10:38
arranca la aplicación que tiene todas las clases,
00:10:40
todas, arráncala, el navega, blablabla,
00:10:42
hasta que encuentre esto.
00:10:44
Como no encuentre esto, te dice,
00:10:46
no puedo arrancar la aplicación.
00:10:48
Y como haya dos clases
00:10:50
que las dos tengan eso,
00:10:52
tampoco puede porque se hace un lío.
00:10:54
Con lo cual tiene que haber una única clase
00:10:56
que tenga esto.
00:10:58
Pues entonces, arrancamos esta aplicación
00:11:00
con dos clases.
00:11:02
La máquina virtual, blablabla, se va buscando,
00:11:04
ah, vale, ya lo encontré,
00:11:06
ya tengo donde arrancar, aquí arranco.
00:11:08
Bueno, ¿qué es lo primero que vamos a decirle que haga?
00:11:10
Pues que cree un objeto pedido.
00:11:12
Y aquí ya he mencionado
00:11:14
la palabra clave, objeto.
00:11:16
Yo hasta ahora no la he mencionado.
00:11:18
Es, programación de entradas de objetos,
00:11:20
es como se llama, y por ahora no he mencionado
00:11:22
la palabra objeto. He mencionado la palabra clase,
00:11:24
que es esto.
00:11:26
Entonces, clase, ¿qué es?
00:11:28
Clase tiene que verlo como una plantilla vacía.
00:11:30
Una clase indica
00:11:32
cuando haya pedidos,
00:11:34
cuando haya, que todavía no los hay en ningún lado,
00:11:36
cuando haya,
00:11:38
esos pedidos se caracterizarán
00:11:40
por un código y una descripción.
00:11:42
Eso es lo que significa clase.
00:11:44
Una plantilla
00:11:46
de lo que puede haber
00:11:48
en el futuro, y si lo hay,
00:11:50
qué propiedades va a tener.
00:11:52
Pero todavía no hay ningún objeto pedido
00:11:54
concreto. ¿Vale?
00:11:56
Es como
00:11:58
persona sería
00:12:00
la clase.
00:12:02
Y ahora ya, de esa clase,
00:12:04
hay casos concretos, ¿no?
00:12:06
Pues ya es, Adrián, que es un caso
00:12:08
concreto de persona,
00:12:10
Miguel, que es otro caso concreto de persona,
00:12:12
Alejandro es otro caso concreto de persona.
00:12:14
Pues aquí igual.
00:12:16
Del concepto pedido,
00:12:18
que está aquí declarado en plan plantilla,
00:12:20
es decir, bueno, cuando haya
00:12:22
pedidos, tendrán código y
00:12:24
descripción. Pues de la clase pedido,
00:12:26
que es la descripción del concepto,
00:12:28
ahora ya habrá pedidos concretos.
00:12:30
Pedido de bolis, pedido
00:12:32
de gomas, pedido de sacapuntas,
00:12:34
puede haber uno o mil
00:12:36
pedidos de estos.
00:12:38
Pues cada uno de los casos concretos
00:12:40
de una clase es el objeto.
00:12:42
¿Vale?
00:12:44
Bueno, pues la clase entonces es
00:12:46
la plantilla que se
00:12:48
escribe y se declara una única
00:12:50
vez, y que te dice
00:12:52
cuando haya de esto
00:12:54
tendrá estas propiedades, pero
00:12:56
todavía no hay nada, esta es la plantilla,
00:12:58
y el objeto es cada uno
00:13:00
de los casos ya concretos que
00:13:02
existen de pedido.
00:13:04
¿Vale?
00:13:06
En el otro ejemplo,
00:13:08
la persona como tal no existe,
00:13:10
la persona es un concepto,
00:13:12
es un concepto platónico, la persona,
00:13:14
quien existe es Adrián, Miguel,
00:13:16
Alejandro, la persona no, la persona
00:13:18
es una definición, pero no
00:13:20
existe, es una definición.
00:13:22
Luego ya existen casos concretos, objetos
00:13:24
concretos. Pues esto igual,
00:13:26
esto es una definición,
00:13:28
es un concepto, y ahora
00:13:30
ya existen
00:13:32
todos los casos
00:13:34
concretos de pedido que la aplicación quiera,
00:13:36
si quiere 20, 20, si quiere 36, 37,
00:13:38
todos los que quiera, y cada uno
00:13:40
de esos casos concretos es un
00:13:42
objeto. ¿Vale?
00:13:44
Luego tenéis que tener muy clara
00:13:46
la diferencia entre
00:13:48
clase y objeto.
00:13:50
¿Vale?
00:13:52
Primera cosa con la que tenéis que ir muy clara hoy en la
00:13:54
cabeza, clase y objeto.
00:13:56
La clase es la plantilla. ¿Vale?
00:13:58
Pues ahora ya cuando la aplicación arranca,
00:14:00
ahora ya la aplicación
00:14:02
lo que ya hace es crear objetos concretos.
00:14:04
Ahora ya sí,
00:14:06
cuando la aplicación entra en ejecución,
00:14:08
ahora ya aparecen
00:14:10
los pedidos concretos, aparecen
00:14:12
los objetos, en el momento en que eso arranca.
00:14:14
Cuando todavía no ha arrancado,
00:14:16
esto está escrito en los ficheritos guardados,
00:14:18
aquí no hay ningún objeto ni nada.
00:14:20
El objeto aparece
00:14:22
cuando la aplicación ya arranca, cada pedido
00:14:24
concreto. Bueno, pues vamos
00:14:26
a hacer, vamos a crear un objeto.
00:14:28
Aquí.
00:14:30
Uno concreto.
00:14:34
¿Vale?
00:14:40
Pues el objeto
00:14:42
ya es un caso concreto
00:14:44
de esta plantilla, es un caso
00:14:46
concreto, de los mil que puede
00:14:48
haber, uno concreto.
00:14:50
Bueno, pues lo primero que tengo que decidir es darle un nombre.
00:14:52
Darle un nombre.
00:14:54
¿Vale? Igual que él se llama Adrián, y él se llama
00:14:56
Miguel, siendo personas,
00:14:58
pues el pedido tiene que tener su propio nombre
00:15:00
para distinguirlo del resto de los objetos
00:15:02
pedido. Pedido
00:15:04
bolis. Pues venga, pedido bolis,
00:15:06
que es muy bonito el nombre. Pues ya está,
00:15:08
le doy su nombre.
00:15:10
Pedido bolis.
00:15:12
Ahora,
00:15:14
tengo que indicar que este objeto
00:15:16
pertenece a esta clase,
00:15:18
que es un objeto pedido
00:15:20
y no un objeto cliente, un objeto mesa.
00:15:22
Pues lo pongo
00:15:24
poniéndolo delante como si ese fuera su tipo
00:15:26
de dato. Y es que lo es.
00:15:28
¿Veis? Pedido
00:15:30
y el nombre que a mí me dé la gana.
00:15:32
Entonces, es
00:15:34
exactamente igual que cuando declaro una variable.
00:15:36
Cuando declaramos una variable entera
00:15:38
poníamos int
00:15:40
y el numerito.
00:15:42
Perdón, y el nombre.
00:15:44
Este es el nombre que yo decidía,
00:15:46
N, el que yo decidía,
00:15:48
N, y aquí ponía el
00:15:50
tipo de dato que iba a contener.
00:15:52
Pues, con el objeto
00:15:54
igual, yo decido el nombre
00:15:56
de mi objeto, el que
00:15:58
me dé la gana el nombre, un nombre
00:16:00
concreto, Miguel, Adrián,
00:16:02
un nombre concreto, y digo
00:16:04
de qué tipo es ese objeto.
00:16:06
Pues este objeto es de tipo pedido.
00:16:08
Igual que aquí el numerito
00:16:10
N es de tipo entero.
00:16:12
Pues este objeto es de tipo pedido.
00:16:14
¿Vale?
00:16:16
Bueno, he hecho parte
00:16:18
para crear un objeto, pero no he hecho todo.
00:16:20
¿Qué he hecho con eso?
00:16:22
He hecho
00:16:24
simplemente esto.
00:16:26
Pues
00:16:28
cuando la máquina virtual se encuentre esta
00:16:30
ya automáticamente me crea
00:16:32
ahí una variable
00:16:34
a la que le da ese nombre
00:16:36
igual que cuando se encuentra esto me crea una variable
00:16:38
¿verdad? a la que llama N.
00:16:40
Igual que cuando se encuentra esto se crea N,
00:16:42
un espacio para el numerito entero.
00:16:44
Pues aquí igual, se crea en memoria principal
00:16:46
una variable que se llama
00:16:48
pedidoBolis
00:16:50
¿y qué va a contener esa variable?
00:16:52
Pues esta variable al ser de tipo
00:16:54
objeto, al ser de tipo
00:16:56
objeto, porque su tipo de dato es una
00:16:58
clase, no un primitivo
00:17:00
es una clase, al ser de tipo objeto
00:17:02
lo que contiene esa variable
00:17:04
es una dirección de memoria
00:17:06
igual que los Arrays.
00:17:08
Cuando declaramos un Array, en realidad
00:17:10
el Array contiene la dirección de memoria.
00:17:12
Pues cuando uno declara una variable
00:17:14
que es de tipo objeto
00:17:16
porque su tipo es el de una clase
00:17:18
lo que en realidad está
00:17:20
haciendo aparecer en memoria
00:17:22
es un espacio con ese nombre
00:17:24
que contiene
00:17:26
una dirección de memoria
00:17:28
y en esa dirección
00:17:30
esa dirección ya apunta
00:17:32
al espacio para contener los datos
00:17:34
del objeto concreto.
00:17:36
Este objeto
00:17:38
tiene que tener dentro
00:17:40
su código y descripción
00:17:42
porque los objetos tienen su código y descripción
00:17:44
entonces esta dirección de memoria
00:17:46
tiene que apuntar a un sitio
00:17:48
para que quepan
00:17:50
dentro el código y la descripción
00:17:52
igual que cuando uno declara un Array
00:17:54
sabe que automáticamente
00:17:56
aparece una variable en memoria
00:17:58
con la dirección
00:18:00
y esa dirección me lleva al espacio
00:18:02
para contener todas las posiciones
00:18:04
pues aquí hemos hecho esto
00:18:06
pero con esa línea sin más
00:18:08
esta dirección de memoria
00:18:10
está a medias
00:18:12
se queda apuntando
00:18:14
a lo que llamamos null
00:18:16
en Java
00:18:18
que null es espacio inhábil
00:18:20
la nada de memoria RAM
00:18:22
espacio inhabilitado
00:18:24
solo con esta línea
00:18:26
yo tengo la dirección de memoria
00:18:28
se me ha pedido Boris
00:18:30
pero ahora mismo apunta a un espacio inhabilitado
00:18:32
vale
00:18:34
pues siguiente paso
00:18:36
tendremos que crear
00:18:38
vamos a crear el espacio
00:18:40
para ya los datos de este objeto
00:18:42
en este caso serían dos
00:18:44
para código
00:18:46
y descripción
00:18:48
vale
00:18:50
para código y descripción
00:18:52
vamos a crear esto
00:18:54
bueno pues como creamos el espacio
00:18:56
pues muy parecido a lo que hacíamos con Arrays
00:18:58
ya en la misma línea en la que lo declaramos
00:19:00
vamos a
00:19:02
new
00:19:04
nombre de la clase
00:19:06
y por ahora
00:19:08
porque no hemos visto nada más
00:19:10
por ahora
00:19:12
paréntesis vacíos
00:19:14
paréntesis vacíos
00:19:16
ahora ya sí
00:19:18
ahora
00:19:20
hemos declarado la variable que se llama
00:19:22
pedido Boris
00:19:24
y hemos hecho aparecer
00:19:26
con el new
00:19:28
un espacio en memoria
00:19:30
capaz
00:19:32
de contener
00:19:34
todas las propiedades de pedido
00:19:36
código
00:19:38
y descripción
00:19:40
ahora
00:19:42
ya sí tenemos todo esto
00:19:44
y esto ya sí es un objeto
00:19:46
o sea un objeto es ya
00:19:48
un espacio en memoria principal
00:19:50
para contener unos datos concretos
00:19:52
los datos de un pedido concreto
00:19:54
esto ya es un objeto
00:19:56
un objeto concreto
00:19:58
ahora mismo
00:20:00
este objeto que características
00:20:02
tiene en código y descripción
00:20:04
no tiene nada
00:20:06
bueno
00:20:08
vamos a darle valores a este pedido en concreto
00:20:10
bueno pues como
00:20:12
accedemos
00:20:14
a las partes del objeto
00:20:16
como accedemos a este espacio código
00:20:18
pues accedemos con este
00:20:20
operador
00:20:22
voy a acceder al código para darle
00:20:24
7 por ejemplo
00:20:26
pues pongo
00:20:28
pedido Boris
00:20:32
punto
00:20:34
y nombre de la propiedad
00:20:36
tal y como aparece en la clase
00:20:38
en la plantilla
00:20:40
pedido Boris
00:20:42
punto código
00:20:44
igual a 7
00:20:48
bueno pues
00:20:50
automáticamente la máquina virtual
00:20:52
va al pedido Boris
00:20:54
aquí a donde me llevas de pedido Boris
00:20:56
te llevo a código
00:20:58
porque es punto código
00:21:00
te llevo a código
00:21:02
vale ya estoy aquí
00:21:04
que haces asignarle el 7
00:21:06
pues ala ahí se crea el 7
00:21:08
esto es como una asignación cualquiera
00:21:10
una variable
00:21:12
lo que pasa es que a la variable
00:21:14
a la que estamos accediendo
00:21:16
es la propiedad código
00:21:18
del objeto pedido Boris
00:21:20
¿cuál es la posición a este objeto?
00:21:22
pues pedido Boris
00:21:26
que es el nombre del objeto
00:21:28
así lo tengo que llamar, pedido Boris
00:21:30
punto propiedad a la que quiero acceder
00:21:32
esta es un string
00:21:38
le tengo que asignar un tipo
00:21:40
compatible, claro
00:21:42
o yo que se, ala, Boris
00:21:44
vale
00:21:48
bueno pues automáticamente
00:21:50
aparecerá aquí
00:21:52
ala pues ya tengo un objeto
00:21:56
un objeto creado en memoria
00:21:58
este es el objeto, lo que existe en memoria
00:22:00
que tiene un nombre
00:22:02
el que a mi me ha dado la gana
00:22:04
y tiene un contenido
00:22:06
un contenido concreto
00:22:08
tiene un contenido concreto
00:22:10
y este objeto
00:22:12
sigue esa plantilla
00:22:14
que yo he tenido que programar aparte una clase
00:22:16
vale
00:22:18
que quiero hacer más objetos
00:22:20
hago todos los que me den la gana
00:22:22
que quiero ahora un pedido
00:22:24
de gomas
00:22:26
pues igual
00:22:28
pedido gomas
00:22:30
igual a new
00:22:34
pedido
00:22:36
ala ya tengo otro objeto
00:22:40
en memoria principal me aparecerá otro
00:22:42
vale
00:22:48
que apunta un espacio
00:22:58
código descripción
00:23:04
vale
00:23:10
ya tengo los objetos
00:23:12
son dos objetos diferentes
00:23:14
ambos de tipo pedido
00:23:16
y mi aplicación puede tener
00:23:18
mil, dos mil
00:23:20
los que necesite, todos los pedidos que quiera
00:23:22
y todos ellos
00:23:24
siguen esa plantilla en cuanto a que tienen
00:23:26
todos ellos dos propiedades
00:23:28
y yo con esas propiedades las relleno
00:23:30
hago lo que haga falta como si fueran variables
00:23:32
la única diferencia es que la forma
00:23:34
de acceder a ellas es de esta manera
00:23:36
nombre del objeto
00:23:38
punto nombre de la descripción
00:23:40
que quiero acceder aquí
00:23:42
pedido gomas punto código
00:23:44
igual a lo que sea
00:23:46
que quiero acceder aquí
00:23:48
pedido gomas punto descripción
00:23:50
bueno las grabaciones de hoy no van a empanar
00:23:56
porque aquí tampoco había puesto la cámara
00:23:58
en fin
00:24:00
se ha grabado pero
00:24:04
vale pues
00:24:08
este es un funcionamiento
00:24:10
muy muy muy resumido y sin detalles
00:24:12
de una aplicación de todos los objetos
00:24:14
lo que hace es esto
00:24:16
uno decide las clases que necesita
00:24:18
porque son las que representan
00:24:20
los conceptos
00:24:22
clase persona, clase jefe, clase empleado
00:24:24
clase, representan los conceptos
00:24:26
esas son plantillas
00:24:28
en las que pone las propiedades que lo va a caracterizar
00:24:30
y en esa plantilla
00:24:32
el jefe le va a caracterizar
00:24:34
pues el sueldo, el nombre, el DNI
00:24:36
el empleado
00:24:38
lo va a caracterizar
00:24:40
pues el código, la fecha de incorporación
00:24:42
de cada clase
00:24:44
uno decide lo que lo va a caracterizar
00:24:46
y luego ya habrá una aplicación
00:24:48
perdón, habrá una clase
00:24:50
con este main
00:24:52
que es el punto de arranque
00:24:54
y a partir de ahí ya la aplicación ya creando objetos
00:24:56
lo que haga falta
00:24:58
lo que se pida, lo que haga falta
00:25:00
entonces los objetos
00:25:02
ya aparecen en tiempo
00:25:04
de ejecución
00:25:06
cuando la aplicación está ejecutando
00:25:08
ya van apareciendo
00:25:10
que son espacios de memoria
00:25:12
cada uno de ellos con un nombre distinto
00:25:14
y puede haber tantos objetos
00:25:16
de la misma clase como hagan falta
00:25:18
tantos objetos como hagan falta
00:25:20
entonces claro, una aplicación de pedidos
00:25:26
pues tendría sentido hacerlo así
00:25:28
si yo no trabajo con clases
00:25:30
que me hago variables sueltas
00:25:32
que sean código del pedido 1
00:25:34
una variable entera suelta
00:25:36
otra variable insuelta, código del pedido 2
00:25:38
pues hombre, lo puedo hacer así
00:25:40
descripción del pedido 1, una variable string suelta
00:25:42
descripción del pedido 2, otra variable string suelta
00:25:44
pues lo puedo hacer con variables sueltas
00:25:46
pero hombre, que horrorosa
00:25:48
y que fea y que complicada
00:25:50
es mucho más fácil si yo tengo
00:25:52
una variable pedido bolis
00:25:54
dentro de la cual si quiero
00:25:56
me voy a las propiedades
00:25:58
otra variable pedido gomas, de la clase pedido
00:26:00
dentro de la cual ya si quiero
00:26:02
me voy a las propiedades
00:26:04
mucho más organizada así
00:26:06
mucho más bonita
00:26:08
que no con variables sueltas
00:26:10
código pedido 1, código pedido 2
00:26:12
mucho mejor así, con una clase pedido
00:26:14
con mis pedidos en variables separadas
00:26:16
cada una de ellas teniendo sus propiedades
00:26:18
va a quedar mucho más claro y mejor
00:26:20
que ahora me hago otra aplicación
00:26:22
que también trabaja con pedidos
00:26:24
anda, pues esta misma clase pedido
00:26:26
que ya tengo hecha
00:26:28
en mi caso es que hay dos líneas
00:26:30
pero esta clase que ya tengo hecha
00:26:32
voy a llevármela a mi otra aplicación
00:26:34
no tengo que volver a hacerla
00:26:36
no tengo que volver a hacerla
00:26:38
gracias a que ya tengo una clase pedido hecha
00:26:40
a cualquier otra aplicación que os he pedido
00:26:42
sale, ahí me la llevo
00:26:44
y ya tengo ese trabajo
00:26:46
puedo reutilizar el código de las clases
00:26:48
¿vale?
00:26:52
venga, pues para
00:26:54
asegurarnos de que esto está claro
00:26:56
vais a programar vosotros ahora
00:26:58
esta misma clase
00:27:02
esta misma clase
00:27:10
vais a programar una aplicación
00:27:12
con estas dos clases
00:27:14
¿vale?
00:27:16
la clase pedido
00:27:18
con las propiedades que hemos dicho
00:27:20
con el código
00:27:22
y la descripción
00:27:26
y la descripción
00:27:28
y ahora vais a hacer una aplicación
00:27:30
un método main
00:27:32
que haga lo siguiente, tiene que hacer
00:27:34
crear dos objetos pedido
00:27:36
y rellenar
00:27:38
sus propiedades
00:27:40
no con valores que yo le he asignado a capón
00:27:42
como aquí, sino con valores que habéis
00:27:44
editado por teclado
00:27:46
¿vale?
00:27:48
eso es lo primero que vamos a hacer, rellenar
00:27:50
en mi main
00:27:52
dos objetos
00:27:54
pedido
00:27:58
con valores
00:28:00
solicitados
00:28:02
por teclado
00:28:04
los dos códigos
00:28:06
y solicitados
00:28:08
por teclado
00:28:14
vale, y una vez
00:28:16
hecho eso
00:28:18
lo que vais a hacer va a ser
00:28:20
vais a
00:28:22
mostrar
00:28:24
una utilidad un poco
00:28:26
extraña, pero bueno
00:28:28
vais a mostrar
00:28:30
la descripción
00:28:32
del pedido cuyo código
00:28:34
sea mayor, ya está
00:28:36
ahora mismo
00:28:42
me da igual, pero como todavía no hemos visto
00:28:44
paquetes ni entendemos lo que es
00:28:46
si lo queréis hacer en un paquete, me da lo mismo
00:28:48
pero yo no doy todavía los paquetes
00:28:50
por tabla, porque no los hemos visto
00:28:52
en default está bien por ahora
00:28:56
mostrar la
00:29:00
descripción
00:29:02
la utilidad de los paquetes
00:29:04
aparece efectivamente cuando viene la aplicación
00:29:06
tiene muchas clases, si tiene muchas
00:29:08
conviene organizar diferentes paquetes
00:29:10
pero esto tiene un funcionamiento específico
00:29:12
que todavía nos falta volver también
00:29:14
mostrar la descripción
00:29:16
del pedido
00:29:18
con código
00:29:20
mayor
00:29:22
venga pues esto
00:29:26
- Subido por:
- Raquel G.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 4
- Fecha:
- 18 de diciembre de 2023 - 13:55
- Visibilidad:
- Público
- Centro:
- IES ROSA CHACEL
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1280x720 píxeles
- Tamaño:
- 563.79 MBytes