1 00:00:06,059 --> 00:00:11,400 Hola a todos, en este vídeo voy a explicar cómo solucionaría yo el ejercicio de las abejas 2 00:00:11,400 --> 00:00:17,059 Lo primero que vamos a ver es cómo coger el enunciado 3 00:00:17,059 --> 00:00:20,859 y cómo yo me hago una idea inicial de lo que tiene que hacer el programa 4 00:00:20,859 --> 00:00:25,719 Mi objetivo no es hacer todo el programa de golpe, sino hacerlo poco a poco 5 00:00:25,719 --> 00:00:29,440 Me voy aquí 6 00:00:29,440 --> 00:00:34,380 Estas son mis ideas iniciales 7 00:00:34,380 --> 00:00:43,380 Un dibujo que yo me he hecho y en el navegador, en el aula virtual, tenemos el enunciado. 8 00:00:50,009 --> 00:00:56,850 Aquí tengo el enunciado y aquí tengo mi dibujo. 9 00:00:58,009 --> 00:01:04,530 Lo primero que hago yo es hacer un dibujo en el que me resumo el ejercicio y así veo menos texto. 10 00:01:04,530 --> 00:01:10,489 Ya sé que os quejáis de que tiene mucho texto, pero es que los humanos hablamos con muchas palabras 11 00:01:10,489 --> 00:01:16,069 y a veces para que se entienda bien hay que añadir más palabras, luego se pueden eliminar, pero inicialmente están. 12 00:01:16,269 --> 00:01:22,650 Entonces, este es el enunciado del ejercicio, como ya dije, está sacado de la Wikipedia 13 00:01:22,650 --> 00:01:28,349 y tengo que crear un programa en JAMA que simule el comportamiento del texto inferior 14 00:01:28,349 --> 00:01:31,670 Y es entregarlo como proyecto.zip 15 00:01:31,670 --> 00:01:35,510 Y que utilice jerarquía de clases para ahorrarme trabajo 16 00:01:35,510 --> 00:01:39,090 Bien, hablo de que mi amiga Blanca tiene una colmena con un enjambre 17 00:01:39,090 --> 00:01:40,370 Que podría querer más 18 00:01:40,370 --> 00:01:43,609 Y que mi diseño tiene que permitir crear más colmenas 19 00:01:43,609 --> 00:01:44,769 Así que yo aquí me he apuntado 20 00:01:44,769 --> 00:01:46,629 Poder crear más colmenas 21 00:01:46,629 --> 00:01:49,670 Voy a ver si puedo pintar 22 00:01:49,670 --> 00:01:53,390 A ver, un segundo 23 00:01:53,390 --> 00:01:57,930 Pues no, en este no puedo pintar 24 00:01:57,930 --> 00:01:59,709 Así que, bueno, cuando pinto se queda así 25 00:01:59,709 --> 00:02:00,849 Pero luego no me lo deja deshacer 26 00:02:00,849 --> 00:02:02,109 Así que no voy a ir pintando 27 00:02:02,109 --> 00:02:05,090 Es que hice otro vídeo en el que sí que pintaba 28 00:02:05,090 --> 00:02:08,370 Bien, entonces aquí me ha contado que puedo crear más colmenas 29 00:02:08,370 --> 00:02:09,590 Me la sigo leyendo 30 00:02:09,590 --> 00:02:12,610 Digo, las colmenas tienen un enjambre de abejas 31 00:02:12,610 --> 00:02:13,990 De número desconocido 32 00:02:13,990 --> 00:02:17,009 El opuesto, una colmena tiene un enjambre de n abejas 33 00:02:17,009 --> 00:02:18,330 Y un panal 34 00:02:18,330 --> 00:02:20,610 ¿De acuerdo? Un panal de forma rectangular 35 00:02:20,610 --> 00:02:21,710 Es que es una tabla 36 00:02:21,710 --> 00:02:23,770 O una matriz, como lo queráis decir 37 00:02:23,770 --> 00:02:25,789 O un vector de dos dimensiones 38 00:02:25,789 --> 00:02:26,849 Pongo que tenga como 39 00:02:26,849 --> 00:02:29,729 De filas X y de columnas 40 00:02:29,729 --> 00:02:31,449 Siempre X y menos 1 41 00:02:31,449 --> 00:02:33,430 Porque siempre me dice que las columnas 42 00:02:33,430 --> 00:02:34,389 Tienen unos menos 43 00:02:34,389 --> 00:02:36,449 Y el tamaño del panal es aleatorio 44 00:02:36,449 --> 00:02:37,229 Me lo he apuntado 45 00:02:37,229 --> 00:02:38,389 Y que la X aquí 46 00:02:38,389 --> 00:02:43,370 Tiene que ser menor o igual que 10 47 00:02:43,370 --> 00:02:45,770 Luego sigo con las abejas 48 00:02:45,770 --> 00:02:46,449 Pongo aquí 49 00:02:46,449 --> 00:02:48,530 Tres tipos diferentes de individuo 50 00:02:48,530 --> 00:02:49,990 Reina, obreras y zánganos 51 00:02:49,990 --> 00:02:59,210 Yo después de pensarlo, como todas son abejas, he puesto una superclase abeja y todas las demás, reina, obrera y zángano, extienden a la clase abeja. 52 00:02:59,330 --> 00:03:05,490 Porque una reina siempre va a ser una abeja y una obrera también. Nunca va a dejar de ser una abeja. 53 00:03:07,330 --> 00:03:10,889 Bien, la reina y la obrera son hembras y los zánganos son machos. 54 00:03:10,990 --> 00:03:12,990 Como todas tienen sexo, se lo pongo en la superclase. 55 00:03:13,770 --> 00:03:17,050 Una característica que podría ser un string, por ejemplo. 56 00:03:17,050 --> 00:03:19,270 luego 57 00:03:19,270 --> 00:03:21,389 digo que para 58 00:03:21,389 --> 00:03:22,870 cada una 59 00:03:22,870 --> 00:03:24,090 que la reina 60 00:03:24,090 --> 00:03:25,889 siempre tengo sueño 61 00:03:25,889 --> 00:03:28,289 puede ser fecundada por zánganos 62 00:03:28,289 --> 00:03:29,569 y pone huevos fecundados 63 00:03:29,569 --> 00:03:31,469 que dan origen a abejas obreras 64 00:03:31,469 --> 00:03:32,409 de sexo femenino 65 00:03:32,409 --> 00:03:33,909 y huevos sin fecundar 66 00:03:33,909 --> 00:03:36,050 que dan origen a zánganos 67 00:03:36,050 --> 00:03:37,710 que he hecho pues 68 00:03:37,710 --> 00:03:40,110 inicialmente me he imaginado aquí 69 00:03:40,110 --> 00:03:42,689 aquí 70 00:03:42,689 --> 00:03:43,830 fijaros 71 00:03:43,830 --> 00:03:45,590 he puesto aquí 72 00:03:45,590 --> 00:03:47,969 donde pone huevo 73 00:03:47,969 --> 00:03:49,310 resaltar texto 74 00:03:49,310 --> 00:03:51,449 aquí, he puesto que 75 00:03:51,449 --> 00:03:52,490 en el lado de la derecha 76 00:03:52,490 --> 00:03:55,849 no me deja pintar, muy bonito 77 00:03:55,849 --> 00:03:58,210 no lo reconoce como texto 78 00:03:58,210 --> 00:03:59,810 bien, en la zona aquí 79 00:03:59,810 --> 00:04:01,289 inferior he puesto que pone huevo 80 00:04:01,289 --> 00:04:03,949 zángano, ¿vale? porque pone un huevo 81 00:04:03,949 --> 00:04:05,629 y en cambio a la obrera, en la clase 82 00:04:05,629 --> 00:04:07,030 justo a la derecha 83 00:04:07,030 --> 00:04:09,090 le he puesto que pone huevo pero no 84 00:04:09,090 --> 00:04:11,509 recibe como argumento 85 00:04:11,509 --> 00:04:13,490 un zángano y un método que se llama 86 00:04:13,490 --> 00:04:21,329 segregacera y alzangan un método que se llama zumba porque como en el enunciado me dice que 87 00:04:21,329 --> 00:04:26,089 desarrollan un tipo de trabajo diferente pues les he puesto un método diferente a cada una 88 00:04:26,089 --> 00:04:34,810 luego para convertirse en reina una larva huevo debe ser nutrida con jalea real en este ejercicio 89 00:04:34,810 --> 00:04:42,589 simplemente se les da comida a los huevos y esta parte la repasaré cuando tenga medio 90 00:04:43,490 --> 00:04:47,089 el caso es que en el punto anotado como 4 91 00:04:47,089 --> 00:04:50,149 dije que vamos a imaginar que todas las obreras pueden poner huevos 92 00:04:50,149 --> 00:04:51,209 solo que no hay zánganos 93 00:04:51,209 --> 00:04:54,509 entonces tengo aquí en el lado de la clase obrera 94 00:04:54,509 --> 00:04:56,889 el método pone huevo 95 00:04:56,889 --> 00:04:58,009 vale 96 00:04:58,009 --> 00:05:01,990 y lo he insistido en el enunciado 97 00:05:01,990 --> 00:05:04,230 las abejas obreras no necesitan zánganos 98 00:05:04,230 --> 00:05:06,110 y se agregan cera 99 00:05:06,110 --> 00:05:07,829 es por eso el método 100 00:05:07,829 --> 00:05:11,709 en el enunciado en el punto 5 decía aquí abajo 101 00:05:11,709 --> 00:05:13,970 una nota, con que se vean cera por pantalla 102 00:05:13,970 --> 00:05:15,790 y pongan huevos es suficiente 103 00:05:15,790 --> 00:05:18,250 y luego 104 00:05:18,250 --> 00:05:20,149 el sexo de un huevo está definido 105 00:05:20,149 --> 00:05:21,829 desde que se le crea, debería estar aquí 106 00:05:21,829 --> 00:05:23,610 en mis notas, no lo he puesto, vale 107 00:05:23,610 --> 00:05:24,709 pero tiene sexo 108 00:05:24,709 --> 00:05:27,269 y si se alimenta con mucha jalea 109 00:05:27,269 --> 00:05:28,829 al nacer será una reina 110 00:05:28,829 --> 00:05:31,329 bueno, por ahora no lo he puesto, luego lo veré 111 00:05:31,329 --> 00:05:32,990 y luego me viene que tengo que hacer 112 00:05:32,990 --> 00:05:35,730 simular una colmena, mostrar la colmena 113 00:05:35,730 --> 00:05:37,750 que hay, recorrer el enjambre 114 00:05:37,750 --> 00:05:41,750 si los huevos se guardan 115 00:05:41,750 --> 00:05:42,889 en posiciones no ocupadas 116 00:05:42,889 --> 00:05:44,389 pero nada, le inventa a los huevos 117 00:05:44,389 --> 00:05:45,350 que nazcan abejas 118 00:05:45,350 --> 00:05:48,129 es muy libre, cada uno lo puede hacer 119 00:05:48,129 --> 00:05:50,149 dependiendo como lo tome en cuenta 120 00:05:50,149 --> 00:05:52,769 yo en mi dibujo 121 00:05:52,769 --> 00:05:54,209 me he puesto los huevos 122 00:05:54,209 --> 00:05:56,389 que nacen y que tienen 123 00:05:56,389 --> 00:05:58,310 la jalea que han comido 124 00:05:58,310 --> 00:06:00,790 y luego tengo que revisar la lista de tareas 125 00:06:00,790 --> 00:06:02,529 quiere decir, estos puntos 126 00:06:02,529 --> 00:06:04,170 del 1 al 7 127 00:06:04,170 --> 00:06:06,569 que son los que tiene que hacer 128 00:06:06,569 --> 00:06:07,170 el programa 129 00:06:07,170 --> 00:06:15,589 ¿De acuerdo? Vale, entonces este sería el análisis inicial de mi programa 130 00:06:15,589 --> 00:06:18,850 Bien, ahora los primeros pasos los conté en clase 131 00:06:18,850 --> 00:06:24,550 Voy a mostrar el código que hice en clase y por encima qué es lo que hace 132 00:06:24,550 --> 00:06:31,389 Vale, entonces me voy al navegador 133 00:06:31,389 --> 00:06:34,449 Lo pongo en pantalla completa 134 00:06:34,449 --> 00:06:36,870 Y si os fijáis 135 00:06:36,870 --> 00:06:37,550 Aquí 136 00:06:37,550 --> 00:06:39,430 Tengo el repositorio GitHub 137 00:06:39,430 --> 00:06:41,209 Donde está mi solución inicial 138 00:06:41,209 --> 00:06:43,470 Las que os enseñé en clase 139 00:06:43,470 --> 00:06:44,449 Que si pincháis 140 00:06:44,449 --> 00:06:47,370 Os lleva a este repositorio en GitHub 141 00:06:47,370 --> 00:06:49,730 Para clonar un repositorio 142 00:06:49,730 --> 00:06:52,370 Se puede hacer de dos maneras 143 00:06:52,370 --> 00:06:53,629 Mediante HTTPS 144 00:06:53,629 --> 00:06:54,990 Que es lo que hacéis normalmente 145 00:06:54,990 --> 00:06:55,949 Es este enlace 146 00:06:55,949 --> 00:06:58,310 O mediante una conexión segura 147 00:06:58,310 --> 00:06:59,209 Que es SSH 148 00:06:59,209 --> 00:07:01,050 Que es como lo hago yo desde casa 149 00:07:01,050 --> 00:07:03,050 Y desde otros ordenadores 150 00:07:03,050 --> 00:07:05,589 porque estoy aprendiendo y me resulta más cómodo 151 00:07:05,589 --> 00:07:07,990 entonces yo voy a copiar esta dirección 152 00:07:07,990 --> 00:07:09,689 aunque vosotros deberíais copiar 153 00:07:09,689 --> 00:07:10,790 la de HTTPS 154 00:07:10,790 --> 00:07:12,189 aquí, vale 155 00:07:12,189 --> 00:07:14,589 entonces me la copio 156 00:07:14,589 --> 00:07:17,730 y me voy a ir a NetBeans 157 00:07:17,730 --> 00:07:19,329 para crear un proyecto 158 00:07:19,329 --> 00:07:23,649 bien, le doy a File 159 00:07:23,649 --> 00:07:25,470 un New Project 160 00:07:25,470 --> 00:07:27,589 lo voy a hacer con 161 00:07:27,589 --> 00:07:29,329 Ant, siguiente 162 00:07:29,329 --> 00:07:31,430 lo voy a llamar 163 00:07:31,430 --> 00:07:34,029 bis con mayúscula 164 00:07:34,029 --> 00:07:35,670 como se llama en mi 165 00:07:35,670 --> 00:07:39,420 en mi 166 00:07:39,420 --> 00:07:41,420 paquete de java, luego tendré que cambiar algo 167 00:07:41,420 --> 00:07:43,379 me perdonéis, mi paquete de github 168 00:07:43,379 --> 00:07:44,759 vale, y 169 00:07:44,759 --> 00:07:47,680 está muy rápida y ha creado el bis.java 170 00:07:47,680 --> 00:07:49,540 que yo no creía que lo creara, así que lo 171 00:07:49,540 --> 00:07:51,339 borro 172 00:07:51,339 --> 00:07:55,579 y voy a ver donde está mi proyecto 173 00:07:55,579 --> 00:07:57,259 me voy con properties 174 00:07:57,259 --> 00:08:05,879 no es lo que quiero ver 175 00:08:05,879 --> 00:08:07,680 un momento que me pauso 176 00:08:07,680 --> 00:08:10,480 continúo 177 00:08:10,480 --> 00:08:13,339 yo quiero ver un terminal para clonar el proyecto de GitHub 178 00:08:13,339 --> 00:08:15,480 lo puedo abrir desde aquí con tools 179 00:08:15,480 --> 00:08:17,100 y me hace opening terminal 180 00:08:17,100 --> 00:08:18,620 lo tengo en la misma pantalla 181 00:08:18,620 --> 00:08:20,399 para que lo veáis en las dos pantallas 182 00:08:20,399 --> 00:08:21,319 o sea, lo veáis a la vez 183 00:08:21,319 --> 00:08:24,379 o me lo puedo abrir aquí 184 00:08:24,379 --> 00:08:25,860 que se ha creado aquí 185 00:08:25,860 --> 00:08:28,240 y le digo abrir en terminal 186 00:08:28,240 --> 00:08:31,139 y vería 187 00:08:31,139 --> 00:08:33,860 lo mismo, si yo aquí hago un ls 188 00:08:33,860 --> 00:08:35,960 veis que tengo 189 00:08:35,960 --> 00:08:37,960 el source, si entro en el source 190 00:08:38,580 --> 00:08:41,240 y hago otro ls 191 00:08:41,240 --> 00:08:42,320 veis que tengo 192 00:08:42,320 --> 00:08:44,519 bis, vale 193 00:08:44,519 --> 00:08:45,559 y 194 00:08:45,559 --> 00:08:48,600 esto es bis 195 00:08:48,600 --> 00:08:51,980 si hago un cd en bis 196 00:08:51,980 --> 00:08:54,200 y hago un ls 197 00:08:54,200 --> 00:08:55,799 no tengo nada 198 00:08:55,799 --> 00:08:58,019 vale, entonces voy a 199 00:08:58,019 --> 00:09:00,320 clonar mi repositorio 200 00:09:00,320 --> 00:09:03,519 continúo 201 00:09:03,519 --> 00:09:05,779 me ha puesto aquí dentro de source.biz 202 00:09:05,779 --> 00:09:07,519 por cierto, voy a hacer zoom para que lo veáis 203 00:09:07,519 --> 00:09:10,240 estoy en el terminal en source.biz 204 00:09:10,240 --> 00:09:11,860 pero como yo sé 205 00:09:11,860 --> 00:09:13,779 que cuando me lo clona, me lo clona con un 206 00:09:13,779 --> 00:09:15,519 nombre de carpeta, que es 207 00:09:15,519 --> 00:09:17,779 este nombre de carpeta, mi carpeta se va a 208 00:09:17,779 --> 00:09:19,559 llamar biz con mayúscula 209 00:09:19,559 --> 00:09:21,679 pues para que 210 00:09:21,679 --> 00:09:22,480 coincida 211 00:09:22,480 --> 00:09:25,480 tenía que haber 212 00:09:25,480 --> 00:09:27,460 bueno, depende 213 00:09:27,460 --> 00:09:29,279 que mal me estoy explicando 214 00:09:29,279 --> 00:09:31,299 entonces me voy a salir de viz 215 00:09:31,299 --> 00:09:35,789 vale, y veis donde estoy 216 00:09:35,789 --> 00:09:37,370 ahora, estoy en source 217 00:09:37,370 --> 00:09:39,710 y voy a hacer 218 00:09:39,710 --> 00:09:41,909 el git clone, entonces hago un git clone 219 00:09:41,909 --> 00:09:44,450 pego el código 220 00:09:44,450 --> 00:09:47,970 ahí estoy poniendo la ruta 221 00:09:47,970 --> 00:09:48,889 hago el zoom 222 00:09:48,889 --> 00:09:51,350 hago un git clone 223 00:09:51,350 --> 00:09:53,850 y la ruta donde está el repositorio remoto 224 00:09:53,850 --> 00:09:55,169 que yo me quiero traer aquí 225 00:09:55,169 --> 00:09:57,870 es mío, pero lo podéis clonar vosotros 226 00:09:57,870 --> 00:10:00,649 y trabajar sobre él, que ya he visto que alguien lo ha clonado 227 00:10:00,649 --> 00:10:02,529 y que es lo que quiero 228 00:10:02,529 --> 00:10:04,350 vale, entonces 229 00:10:04,350 --> 00:10:06,250 lo está clonando 230 00:10:06,250 --> 00:10:08,549 se llama bis, se ha traído 17 objetos 231 00:10:08,549 --> 00:10:10,570 y si os fijáis ahora aquí en el lado 232 00:10:10,570 --> 00:10:12,610 izquierdo, tengo dos 233 00:10:12,610 --> 00:10:14,450 carpetas o dos paquetes dentro 234 00:10:14,450 --> 00:10:16,789 del source, bis con mayúsculas y bis con 235 00:10:16,789 --> 00:10:18,370 minúsculas 236 00:10:18,370 --> 00:10:19,870 pues me lo puedo 237 00:10:19,870 --> 00:10:21,389 voy a cerrar el terminal 238 00:10:21,389 --> 00:10:24,370 vale, y 239 00:10:24,370 --> 00:10:26,450 voy a abrir lo que hay aquí 240 00:10:27,870 --> 00:10:38,230 Si yo quiero mantener el nombre, lo tendré que dejar igual para que no tenga problemas. 241 00:10:38,230 --> 00:10:39,929 Un momento que suene el timbre. 242 00:10:43,370 --> 00:10:44,809 Continúo. Entonces tengo dos bis. 243 00:10:44,970 --> 00:10:50,990 Como yo quiero que se mantenga con la B mayúscula, que es con la que lo he clonado, la de arriba, ¿vale? 244 00:10:51,070 --> 00:10:55,230 Ahora cuando obtenga errores, pues me aseguro que no la cambio. 245 00:10:55,230 --> 00:10:59,490 bien, voy a abrir 246 00:10:59,490 --> 00:11:01,490 mi abeja 247 00:11:01,490 --> 00:11:04,649 ¿veis? aquí 248 00:11:04,649 --> 00:11:08,549 me dice que hay incorrecto 249 00:11:08,549 --> 00:11:10,850 el que incorrecto el paquete 250 00:11:10,850 --> 00:11:13,090 porque cuando lo subía 251 00:11:13,090 --> 00:11:14,769 al repositorio seguramente 252 00:11:14,769 --> 00:11:16,570 le cambió el nombre o lo que fuera 253 00:11:16,570 --> 00:11:18,629 entonces me ofrece la posibilidad de moverlo 254 00:11:18,629 --> 00:11:20,929 y no me interesa moverlo porque esta es mi carpeta 255 00:11:20,929 --> 00:11:21,950 donde está el repositorio 256 00:11:21,950 --> 00:11:24,830 y me dice que si quiero cambiar 257 00:11:24,830 --> 00:11:27,629 la declaración del paquete a bis con mayúscula 258 00:11:27,629 --> 00:11:28,870 eso me parece bien 259 00:11:28,870 --> 00:11:31,789 ¿vale? y así no me da error 260 00:11:31,789 --> 00:11:33,710 me lo irá diciendo en cada una 261 00:11:33,710 --> 00:11:35,429 de ellas 262 00:11:35,429 --> 00:11:37,429 bien, entonces 263 00:11:37,429 --> 00:11:39,629 voy a explicaros lo que hice yo 264 00:11:39,629 --> 00:11:41,629 yo hablé en mi dibujo 265 00:11:42,210 --> 00:11:43,789 que voy a poner por aquí 266 00:11:43,789 --> 00:11:44,490 a la derecha 267 00:11:44,490 --> 00:11:47,950 de que tenía una clase abeja con sexo 268 00:11:47,950 --> 00:11:49,610 y vuela, pues es lo que he creado 269 00:11:49,610 --> 00:11:51,509 fijaros en la línea 13 270 00:11:51,509 --> 00:11:53,769 tengo un tipo 271 00:11:53,769 --> 00:11:56,149 Estoy definiendo un tipo que es el tipo sexo 272 00:11:56,149 --> 00:11:59,950 Que he definido que el tipo sexo puede tener valor femenino o masculino 273 00:11:59,950 --> 00:12:05,350 Está protegido, así que solo se puede usar dentro de la abeja 274 00:12:05,350 --> 00:12:10,830 Y luego el tipo de abeja, que también es un enumerado 275 00:12:10,830 --> 00:12:13,029 De la línea 17 a 19 276 00:12:13,029 --> 00:12:17,669 Que solo puede ser obreja, zángano o reina 277 00:12:17,669 --> 00:12:24,230 entonces aquí empieza el primer atributo de la abeja en la línea 21 278 00:12:24,230 --> 00:12:27,429 que es el sexo y es de tipo sexo 279 00:12:27,429 --> 00:12:31,009 a ver si puedo ponerlo en pantalla compartida las dos cosas 280 00:12:31,009 --> 00:12:36,769 bien, entonces fijaros aquí es private porque es un atributo 281 00:12:36,769 --> 00:12:40,990 se llama sexo como he definido aquí en la abeja 282 00:12:40,990 --> 00:12:44,669 y es de tipo sexo que es el mismo que yo acabo de definir 283 00:12:44,669 --> 00:12:46,990 y los métodos que tengo para la abeja son 284 00:12:46,990 --> 00:12:52,789 El constructor, que siempre que crea una abeja le tendré que decir el tipo de sexo que es 285 00:12:52,789 --> 00:12:54,549 Y le asigna ese sexo 286 00:12:54,549 --> 00:12:57,769 Y luego tengo el getter para devolver el sexo 287 00:12:57,769 --> 00:13:00,470 Y aquí tengo un tipo abstracto 288 00:13:00,470 --> 00:13:01,870 Voy a hacer zoom 289 00:13:01,870 --> 00:13:04,230 ¿Qué quiere decir el tipo abstracto? 290 00:13:04,230 --> 00:13:13,370 Que no está definido en abeja y que cualquiera que extienda abeja tendrá que definir cómo funciona su gettipo 291 00:13:13,370 --> 00:13:15,590 Y luego tengo el muestra 292 00:13:15,590 --> 00:13:20,389 a ver, aquí 293 00:13:20,389 --> 00:13:23,049 que simplemente es un system out 294 00:13:23,049 --> 00:13:24,529 de el mensaje 295 00:13:24,529 --> 00:13:26,970 abeja de sexo y le pondría el get sexo 296 00:13:26,970 --> 00:13:28,350 y de tipo y get tipo 297 00:13:28,350 --> 00:13:30,590 y luego como todas las abejas vuelan 298 00:13:30,590 --> 00:13:31,990 le he hecho un método vuela 299 00:13:31,990 --> 00:13:34,169 que simplemente saca por pantalla 300 00:13:34,169 --> 00:13:36,190 soy una abeja volando 301 00:13:36,190 --> 00:13:38,029 bien, ya tengo mi abeja 302 00:13:38,029 --> 00:13:41,049 voy a ver como son mi reina 303 00:13:41,049 --> 00:13:42,409 mi obrera y mi zángano 304 00:13:42,409 --> 00:13:44,850 si os fijáis yo en el inicial 305 00:13:44,850 --> 00:13:46,330 aquí a la izquierda 306 00:13:46,330 --> 00:13:48,730 solo hice la reina y el zango 307 00:13:48,730 --> 00:13:50,110 no está la obrera 308 00:13:50,110 --> 00:13:51,470 así que voy a por la reina 309 00:13:51,470 --> 00:13:55,230 la reina se va a quejar del mismo mensaje 310 00:13:55,230 --> 00:13:57,169 que el bis está con minúscula 311 00:13:57,169 --> 00:13:58,870 entonces voy a cambiarlo al paquete 312 00:13:58,870 --> 00:14:01,389 como antes, no quiero moverlo a otra carpeta 313 00:14:01,389 --> 00:14:02,929 sino cambiar la declaración 314 00:14:02,929 --> 00:14:05,269 mayúscula 315 00:14:05,269 --> 00:14:06,809 mi reina 316 00:14:06,809 --> 00:14:07,889 extiende abeja 317 00:14:07,889 --> 00:14:09,990 por lo tanto en su constructor 318 00:14:09,990 --> 00:14:13,309 cuando yo cree la reina que no recibe ningún argumento 319 00:14:13,309 --> 00:14:14,529 siempre lo que voy a crear 320 00:14:14,529 --> 00:14:18,029 Es un super, o sea, crear una abeja de sexo femenino 321 00:14:18,029 --> 00:14:20,370 ¿Cómo se crea de sexo femenino? 322 00:14:20,490 --> 00:14:23,409 Poniendo abeja.sexo femenino 323 00:14:23,409 --> 00:14:27,769 Que es protected, así que es un tipo que no se ve desde fuera de la abeja 324 00:14:27,769 --> 00:14:29,570 A no ser que tú seas una abeja 325 00:14:29,570 --> 00:14:32,669 Que es como, en este caso, la reina 326 00:14:32,669 --> 00:14:35,190 Vale, aquí hace su propio get tipo 327 00:14:35,190 --> 00:14:39,690 Y lo que devuelve siempre es abeja.tipo reina 328 00:14:39,690 --> 00:14:45,110 no es ninguna propiedad que tenga 329 00:14:45,110 --> 00:14:48,070 porque no necesita, sabe que es una reina y siempre lo dice 330 00:14:48,070 --> 00:14:49,769 no tiene un atributo específico 331 00:14:49,769 --> 00:14:52,610 fijaros que la reina no tiene ningún atributo aquí definido 332 00:14:52,610 --> 00:14:55,990 solo que tiene métodos diferentes 333 00:14:55,990 --> 00:14:57,509 a ver porque se me queja este 334 00:14:57,509 --> 00:15:00,850 Zangan, ah vale, me se queja porque 335 00:15:00,850 --> 00:15:03,850 ahora mismo Zangan no tiene un error y todavía no lo ha arreglado 336 00:15:03,850 --> 00:15:07,490 entonces tengo dos métodos 337 00:15:07,490 --> 00:15:09,490 con huevo, con polimorfismo 338 00:15:09,490 --> 00:15:10,529 fijaros 339 00:15:10,529 --> 00:15:13,190 en uno recibe 340 00:15:13,190 --> 00:15:15,309 un zángano como atributo 341 00:15:15,309 --> 00:15:16,789 y en el otro no recibe nada 342 00:15:16,789 --> 00:15:19,730 entonces el primero cuando recibe un zángano 343 00:15:19,730 --> 00:15:21,549 siempre va a crear un huevo 344 00:15:21,549 --> 00:15:23,029 de sexo femenino 345 00:15:23,029 --> 00:15:25,289 y en el otro cuando no recibe nada 346 00:15:25,289 --> 00:15:27,690 siempre va a hacer un retún de un huevo que crea 347 00:15:27,690 --> 00:15:29,470 de sexo masculino 348 00:15:29,470 --> 00:15:30,389 vale 349 00:15:30,389 --> 00:15:32,850 y mi reina 350 00:15:32,850 --> 00:15:35,509 ya está solucionado lo que veis aquí a la derecha 351 00:15:35,509 --> 00:15:37,190 que pone huevo de dos tipos 352 00:15:37,190 --> 00:15:41,529 sigo con mi lista 353 00:15:41,529 --> 00:15:43,470 mi obrera no la tengo 354 00:15:43,470 --> 00:15:44,289 voy al zángano 355 00:15:44,289 --> 00:15:47,629 como el zángano todavía no tiene arreglado 356 00:15:47,629 --> 00:15:49,250 el package 357 00:15:49,250 --> 00:15:51,110 voy a hacer zoom para que lo veáis 358 00:15:51,110 --> 00:15:52,149 el mensaje de error 359 00:15:52,149 --> 00:15:55,889 se queja de que el paquete es con minúscula 360 00:15:55,889 --> 00:15:57,269 y realmente está en un paquete 361 00:15:57,269 --> 00:15:59,470 que es con mayúscula 362 00:16:00,169 --> 00:16:00,929 entonces 363 00:16:00,929 --> 00:16:02,649 voy a cambiar la declaración 364 00:16:02,649 --> 00:16:04,710 para que sea bis con mayúscula 365 00:16:04,710 --> 00:16:05,629 y así no me dará error 366 00:16:05,629 --> 00:16:07,110 porque no quiero ni moverlo 367 00:16:07,110 --> 00:16:09,850 a la clase, a otra carpeta 368 00:16:09,850 --> 00:16:11,429 ni nada, quiero que se mantengan 369 00:16:11,429 --> 00:16:12,929 porque me interesa que en mi 370 00:16:12,929 --> 00:16:16,370 en mi repositorio 371 00:16:16,370 --> 00:16:17,110 se llame igual 372 00:16:17,110 --> 00:16:19,470 entonces tenemos aquí la clase zángano 373 00:16:19,470 --> 00:16:20,549 que extiende abeja 374 00:16:20,549 --> 00:16:23,710 y que su constructor en la línea 13 375 00:16:23,710 --> 00:16:25,190 lo único que tiene es un super 376 00:16:25,190 --> 00:16:27,690 que siempre llama 377 00:16:27,690 --> 00:16:29,230 abeja de sexo masculino 378 00:16:29,230 --> 00:16:31,509 y cuando alguien le pregunta a un zángano 379 00:16:31,509 --> 00:16:33,809 de qué tipo es, siempre devuelve 380 00:16:33,809 --> 00:16:35,269 abeja tipo zángano 381 00:16:35,269 --> 00:16:36,730 que es un hecho 382 00:16:36,730 --> 00:16:38,730 vale, ya hemos hecho 383 00:16:38,730 --> 00:16:40,970 la reina, el zángano 384 00:16:40,970 --> 00:16:42,809 y voy a por el huevo que expliqué en clase 385 00:16:42,809 --> 00:16:45,110 el huevo no tiene lo mismo 386 00:16:45,110 --> 00:16:45,990 le cambio el paquete 387 00:16:45,990 --> 00:16:48,029 avís 388 00:16:48,029 --> 00:16:50,450 y 389 00:16:50,450 --> 00:16:52,230 aquí 390 00:16:52,230 --> 00:16:55,169 vale, se queja de que 391 00:16:55,169 --> 00:16:57,070 nadie lee nunca, no se usa 392 00:16:57,070 --> 00:16:58,850 para nada, no tengo puesto 393 00:16:58,850 --> 00:17:00,950 los getter ni los setter, solo tengo el 394 00:17:00,950 --> 00:17:01,850 constructor, vale 395 00:17:01,850 --> 00:17:05,049 cuando se crea un huevo 396 00:17:05,049 --> 00:17:07,009 siempre la jalea ingerida es cero 397 00:17:07,009 --> 00:17:08,329 y el alimento ingerido es cero 398 00:17:08,329 --> 00:17:10,269 me lo he inventado, a lo mejor luego decido cambiarlo 399 00:17:10,269 --> 00:17:13,089 y todos los huevos tienen 400 00:17:13,089 --> 00:17:15,490 un atributo que se llama sexo 401 00:17:15,490 --> 00:17:17,450 que es de tipo abeja.sexo 402 00:17:17,450 --> 00:17:18,990 así que cuando alguien 403 00:17:18,990 --> 00:17:20,809 crea un huevo con el constructor 404 00:17:20,809 --> 00:17:23,069 le llega sexo 405 00:17:23,069 --> 00:17:24,289 que es de tipo abeja.sexo 406 00:17:24,289 --> 00:17:26,349 y lo guarda 407 00:17:26,349 --> 00:17:28,430 bien 408 00:17:28,430 --> 00:17:31,210 tengo los huevos, la reina 409 00:17:31,210 --> 00:17:32,289 el zángano 410 00:17:32,289 --> 00:17:36,789 Y el método de clase principal 411 00:17:36,789 --> 00:17:39,470 Vale, abejas, tengo que guardarlo todo 412 00:17:39,470 --> 00:17:45,119 ¿Qué hace? Le tengo que cambiar el paquete igual 413 00:17:45,119 --> 00:17:49,019 ¿Qué hace mi bis? 414 00:17:49,119 --> 00:17:53,140 Pues inicialmente solo crea una abeja 1 y una abeja 2 415 00:17:53,140 --> 00:17:56,740 La de la línea 20 la tengo comentada porque todavía no tengo las obreras 416 00:17:56,740 --> 00:17:59,740 Y la abeja 2 es un zángano, que hace un nio 417 00:17:59,740 --> 00:18:01,500 Y la abeja 3 es una reina 418 00:18:01,500 --> 00:18:05,319 Y le pide a la 2 y la 3 que se muestren 419 00:18:05,319 --> 00:18:08,099 fijaros que todas las abejas 420 00:18:08,099 --> 00:18:09,960 saben mostrarse 421 00:18:09,960 --> 00:18:12,420 porque tienen el método de tipo muestra 422 00:18:12,420 --> 00:18:14,180 que imprime su sexo 423 00:18:14,180 --> 00:18:16,059 y luego su tipo 424 00:18:16,059 --> 00:18:18,619 vale, lo voy a ejecutar 425 00:18:18,619 --> 00:18:26,450 y lo voy a poner en mayúscula 426 00:18:26,450 --> 00:18:28,349 y para acá 427 00:18:28,349 --> 00:18:30,329 ahí está 428 00:18:30,329 --> 00:18:33,670 lo que ha hecho es que tengo una abeja de sexo masculino 429 00:18:33,670 --> 00:18:35,829 de tipo zanga, no, yo una abeja de sexo femenino 430 00:18:35,829 --> 00:18:37,309 y de tipo reina 431 00:18:37,309 --> 00:18:39,109 es lo que tengo hecho por ahora 432 00:18:39,109 --> 00:18:43,710 Entonces, ¿hacia dónde iría? 433 00:18:46,150 --> 00:18:49,950 Pues yo me iría a crear mi abeja obrera 434 00:18:49,950 --> 00:18:51,089 Que no la tengo todavía 435 00:18:51,089 --> 00:18:54,650 Que tiene que tener, que pone huevo y que se agrega cera 436 00:18:54,650 --> 00:18:56,950 Así que lo tengo preparado en otro archivo 437 00:18:56,950 --> 00:18:59,869 Lo voy a copiar y pegar para enrollarme menos 438 00:18:59,869 --> 00:19:04,109 Bien, voy a crear una nueva clase 439 00:19:04,109 --> 00:19:09,670 La voy a llamar obrera 440 00:19:09,670 --> 00:19:12,789 está dentro del proyecto bis 441 00:19:12,789 --> 00:19:14,029 y del package bis 442 00:19:14,029 --> 00:19:16,750 y ya tengo aquí mi obrera 443 00:19:16,750 --> 00:19:17,529 que está vacía 444 00:19:17,529 --> 00:19:20,450 voy a poner aquí el código que yo tenía 445 00:19:20,450 --> 00:19:28,490 ah vale 446 00:19:28,490 --> 00:19:29,609 porque tengo cosas 447 00:19:29,609 --> 00:19:37,710 le voy a cancelar 448 00:19:37,710 --> 00:19:39,210 porque estos paquetes 449 00:19:39,210 --> 00:19:39,950 estos códigos 450 00:19:39,950 --> 00:19:42,390 no tengo que importarlos 451 00:19:42,390 --> 00:19:43,829 ahora veremos si me da error 452 00:19:43,829 --> 00:19:46,569 bien, entonces he creado mi abeja obrera 453 00:19:46,569 --> 00:19:47,569 que extiende abeja 454 00:19:47,569 --> 00:19:50,289 y he añadido unos comentarios 455 00:19:50,289 --> 00:19:53,029 porque el constructor de la obrera no necesita recibir el sexo 456 00:19:53,029 --> 00:19:56,190 como antes, cuando creo una obrera es de sexo femenino 457 00:19:56,190 --> 00:19:59,390 y el get tipo, hago mi propio get tipo 458 00:19:59,390 --> 00:20:01,390 que devuelvo tipo obrera 459 00:20:01,390 --> 00:20:03,970 y luego tengo un pon huevo que es exactamente igual 460 00:20:03,970 --> 00:20:08,650 que el que hace la reina cuando no tiene un zángano 461 00:20:08,650 --> 00:20:11,230 simplemente devuelvo un huevo de sexo masculino 462 00:20:11,230 --> 00:20:13,450 y hace un segregar cera 463 00:20:13,450 --> 00:20:14,589 así que me voy al bis 464 00:20:14,589 --> 00:20:20,039 Y aquí vais a ver 465 00:20:20,039 --> 00:20:21,500 Un error que da 466 00:20:21,500 --> 00:20:24,799 Yo creo una 467 00:20:24,799 --> 00:20:25,579 Bueno, no va a dar error 468 00:20:25,579 --> 00:20:28,759 Yo creo una abeja 1 de tipo obrera 469 00:20:28,759 --> 00:20:29,259 ¿Vale? 470 00:20:29,559 --> 00:20:32,480 Y si yo a la abeja 1 471 00:20:32,480 --> 00:20:33,640 Le intento decir 472 00:20:33,640 --> 00:20:35,640 Que muestre cera 473 00:20:35,640 --> 00:20:38,859 Perdona, que se agregue cera 474 00:20:38,859 --> 00:20:43,980 No me deja 475 00:20:43,980 --> 00:20:44,779 No reconoce 476 00:20:44,779 --> 00:20:46,920 El método, ¿por qué? 477 00:20:47,400 --> 00:20:49,640 Y me dice que el paquete 478 00:20:49,640 --> 00:20:55,019 abeja 1 a paquete abeja 1, un momento 479 00:20:55,200 --> 00:20:59,660 si yo intento ejecutar la abeja 1 me puedo mostrar, lo que quiero que veáis es que no 480 00:20:59,660 --> 00:21:04,460 puedo hacer otros métodos con la abeja 1 que no sé, como por ejemplo se agrega 481 00:21:04,460 --> 00:21:08,599 arcera, voy a escribir F6 482 00:21:08,599 --> 00:21:12,799 ya tengo la abeja femenina obrera, la masculina ya he añadido sin ningún 483 00:21:12,799 --> 00:21:17,759 problema, ahora si yo intento decirle que 484 00:21:17,759 --> 00:21:19,079 a la abeja 1 485 00:21:19,079 --> 00:21:24,950 que es la obrera 486 00:21:24,950 --> 00:21:26,690 fijaros que eso no me deja 487 00:21:26,690 --> 00:21:28,150 getTexto y getTypo 488 00:21:28,150 --> 00:21:29,789 porque para ella es una abeja 489 00:21:29,789 --> 00:21:31,369 aunque es una obrera 490 00:21:31,369 --> 00:21:34,210 no es un objeto de tipo obrera 491 00:21:34,210 --> 00:21:35,710 sino es un objeto de tipo abeja 492 00:21:35,710 --> 00:21:37,690 así que no puedo decir segregacera 493 00:21:37,690 --> 00:21:38,769 por mucho que yo lo digo 494 00:21:38,769 --> 00:21:40,049 no me deja 495 00:21:40,049 --> 00:21:42,690 no hay manera de que ponga segregacera 496 00:21:42,690 --> 00:21:44,269 y me dice que da error 497 00:21:44,269 --> 00:21:45,210 no conoce ese método 498 00:21:45,210 --> 00:21:47,490 porque abeja 1 es de tipo abeja 499 00:21:47,490 --> 00:21:56,670 Si yo quiero usar los métodos de la clase obrera, lo que tendré que hacer es crear directamente una obrera o hacer un casting. 500 00:21:57,089 --> 00:21:58,609 Pauso, lo escribo y os lo explico. 501 00:22:00,329 --> 00:22:04,930 Entonces, he creado los siguientes objetos. 502 00:22:05,990 --> 00:22:12,470 Bien, si yo, las abejas se pueden mostrar y se mostraban, pero si yo a la abeja 1 intentaba decir que se agrega cera, me dice que no, 503 00:22:12,470 --> 00:22:17,390 porque es abeja y las abejas no se agregan cera, solo lo hacen las obreras. 504 00:22:17,490 --> 00:22:22,009 Entonces, sí, es una obrera, pero la he creado aquí como de tipo abeja. 505 00:22:22,170 --> 00:22:29,690 Así que no le puedo decir que se agregue cera, pero puedo hacer un casting y convertirla a una obrera. 506 00:22:30,009 --> 00:22:39,809 Entonces, me defino una abeja obrera 1, que es de tipo obrera, y a la abeja 1, que es de tipo abeja, le hago un casting, la convierto a obrera. 507 00:22:39,809 --> 00:22:44,210 Entonces ahora tengo obrera 1 que le puedo decir que se muestre 508 00:22:44,210 --> 00:22:46,970 Y obrera 1 que sí que le puedo decir que se agrega cera 509 00:22:46,970 --> 00:22:50,470 Aunque a abeja 1 no le puedo decir que se agrega cera 510 00:22:50,470 --> 00:22:52,430 Entonces ahora lo ejecuto 511 00:22:52,430 --> 00:22:57,289 Aquí tenemos las tres primeras abejas que son estas 512 00:22:57,289 --> 00:23:01,549 Y ahora la cuarta abeja que es de sexo femenino de tipo obrera 513 00:23:01,549 --> 00:23:03,250 Después de haberla convertido 514 00:23:03,250 --> 00:23:06,829 Y que sí que es capaz de decir estoy generando cera 515 00:23:06,829 --> 00:23:08,750 Aquí es donde se le llama 516 00:23:08,750 --> 00:23:18,319 Entonces, ahora yo abro este en un terminal 517 00:23:18,319 --> 00:23:20,680 Cierro esto para que veáis mejor 518 00:23:20,680 --> 00:23:22,819 Y estoy aquí 519 00:23:22,819 --> 00:23:23,819 Entonces, ¿qué quiero hacer? 520 00:23:24,180 --> 00:23:27,759 Quiero ver los cambios que ha habido en mi repositorio 521 00:23:27,759 --> 00:23:30,180 ¿Qué pasa? 522 00:23:30,259 --> 00:23:33,220 Que se han modificado las abejas, los bits, el huevo 523 00:23:33,220 --> 00:23:34,319 Todo se ha cambiado el paquete 524 00:23:34,319 --> 00:23:36,740 Entonces, se han cambiado todos 525 00:23:36,740 --> 00:23:39,740 Y de hecho, ha añadido un archivo que se llama obrera.java 526 00:23:39,740 --> 00:23:40,640 Que no existía 527 00:23:40,640 --> 00:23:43,180 entonces tengo que incluirlo en el seguimiento 528 00:23:43,180 --> 00:23:44,880 entonces para incluirlo en el seguimiento 529 00:23:44,880 --> 00:23:47,539 hago un git add punto 530 00:23:47,539 --> 00:23:47,980 entonces 531 00:23:47,980 --> 00:23:51,339 si ahora repito 532 00:23:51,339 --> 00:23:52,700 el comando de status 533 00:23:52,700 --> 00:23:54,759 fijaros, están en verde 534 00:23:54,759 --> 00:23:57,240 antes estaban en rojo y uno que no estaba con 535 00:23:57,240 --> 00:23:58,880 seguimiento y ahora todos están en verde 536 00:23:58,880 --> 00:24:01,259 y tienen seguimiento, pero tengo que hacer un git 537 00:24:01,259 --> 00:24:02,680 commit 538 00:24:02,680 --> 00:24:04,740 un menos m y un mensaje 539 00:24:04,740 --> 00:24:06,240 para decir 540 00:24:06,240 --> 00:24:07,720 que 541 00:24:07,720 --> 00:24:11,220 he creado la clase 542 00:24:11,220 --> 00:24:12,240 obrera 543 00:24:12,240 --> 00:24:15,299 y 544 00:24:15,299 --> 00:24:18,660 modificado 545 00:24:18,660 --> 00:24:21,539 el paquete del resto 546 00:24:21,539 --> 00:24:22,259 de las clases 547 00:24:22,259 --> 00:24:28,279 abis con mayúscula 548 00:24:28,279 --> 00:24:30,650 vale 549 00:24:30,650 --> 00:24:34,750 entonces ha habido 6 cambios 550 00:24:34,750 --> 00:24:35,130 aquí 551 00:24:35,130 --> 00:24:37,910 se han añadido 44 líneas 552 00:24:37,910 --> 00:24:39,549 y se han borrado 6 líneas 553 00:24:39,549 --> 00:24:42,069 y si yo ahora otra vez hago un 554 00:24:42,069 --> 00:24:49,029 git status podéis ver que dice que estoy en la rama main principal de mi voy a 555 00:24:49,029 --> 00:24:55,250 cambiarlo grande estoy en la rama yo he hecho un git status estoy en la rama main de mi 556 00:24:55,250 --> 00:25:01,450 proyecto local y me dice que mi rama está adelantada al proyecto de roedermoto 557 00:25:01,450 --> 00:25:09,250 y que haga un git push para subir los cambios vale 558 00:25:09,250 --> 00:25:13,809 bien si no me equivoco el comando que tengo que hacer es git push menos u 559 00:25:13,809 --> 00:25:14,829 origin main 560 00:25:14,829 --> 00:25:17,329 el menos uno tengo claro para qué es 561 00:25:17,329 --> 00:25:18,150 lo estoy investigando 562 00:25:18,150 --> 00:25:20,430 el origin es la rama remota 563 00:25:20,430 --> 00:25:23,369 y el main es mi rama local 564 00:25:23,369 --> 00:25:25,910 y fijaros que aquí en la zona central 565 00:25:25,910 --> 00:25:26,930 dice en la rama main 566 00:25:26,930 --> 00:25:30,089 esa es mi rama main local 567 00:25:30,089 --> 00:25:31,410 y luego origin main 568 00:25:31,410 --> 00:25:33,690 es la rama remota 569 00:25:33,690 --> 00:25:36,730 si os fijáis aquí 570 00:25:36,730 --> 00:25:39,430 si voy a mi navegador 571 00:25:39,430 --> 00:25:41,890 y os fijáis aquí 572 00:25:41,890 --> 00:25:48,509 estoy en la rama main mía, es que es muy difícil eso de entender, que origin es el 573 00:25:48,509 --> 00:25:53,650 origen, la rama original, porque esto es un repositorio clonado, entonces 574 00:25:53,650 --> 00:25:57,430 bueno, he hecho un git push "-u origin main", 575 00:25:57,430 --> 00:26:04,210 entonces como estoy identificada, ha podido hacerlo, dice que tiene cuatro 576 00:26:04,210 --> 00:26:11,109 objetos, listo, de 14 los ha subido los 14, los comprime y los sube, ya ha ido todo 577 00:26:11,109 --> 00:26:20,869 bien vale entonces si yo ahora hago un git status me dice que está actualizada y si yo me voy al 578 00:26:20,869 --> 00:26:29,410 repositorio remoto y le doy a refrescar vale ya no hay cuatro commit hay cinco porque yo acabo de 579 00:26:29,410 --> 00:26:36,230 hacer un commit entonces hace cinco minutos porque la hora es el momento en el que yo lo hice no 580 00:26:36,230 --> 00:26:43,450 cuando lo subo. Y si os fijáis en los commits y voy a ellos, que ahora no veo, estoy tan 581 00:26:43,450 --> 00:26:49,349 cerca de la pantalla, aquí. Estos son del 6 de marzo, este del 18 de abril. He hecho 582 00:26:49,349 --> 00:26:52,769 un commit que he creado la clase obrera y he modificado el paquete del resto de las 583 00:26:52,769 --> 00:26:59,150 clases con un error. Además, si os fijáis, hay un fork. Eso quiere decir que una persona 584 00:26:59,150 --> 00:27:04,809 ha cogido mi proyecto, que para eso lo tengo ahí, y ha hecho su propia rama y estará 585 00:27:04,809 --> 00:27:12,750 trabajando o no con su rama, vale, entonces vuelvo a mi proyecto de NetBeans, ya tengo 586 00:27:12,750 --> 00:27:21,829 los cambios subidos y ¿qué haría yo ahora? Pues volver a mi análisis, tengo la reina, 587 00:27:21,990 --> 00:27:30,109 la obrera y el zángano, no tengo que el zángano zumba, si tengo que poner huevos, vale, podría 588 00:27:30,109 --> 00:27:35,690 probar que vuelan y necesito hacer está claro que necesito hacer la colmena con 589 00:27:35,690 --> 00:27:40,509 un enjambre de n abejas y el panal 590 00:27:41,650 --> 00:27:46,470 me vuelvo aquí esos son los primeros pasos entonces 591 00:27:46,470 --> 00:27:51,309 ahora he estado completando las abejas y voy a completar las abejas con lo que 592 00:27:51,309 --> 00:27:56,890 falte cuando termine de completar las abejas mi siguiente paso será lo que he 593 00:27:56,890 --> 00:28:03,069 dicho hacer la colmena así que me salgo voy a pausar y voy a completar las abejas 594 00:28:03,069 --> 00:28:11,650 me han dicho que va a crear la colmena y la colmena como he visto tenía 595 00:28:11,650 --> 00:28:18,930 simplemente una colección o un array list de abejas que lo he hecho aquí y una 596 00:28:18,930 --> 00:28:24,849 matriz de huevos que le he llamado panel vale ahora digo bueno yo quiero que me 597 00:28:24,849 --> 00:28:28,630 genere el código insertar el código quiero el constructor 598 00:28:28,630 --> 00:28:31,970 ¿Y qué quiero que se cree con el constructor? 599 00:28:32,410 --> 00:28:36,869 Pues tanto el enjambre como el panal, lo genero. 600 00:28:37,369 --> 00:28:43,730 Ahora, se supone que le llega el ArrayList y lo crea. 601 00:28:43,789 --> 00:28:46,170 Pero yo no creo que sea así, sino que haga el new, ¿vale? 602 00:28:46,210 --> 00:28:48,049 Entonces voy a pausar un segundo para escribir. 603 00:28:51,089 --> 00:28:51,890 Bien, he vuelto. 604 00:28:51,890 --> 00:28:55,210 os había dicho 605 00:28:55,210 --> 00:28:57,009 que 606 00:28:57,009 --> 00:29:00,910 estaba completando las abejas 607 00:29:00,910 --> 00:29:02,670 he completado el zángano 608 00:29:02,670 --> 00:29:05,069 y que iba a revisar la colmena 609 00:29:05,069 --> 00:29:06,170 y el panal 610 00:29:06,170 --> 00:29:09,130 entonces me vuelvo aquí 611 00:29:09,130 --> 00:29:10,769 que le he hecho al zángano 612 00:29:10,769 --> 00:29:12,650 le he añadido un método que es trabaja 613 00:29:12,650 --> 00:29:14,789 que soy un zángano y nada más 614 00:29:14,789 --> 00:29:16,950 y he creado la colmena 615 00:29:16,950 --> 00:29:18,849 entonces al principio la 616 00:29:18,849 --> 00:29:20,450 colmena 617 00:29:20,450 --> 00:29:28,289 he creado un enjambre que es un array list de abejas y un panal que simplemente es un array de huevos 618 00:29:28,289 --> 00:29:32,789 respecto al constructor colmena, que lo voy a aumentar para que se vea bien 619 00:29:32,789 --> 00:29:38,009 el único que he hecho es que el enjambre, cuando os he cortado el vídeo en el momento anterior 620 00:29:38,009 --> 00:29:44,230 había creado el constructor automáticamente y me pedía que llegara el enjambre y que llegara el panal 621 00:29:44,230 --> 00:29:50,230 y yo no quiero, yo creo que cuando yo creo una colmena se cree con un enjambre vacío y con un panal aleatorio 622 00:29:50,230 --> 00:29:59,549 Si os fijáis aquí en la línea 20, hago un new de una raíz lis de abejas y tengo un enjambre vacío. 623 00:30:00,109 --> 00:30:12,569 Y luego creo un objeto aleatorio para trabajar con él y le digo que me cree el siguiente entero arredatorio que va hasta el 8. 624 00:30:12,630 --> 00:30:15,369 Nunca va a ser 8, ¿de acuerdo? De 0 a 7. 625 00:30:15,369 --> 00:30:16,650 y siempre le sumo 3 626 00:30:16,650 --> 00:30:18,730 eso quiere decir que aunque me devuelva un 0 627 00:30:18,730 --> 00:30:21,809 yo voy a tener mínimo 3 filas 628 00:30:21,809 --> 00:30:25,509 y luego el número de columnas 629 00:30:25,509 --> 00:30:26,930 es las filas menos 1 630 00:30:26,930 --> 00:30:29,509 así que en la línea 25 podéis ver 631 00:30:29,509 --> 00:30:31,390 aquí que mi panal 632 00:30:31,390 --> 00:30:32,589 que había definido como 633 00:30:32,589 --> 00:30:34,430 aquí anteriormente 634 00:30:34,430 --> 00:30:36,589 aquí tengo una raíz de huevos 635 00:30:36,589 --> 00:30:39,089 pues mi panal hago un new de huevos 636 00:30:39,089 --> 00:30:40,630 con el número de filas y columnas 637 00:30:40,630 --> 00:30:42,410 entonces yo creo una colmena vacía 638 00:30:42,410 --> 00:30:45,150 y he pensado en crear un método muestra 639 00:30:45,150 --> 00:30:46,430 para que se vea la colmena 640 00:30:46,430 --> 00:30:49,289 entonces lo que hago es un system now 641 00:30:49,289 --> 00:30:50,930 solamente soy una colmena 642 00:30:50,930 --> 00:30:52,950 y le pregunto al enjambre si está vacío 643 00:30:52,950 --> 00:30:54,190 si el enjambre está vacío 644 00:30:54,190 --> 00:30:56,589 le imprimo el mensaje no tengo abejas 645 00:30:56,589 --> 00:30:59,150 y en otro caso hago un for para recorrer 646 00:30:59,150 --> 00:31:01,029 todas mis abejas que son de tipo 647 00:31:01,029 --> 00:31:02,809 abeja, luego ya veremos como 648 00:31:02,809 --> 00:31:04,349 al meterlas no hay ningún problema 649 00:31:04,349 --> 00:31:07,170 y luego este es el contenido de mi panel 650 00:31:07,170 --> 00:31:09,390 que hago un for en el array 651 00:31:09,390 --> 00:31:11,029 de cada una de las filas 652 00:31:11,029 --> 00:31:13,109 y esto todavía no lo he probado 653 00:31:13,109 --> 00:31:14,430 si está mal luego lo cambio 654 00:31:14,430 --> 00:31:17,369 que si el objeto que hay en el panal 655 00:31:17,369 --> 00:31:19,250 i, j es igual a nul 656 00:31:19,250 --> 00:31:20,089 entonces 657 00:31:20,089 --> 00:31:22,410 tengo que poner lo contrario 658 00:31:22,410 --> 00:31:25,549 si no es nul, tengo que poner lo que lo muestre 659 00:31:25,549 --> 00:31:27,069 y es para que me muestre los huevos 660 00:31:27,069 --> 00:31:28,549 un momento que lo cambio 661 00:31:28,549 --> 00:31:32,490 aquí tengo que poner no 662 00:31:32,490 --> 00:31:35,390 entonces si el objeto no es nul, me mostrará 663 00:31:35,390 --> 00:31:37,089 porque es un huevo y se mostrará 664 00:31:37,089 --> 00:31:38,670 el huevo 665 00:31:38,670 --> 00:31:40,829 y luego se me ha ocurrido 666 00:31:40,829 --> 00:31:42,069 como guardar un huevo 667 00:31:42,069 --> 00:31:45,430 entonces cuando alguien me diga guardar huevo me va a mandar un huevo 668 00:31:45,430 --> 00:31:49,809 y lo primero que compruebo es si el panal está lleno 669 00:31:49,809 --> 00:31:52,809 panal is full, que es un método que yo me he inventado hasta aquí abajo 670 00:31:52,809 --> 00:31:56,549 entonces si el panal no está lleno voy a ir recorriendo todo el panal 671 00:31:56,549 --> 00:32:01,450 hasta que encuentre un hueco, el que sea, el primero que encuentre vacío 672 00:32:01,450 --> 00:32:04,470 y en ahí voy a guardar el huevo 673 00:32:04,470 --> 00:32:09,289 y si os fijáis, meto en la posición panal IJ el huevo, devuelvo un true 674 00:32:09,289 --> 00:32:10,849 eso quiere decir que lo he guardado 675 00:32:10,849 --> 00:32:13,069 en el caso de que el panal esté lleno 676 00:32:13,069 --> 00:32:15,049 panal is full, entonces voy a devolver 677 00:32:15,049 --> 00:32:16,910 un false, ¿para qué he hecho una 678 00:32:16,910 --> 00:32:18,789 función panal is full? porque para 679 00:32:18,789 --> 00:32:20,750 separarlo un poco, ¿vale? entonces aquí en 680 00:32:20,750 --> 00:32:22,890 panal is full, fijaos, es lo mismo 681 00:32:22,890 --> 00:32:24,930 hago un for, recorro todo el 682 00:32:24,930 --> 00:32:26,730 panal, desde las i con las 683 00:32:26,730 --> 00:32:28,809 filas a las columnas 684 00:32:28,809 --> 00:32:30,890 j, y entonces si el objeto 685 00:32:30,890 --> 00:32:32,430 es igual a null, quiere decir 686 00:32:32,430 --> 00:32:34,670 que hay algo vacío, devuelvo false 687 00:32:34,670 --> 00:32:36,950 porque ya sé que no está lleno, porque al menos 688 00:32:36,950 --> 00:32:38,670 me he encontrado uno vacío 689 00:32:38,670 --> 00:32:40,910 si llego a esta línea, a la 70 690 00:32:40,910 --> 00:32:42,650 es que he recorrido todas las filas 691 00:32:42,650 --> 00:32:44,009 y todas las columnas del panel 692 00:32:44,009 --> 00:32:45,750 y no he encontrado nada vacío 693 00:32:45,750 --> 00:32:47,529 y por lo tanto está lleno, que es true 694 00:32:47,529 --> 00:32:50,789 entonces cuando alguien me dé para guardar 695 00:32:50,789 --> 00:32:52,549 un huevo, si está lleno le voy a devolver 696 00:32:52,549 --> 00:32:54,109 que no lo he podido guardar, false 697 00:32:54,109 --> 00:32:56,130 entonces, ¿cómo he cambiado 698 00:32:56,130 --> 00:32:59,769 mi archivo viz? 699 00:32:59,970 --> 00:33:01,490 pues simplemente 700 00:33:01,490 --> 00:33:05,109 he creado 701 00:33:05,109 --> 00:33:07,930 he creado un zángano 702 00:33:07,930 --> 00:33:09,990 he creado una reina, he creado dos huevos 703 00:33:09,990 --> 00:33:12,109 le he dicho a la reina que ponga los huevos 704 00:33:12,109 --> 00:33:13,869 y luego he creado una colmena 705 00:33:13,869 --> 00:33:14,950 que la he llamado blanca 706 00:33:14,950 --> 00:33:17,430 así que tendré que decirle a blanca 707 00:33:17,430 --> 00:33:19,589 que se muestra 708 00:33:19,589 --> 00:33:23,890 y podría decirle a blanca 709 00:33:23,890 --> 00:33:25,289 que me guarde los huevos 710 00:33:25,289 --> 00:33:27,250 blanca punto 711 00:33:27,250 --> 00:33:29,130 guarda huevo 712 00:33:29,130 --> 00:33:32,009 me ha puesto huevo dos, pues me parece bien 713 00:33:32,009 --> 00:33:36,109 y luego le voy a decir a blanca 714 00:33:36,109 --> 00:33:37,049 punto 715 00:33:37,049 --> 00:33:39,410 guarda huevo 716 00:33:39,410 --> 00:33:41,490 y voy a guardar el huevo 1 717 00:33:41,490 --> 00:33:44,109 y luego le vuelvo a decir a Blanca 718 00:33:44,109 --> 00:33:44,869 que se muestre 719 00:33:44,869 --> 00:33:47,250 y no sé que tal irá 720 00:33:47,250 --> 00:33:48,990 pero aquí va a variar el vídeo 721 00:33:48,990 --> 00:33:50,430 porque hoy no puedo hacer más 722 00:33:50,430 --> 00:33:53,250 vale, lo guardo, lo ejecuto 723 00:33:55,190 --> 00:33:57,349 vale, ahí me da un error 724 00:33:57,349 --> 00:33:59,269 vale, creo que me he salido por algún sitio 725 00:33:59,269 --> 00:34:00,269 bien 726 00:34:00,269 --> 00:34:03,230 tengo la abeja de sexo masculino 727 00:34:03,230 --> 00:34:04,210 de tipo zángano 728 00:34:04,210 --> 00:34:06,170 vale, soy un huevo de sexo masculino 729 00:34:06,170 --> 00:34:07,109 y no he comido nada 730 00:34:07,109 --> 00:34:09,329 soy una colmena, no tengo abejas 731 00:34:09,329 --> 00:34:10,650 y este es el contenido de panal 732 00:34:10,650 --> 00:34:12,550 me he salido en algún momento 733 00:34:12,550 --> 00:34:15,989 recorriendo el panal la primera vez 734 00:34:15,989 --> 00:34:17,630 entonces voy a recorrer 735 00:34:17,630 --> 00:34:20,530 el contenido de mi panal la primera vez 736 00:34:20,530 --> 00:34:22,570 blanca 737 00:34:22,570 --> 00:34:24,989 punto muestra 738 00:34:24,989 --> 00:34:26,670 vale 739 00:34:26,670 --> 00:34:29,070 he dicho 740 00:34:29,070 --> 00:34:31,389 este es el contenido de panal y aquí me he quedado 741 00:34:31,389 --> 00:34:33,969 porque seguramente esto que yo he dicho de comprobar 742 00:34:33,969 --> 00:34:36,210 que si el objeto es igual a null 743 00:34:36,210 --> 00:34:38,389 si no hay objeto está mal 744 00:34:38,389 --> 00:34:40,010 así que pauso un momento que busco 745 00:34:40,010 --> 00:34:40,949 cómo se hace eso 746 00:34:40,949 --> 00:34:44,389 solucionado, no recordaba cómo comparar 747 00:34:44,389 --> 00:34:46,190 una posición con un null 748 00:34:46,190 --> 00:34:47,909 entonces tenía todas las comparaciones 749 00:34:47,909 --> 00:34:48,849 mal 750 00:34:48,849 --> 00:34:51,469 fijaros, cuando 751 00:34:51,469 --> 00:34:53,170 digo muestra 752 00:34:53,170 --> 00:34:55,269 aquí en la línea 753 00:34:55,269 --> 00:34:57,869 cuando digo 754 00:34:57,869 --> 00:35:00,010 si es el contenido bipanal, vale, para cada fila 755 00:35:00,010 --> 00:35:01,929 y cada columna compruebo si un objeto 756 00:35:01,929 --> 00:35:06,030 es distinto de nul, si es distinto de nul 757 00:35:07,530 --> 00:35:13,050 pone el objeto, pondría el huevo, vale, y claro yo debería poner, si es nul, debería 758 00:35:13,050 --> 00:35:17,889 poner un cero o algo así, porque ahora mismo mirar lo que, bueno tampoco importa 759 00:35:17,889 --> 00:35:22,329 lo que me hace, pues este es el contenido de mi panal, soy yo un huevo de sexo femenino 760 00:35:22,329 --> 00:35:26,690 he comido jalea cero, soy yo un huevo de sexo masculino, he comido jalea cero, no me dicen 761 00:35:26,690 --> 00:35:31,070 qué posición, ni está ni nada, pero bueno no me lo pide, yo pruebo el ejercicio, vale 762 00:35:31,070 --> 00:35:34,389 y he tenido que modificar el guarda huevo y el panel is full 763 00:35:34,389 --> 00:35:37,710 porque las comparaciones con null las hacía mal 764 00:35:37,710 --> 00:35:39,869 vale, entonces, vuelvo 765 00:35:39,869 --> 00:35:45,329 tengo las funciones de la colmena para comprobar si guarda un huevo o no 766 00:35:45,329 --> 00:35:47,070 si está lleno y para mostrar 767 00:35:47,070 --> 00:35:52,389 y lo único que me falta es añadir abejas a la colmena 768 00:35:53,650 --> 00:35:54,789 voy a pausar 769 00:35:54,789 --> 00:35:56,389 bueno, voy a hacer el... 770 00:35:57,150 --> 00:35:59,989 ojo, voy a hacer los comentarios 771 00:35:59,989 --> 00:36:24,489 Entonces me voy al tools, voy a abrir el terminal aquí mismo y voy a poner un git status, si soy capaz de escribir, un momento que se me ha quedado tostado, cerro y lo abro en el otro lado. 772 00:36:24,489 --> 00:37:03,730 Bien, si os fijáis he modificado el bis, porque he estado añadiendo la colmena y he estado creando los huevos y también he creado la clase colmena donde he puesto los métodos que os he dicho. 773 00:37:03,730 --> 00:37:06,250 entonces voy a añadir 774 00:37:06,250 --> 00:37:09,989 bis.java 775 00:37:09,989 --> 00:37:14,230 y también voy a añadir la colmena 776 00:37:14,230 --> 00:37:20,760 en vez de un git add puedes añadir un archivo en concreto 777 00:37:20,760 --> 00:37:25,460 así que ahora hago un git commit-m 778 00:37:25,460 --> 00:37:27,480 que digo que 779 00:37:27,480 --> 00:37:30,619 he creado 780 00:37:30,619 --> 00:37:32,960 la clase 781 00:37:32,960 --> 00:37:35,920 colmena 782 00:37:35,920 --> 00:37:39,300 con enjambre y banal 783 00:37:39,300 --> 00:37:47,920 y he utilizado la colmena 784 00:37:47,920 --> 00:37:49,739 en el principal 785 00:37:49,739 --> 00:37:55,010 vale 786 00:37:55,010 --> 00:38:00,289 entonces ahora hago un git push 787 00:38:00,289 --> 00:38:05,960 menos origin main 788 00:38:05,960 --> 00:38:12,000 y subirá estos cambios que yo he hecho 789 00:38:12,000 --> 00:38:13,780 si me voy 790 00:38:13,780 --> 00:38:17,840 he vuelto 791 00:38:17,840 --> 00:38:19,960 a mi repositorio 792 00:38:19,960 --> 00:38:22,059 y si yo lo refresco 793 00:38:22,059 --> 00:38:23,480 porque esto lo hace una hora 794 00:38:23,480 --> 00:38:25,980 podréis ver que ha habido 795 00:38:25,980 --> 00:38:26,639 7 commits 796 00:38:26,639 --> 00:38:30,059 si veo los 797 00:38:30,059 --> 00:38:31,019 commits 798 00:38:31,019 --> 00:38:34,059 este es el commit que acabo de añadir 799 00:38:34,059 --> 00:38:36,139 mientras no estaba grabando 800 00:38:36,139 --> 00:38:38,119 completé el zángano y el huevo y hice un commit 801 00:38:38,119 --> 00:38:39,860 y ahora he creado la clase colmena 802 00:38:39,860 --> 00:38:41,500 en Hamlet Penal he utilizado la 803 00:38:41,500 --> 00:38:42,920 colmena 804 00:38:42,920 --> 00:38:48,260 Vale, entonces, vuelvo a mi presentación. 805 00:38:50,619 --> 00:38:55,099 Vale, he creado la colmena. Me faltan cosas de la colmena, como por ejemplo añadir abejas. 806 00:38:55,579 --> 00:38:58,280 He creado el panal, que ya he puesto cómo añadir huevo. 807 00:38:58,599 --> 00:39:04,619 He creado el huevo, pero me falta modificarlo para que pueda nacer el huevo. 808 00:39:04,719 --> 00:39:07,039 Tengo que hacer un método para nacer huevo. 809 00:39:13,469 --> 00:39:16,510 He buscado el sinónimo de nacer, que me gusta más eclosionar. 810 00:39:16,510 --> 00:39:22,889 Entonces, lo que estoy buscando es un método para huevo que devuelva una abeja y que se llame eclosionar. 811 00:39:22,969 --> 00:39:25,730 No tiene que recibir ningún argumento, eso lo voy a comprobar. 812 00:39:25,809 --> 00:39:33,909 Si he comido jalea, si he comido mucho jalea, devolveré, dependiendo del sexo que yo tenga, 813 00:39:34,070 --> 00:39:37,349 devolveré o un zángano o una reina o una obrera, ¿de acuerdo? 814 00:39:37,489 --> 00:39:38,449 Lo voy a escribir. 815 00:39:44,119 --> 00:39:47,159 Bien, he creado un método eclosionar que me gusta mucho. 816 00:39:48,360 --> 00:39:49,679 ¿Y en qué consiste? 817 00:39:49,679 --> 00:39:52,519 pues devuelvo una abeja 818 00:39:52,519 --> 00:39:54,019 ¿de acuerdo? entonces si 819 00:39:54,019 --> 00:39:56,300 le pregunto el sexo a mi 820 00:39:56,300 --> 00:39:58,500 huevo, el sexo estoy hablando de huevo 821 00:39:58,500 --> 00:39:59,199 porque ojo 822 00:39:59,199 --> 00:40:01,639 estoy en la clase 823 00:40:01,639 --> 00:40:03,659 huevo ¿vale? entonces 824 00:40:03,659 --> 00:40:05,400 tengo un método eclosional 825 00:40:05,400 --> 00:40:07,699 que el huevo va a devolver una abeja 826 00:40:07,699 --> 00:40:09,500 entonces le pregunto a mi huevo 827 00:40:09,500 --> 00:40:11,480 ¿cuál es su sexo? y si coincide 828 00:40:11,480 --> 00:40:13,380 con masculino siempre va a devolver 829 00:40:13,380 --> 00:40:14,780 un zángano que es una abeja 830 00:40:14,780 --> 00:40:16,860 y en otro caso es 831 00:40:16,860 --> 00:40:19,480 femenino entonces será una reina 832 00:40:19,480 --> 00:40:21,159 solo si ha comido suficiente jalea 833 00:40:21,159 --> 00:40:22,900 entonces le pregunta al huevo 834 00:40:22,900 --> 00:40:24,280 cuánta jalea ha ingerido 835 00:40:24,280 --> 00:40:27,239 y comprueba si es mayor o igual 836 00:40:27,239 --> 00:40:28,619 o una constante que he definido 837 00:40:28,619 --> 00:40:29,480 que ahora os enseño 838 00:40:29,480 --> 00:40:31,559 que es el mínimo de jalea para ser reina 839 00:40:31,559 --> 00:40:33,739 entonces si es así devuelvo una reina 840 00:40:33,739 --> 00:40:35,099 y si no devuelvo una obrera 841 00:40:35,099 --> 00:40:37,320 os voy a enseñar la constante 842 00:40:37,320 --> 00:40:39,260 está aquí arriba 843 00:40:39,260 --> 00:40:41,900 es una constante, es final 844 00:40:41,900 --> 00:40:43,440 que es constante y es estática 845 00:40:43,440 --> 00:40:46,800 es decir que es la misma para todos los huevos 846 00:40:46,800 --> 00:40:48,400 y lo he definido como 20 847 00:40:48,400 --> 00:40:52,099 y el otro cambio que he hecho es en la colmena 848 00:40:52,099 --> 00:40:56,559 porque claro, si un huevo eclosiona de alguna manera lo tengo que gestionar 849 00:40:56,559 --> 00:41:01,960 entonces a la colmena le voy a decir que eclosione el huevo de una fila en concreto 850 00:41:01,960 --> 00:41:04,380 y de una columna en concreto 851 00:41:04,380 --> 00:41:08,340 entonces si la fila o la columna es menor que cero 852 00:41:08,340 --> 00:41:10,980 o la fila es mayor que la longitud de las filas 853 00:41:10,980 --> 00:41:15,219 o la columna es mayor que la longitud de las columnas 854 00:41:15,219 --> 00:41:17,860 devuelvo un false porque no he podido eclosionar el huevo 855 00:41:17,860 --> 00:41:19,579 y que hacemos, primero 856 00:41:19,579 --> 00:41:21,380 defino una nueva abeja 857 00:41:21,380 --> 00:41:23,719 que lo voy a obtener 858 00:41:23,719 --> 00:41:24,940 llamando a la posición 859 00:41:24,940 --> 00:41:28,019 fila columna del panal y llamándole 860 00:41:28,019 --> 00:41:29,260 a eclosionar 861 00:41:29,260 --> 00:41:31,679 entonces voy a obtener una abeja 862 00:41:31,679 --> 00:41:33,719 y que hacemos, le añadimos al enjambre 863 00:41:33,719 --> 00:41:35,079 con add nueva abeja 864 00:41:35,079 --> 00:41:38,059 y luego vacío esa posición del panal 865 00:41:38,059 --> 00:41:39,679 que sería la fila columna 866 00:41:39,679 --> 00:41:42,239 pondría null y devolvería un 867 00:41:42,239 --> 00:41:44,019 true, entonces lo voy a probar 868 00:41:44,019 --> 00:41:45,440 que va a fallar, pero bueno 869 00:41:45,440 --> 00:41:49,280 estoy aquí, mayúsculas F6 870 00:41:49,280 --> 00:41:50,699 vale 871 00:41:50,699 --> 00:41:53,500 y me voy a bis, que no lo he cambiado 872 00:41:53,500 --> 00:41:54,880 entonces yo he guardado 873 00:41:54,880 --> 00:41:56,559 el huevo y 874 00:41:56,559 --> 00:41:59,260 la columna 875 00:41:59,260 --> 00:42:01,340 lo que no he añadido 876 00:42:01,340 --> 00:42:03,099 son las abejas, vale, no importa 877 00:42:03,099 --> 00:42:05,039 voy a decirle 878 00:42:05,039 --> 00:42:05,340 a 879 00:42:05,340 --> 00:42:07,599 Blanca 880 00:42:07,599 --> 00:42:10,940 que es la colmena 881 00:42:10,940 --> 00:42:12,880 que eclosione el huevo 882 00:42:12,880 --> 00:42:14,940 y voy a imaginar que está en la posición 883 00:42:14,940 --> 00:42:16,599 en una y en la 884 00:42:16,599 --> 00:42:19,219 columna 885 00:42:19,219 --> 00:42:22,280 no, fila 0 886 00:42:22,280 --> 00:42:24,300 porque como se ha metido en la primera 887 00:42:24,300 --> 00:42:26,139 y columna 888 00:42:26,139 --> 00:42:27,639 1, vale 889 00:42:27,639 --> 00:42:29,940 y le voy a decir que me muestre 890 00:42:29,940 --> 00:42:32,059 y ahora fallará todo porque esto no lo he probado 891 00:42:32,059 --> 00:42:34,119 que me muestre 892 00:42:34,119 --> 00:42:36,860 vale, lo salvo, mayúsculas F6 893 00:42:36,860 --> 00:42:42,059 vale, entonces, fijaros 894 00:42:42,059 --> 00:42:44,559 en mi, era una colmena que no tenía 895 00:42:44,559 --> 00:42:46,460 abejas y que tenía dos huevos 896 00:42:46,460 --> 00:42:48,400 Uno femenino y uno masculino 897 00:42:48,400 --> 00:42:51,820 Y ahora, después de mandarle a eclosionar 898 00:42:51,820 --> 00:42:53,059 Es una colmena 899 00:42:53,059 --> 00:42:55,099 Y ahora sí tiene una abeja 900 00:42:55,099 --> 00:42:55,960 Que es masculina 901 00:42:55,960 --> 00:42:58,119 Porque ha mandado a eclosionar el huevo masculino 902 00:42:58,119 --> 00:43:00,380 Y el contenido de mi panal ya tiene 903 00:43:00,380 --> 00:43:02,960 Solo un huevo femenino 904 00:43:02,960 --> 00:43:06,619 Vale, entonces vuelvo a la presentación 905 00:43:06,619 --> 00:43:11,639 He hecho la colmena 906 00:43:11,639 --> 00:43:12,679 He hecho el panal 907 00:43:12,679 --> 00:43:15,719 He hecho que un huevo pueda eclosionar 908 00:43:15,719 --> 00:43:18,440 y ahora tendría que revisar mi lista de tareas 909 00:43:18,440 --> 00:43:20,500 porque ahora con los métodos que yo he hecho 910 00:43:20,500 --> 00:43:24,019 debería ver si puedo hacer todo lo que me pide el programa 911 00:43:24,019 --> 00:43:26,300 entonces me vengo a mi lista de tareas 912 00:43:26,300 --> 00:43:29,480 aquí estoy en la revisar lista de tareas 913 00:43:29,480 --> 00:43:30,840 me vengo al navegador 914 00:43:30,840 --> 00:43:33,579 me vengo a mi examen y me dice 915 00:43:33,579 --> 00:43:35,559 simula la colmena de blanca 916 00:43:35,559 --> 00:43:38,260 con al menos una reina, dos obreras y un zángono 917 00:43:38,260 --> 00:43:41,079 bueno, pues podía crear un método para añadir 918 00:43:41,079 --> 00:43:43,679 la reina, las dos obreras y el zángono 919 00:43:43,679 --> 00:43:45,539 y luego tendría que mostrar la colmena 920 00:43:45,539 --> 00:43:47,079 con el sexo y tipo de cada abeja 921 00:43:47,079 --> 00:43:48,619 así como ocupación del panal 922 00:43:48,619 --> 00:43:50,980 pues entonces me vuelvo 923 00:43:50,980 --> 00:43:52,940 al netbeans 924 00:43:52,940 --> 00:43:55,500 hago un momento de pausa 925 00:43:55,500 --> 00:43:56,800 para añadir eso 926 00:43:56,800 --> 00:43:58,679 continúo 927 00:43:58,679 --> 00:44:00,380 que he creado 928 00:44:00,380 --> 00:44:03,460 he creado en la colmena un método que se llama 929 00:44:03,460 --> 00:44:04,460 addabeja 930 00:44:04,460 --> 00:44:06,960 que recibe una abeja de tipo genérico 931 00:44:06,960 --> 00:44:07,820 y la añade 932 00:44:07,820 --> 00:44:10,760 es boolean, me devuelve true o false 933 00:44:10,760 --> 00:44:13,079 por ahora no lo uso pero yo le digo 934 00:44:13,079 --> 00:44:15,119 que me haga el retun de enjambre.add 935 00:44:15,119 --> 00:44:16,380 que será un trugo false 936 00:44:16,380 --> 00:44:18,380 eso en la colmena 937 00:44:18,380 --> 00:44:19,760 y luego en bis que he hecho para 938 00:44:19,760 --> 00:44:22,139 completar el requisito 939 00:44:22,139 --> 00:44:24,119 añado mis abejas 940 00:44:24,119 --> 00:44:26,380 con abejas he añadido mi reina 941 00:44:26,380 --> 00:44:28,360 una obrera, he creado una obrera 942 00:44:28,360 --> 00:44:29,699 nueva 943 00:44:29,699 --> 00:44:32,480 la he añadido y he creado el zángano que tenía 944 00:44:32,480 --> 00:44:33,659 y le he dicho que me muestre 945 00:44:33,659 --> 00:44:35,920 la colmena 946 00:44:35,920 --> 00:44:36,880 y luego 947 00:44:36,880 --> 00:44:39,760 los dos huevos que ya tenía antes 948 00:44:39,760 --> 00:44:41,559 y me muestra la colmena 949 00:44:41,559 --> 00:44:43,920 después de guardar los huevos y después de cocinado un huevo 950 00:44:43,920 --> 00:44:51,079 Si os fijáis aquí, estas son mis pruebas de las abejas que las puedo quitar, pero aquí ya empieza mi colmena. 951 00:44:51,199 --> 00:44:58,139 Mi colmena tiene las cuatro abejas que me piden los requisitos y el contenido de mi panal que estaba vacío. 952 00:44:58,599 --> 00:45:06,300 Después de guardar los huevos, que es esto, tengo las cuatro abejas y los dos huevos. 953 00:45:06,300 --> 00:45:08,300 y después de eclosionar un huevo 954 00:45:08,300 --> 00:45:09,099 ¿qué ha pasado? 955 00:45:09,380 --> 00:45:12,679 que sigo teniendo mis cuatro abejas 956 00:45:12,679 --> 00:45:14,099 ahora una abeja más 957 00:45:14,099 --> 00:45:15,500 que es masculina de tipo zángano 958 00:45:15,500 --> 00:45:17,860 y un huevo de sexo femenino 959 00:45:17,860 --> 00:45:19,400 si me vuelvo al enunciado 960 00:45:19,400 --> 00:45:22,300 he simulado la colmena 961 00:45:22,300 --> 00:45:24,239 he mostrado la colmena 962 00:45:24,239 --> 00:45:26,519 como el sexo y tipo de ocupación 963 00:45:26,519 --> 00:45:28,079 tengo que recorrer el enjambre 964 00:45:28,079 --> 00:45:29,500 y ahora deberé decirle 965 00:45:29,500 --> 00:45:31,480 de alguna manera que trabaje 966 00:45:31,480 --> 00:45:34,380 o que ponga dos huevos 967 00:45:34,380 --> 00:45:36,039 que se vea en cera y es un zángano 968 00:45:36,039 --> 00:45:42,679 esos serían los siguientes requisitos que tendría que cumplir 969 00:45:42,679 --> 00:45:48,219 recorrer el enjambre y los huevos, y alimentar los huevos puedo hacerlo 970 00:45:48,219 --> 00:45:51,940 los huevos se guardan en posición inocupada del panal, ya lo estoy haciendo 971 00:45:51,940 --> 00:45:56,159 y cuando nace un huevo se elimina de la posición, ya lo estoy haciendo 972 00:45:56,159 --> 00:46:00,500 y luego tendría que mostrar la colmena después de haber nacido los huevos 973 00:46:00,500 --> 00:46:02,260 entonces, esos requisitos 974 00:46:02,260 --> 00:46:04,099 otro día os los enseño 975 00:46:04,099 --> 00:46:06,280 como los he resuelto, pero ya está 976 00:46:06,280 --> 00:46:08,000 casi todo, hasta luego 977 00:46:08,000 --> 00:46:12,369 creo 978 00:46:12,369 --> 00:46:13,110 espera, a ver 979 00:46:13,110 --> 00:46:16,429 aquí, revisando 980 00:46:16,429 --> 00:46:18,170 lista de tareas y revisando 981 00:46:18,170 --> 00:46:20,190 requisitos, luego tendría que volver a mirar 982 00:46:20,190 --> 00:46:21,309 que no se me ha olvidado nada 983 00:46:21,309 --> 00:46:23,590 muchas gracias