1 00:07:03,600 --> 00:07:10,259 al objeto T2 también. El objeto T2 ahora tiene dos referencias, T2 y COMPLE. 2 00:07:10,259 --> 00:07:24,949 Si en vez fuera así, ahora T2 tendría una sola referencia y tanto T1 como COMPLE apuntarían, 3 00:07:25,490 --> 00:07:35,129 referenciarían, manejarían, handlearían el mismo objeto que es este objeto de aquí. 4 00:07:35,129 --> 00:07:53,100 ¿Sí? Entonces, ¿qué es this? This es una palabra reservada que se referencia a la instancia sobre el que se ha llamado el método dentro de un mismo método. 5 00:07:53,519 --> 00:08:02,819 Deriva del hecho que a veces yo quiero hacer referencia a mi objeto, al objeto sobre el que se ha llamado, y aquí dentro no la tengo esta referencia. 6 00:08:02,819 --> 00:08:40,139 Oye, y no podría hacer public, tarea, recupera, tarea, compleja, tarea, t1, tarea, otra, tarea, tarea, ¿sí? 7 00:08:40,139 --> 00:09:18,370 Y luego hacer aquí dentro lo mismo, pero en vez de usar una tarea, en vez de desutilizar otra tarea, esto no hace lo mismo. 8 00:09:31,830 --> 00:09:46,370 Se llamaría tarea compleja 2 es igual a recupera tarea compleja de t1, t2. 9 00:09:46,669 --> 00:09:51,159 ¿Cuál es la diferencia entre este y este? 10 00:09:51,159 --> 00:10:05,789 Que este de aquí no se llama sobre un objeto porque no depende del objeto. 11 00:10:06,350 --> 00:10:15,009 Aquí dentro el dis no se usa nada y no se usa ninguna referencia a un objeto concreto. 12 00:10:15,009 --> 00:10:16,389 Este de aquí 13 00:10:16,389 --> 00:10:19,110 Yo lo podría llamar 14 00:10:19,110 --> 00:10:21,289 Sinestatic sobre T1 15 00:10:21,289 --> 00:10:23,210 Punto 16 00:10:23,210 --> 00:10:24,970 Recupera la tarea concreta 17 00:10:24,970 --> 00:10:26,490 Pero el resultado 18 00:10:26,490 --> 00:10:28,870 No depende de este T1 19 00:10:28,870 --> 00:10:31,590 Dependerá siempre de este T1 y este T2 20 00:10:31,590 --> 00:10:33,230 Es decir que si yo tengo 21 00:10:33,230 --> 00:10:34,730 Tarea T3 22 00:10:34,730 --> 00:10:36,669 Igual a nul 23 00:10:36,669 --> 00:10:39,269 Yo podría 24 00:10:39,269 --> 00:10:41,570 Yo 25 00:10:41,570 --> 00:10:43,529 Tarea 4 26 00:10:43,529 --> 00:10:46,549 Yo podría hacer tranquilamente T3 27 00:10:46,549 --> 00:10:49,830 Y esto devuelve lo mismo, devolvería T1 28 00:10:49,830 --> 00:10:50,870 Justo 29 00:10:50,870 --> 00:10:54,350 Pero esto devuelve T1 30 00:10:54,350 --> 00:10:56,809 Esto devuelve T1 31 00:10:56,809 --> 00:11:02,769 O sea que cambiar el objeto no cambia el resultado de este método 32 00:11:02,769 --> 00:11:06,389 Porque el resultado de este método depende solo de sus parámetros 33 00:11:06,389 --> 00:11:08,450 ¿Verdad? 34 00:11:09,389 --> 00:11:12,929 Por lo tanto este método aquí no depende del objeto 35 00:11:12,929 --> 00:11:17,629 Va en un cierto sentido, dependería de la clase 36 00:11:17,629 --> 00:11:21,990 Entonces esto sería estático 37 00:11:21,990 --> 00:11:28,470 Es como los métodos que hemos utilizado hasta ahora 38 00:11:28,470 --> 00:11:31,870 Es una función que me da los dos parámetros y ya está 39 00:11:31,870 --> 00:11:35,090 Entonces, ¿cuál es correcto? ¿Esto o esto? 40 00:11:36,809 --> 00:11:39,330 Ninguno de los dos es correcto, depende de lo que yo quiero hacer 41 00:11:39,330 --> 00:11:42,529 Esto es un comportamiento de un objeto 42 00:11:42,529 --> 00:11:52,289 Estoy diciendo que el objeto es capaz de compararse con otra tarea y devolver cuál de las dos es más compleja. 43 00:11:53,090 --> 00:11:56,409 Sin embargo, este de aquí no es un comportamiento del objeto. 44 00:11:56,850 --> 00:12:03,669 Es una funcionalidad que proporciona la clase, que me permite comparar dos tareas y decir cuál es la más compleja. 45 00:12:06,110 --> 00:12:11,690 Así, sin saber nada más en este contexto, pues esto casi me gusta más que esto. 46 00:12:11,690 --> 00:12:18,169 Pero en otros contextos, pues no, es mejor esto 47 00:12:18,169 --> 00:12:22,649 Por ejemplo, existe un método que es el método equals 48 00:12:22,649 --> 00:12:29,309 Que me permite comparar un objeto con otro objeto 49 00:12:29,309 --> 00:12:31,990 Sería aquí con equals 50 00:12:31,990 --> 00:12:35,230 No equals, compare tú, perdón 51 00:12:35,230 --> 00:12:39,159 Que veremos más adelante 52 00:12:39,159 --> 00:12:42,659 Porque esto es de una interfaz que se llama comparable 53 00:12:42,659 --> 00:12:45,000 Y veremos que es una interfaz 54 00:12:45,000 --> 00:12:46,720 Y veremos que es comparable para que sirve 55 00:12:46,720 --> 00:12:48,399 Pero con esta cosa de aquí 56 00:12:48,399 --> 00:12:51,679 Yo defino un orden entre T1 y T2 57 00:12:51,679 --> 00:12:54,679 Y gracias a esto puedo llamar métodos 58 00:12:54,679 --> 00:12:57,000 Que por ejemplo me ordenan solos un array 59 00:12:57,000 --> 00:13:00,899 Yo te defino como se ordenan dos objetos 60 00:13:00,899 --> 00:13:03,620 Y una vez que te he definido como se ordenan 61 00:13:03,620 --> 00:13:04,580 Tú me los ordenas 62 00:13:04,580 --> 00:13:06,500 Yo te defino la regla 63 00:13:06,500 --> 00:13:08,340 Y tú los ordenas 64 00:13:08,340 --> 00:13:09,779 Pero en the future 65 00:13:09,779 --> 00:13:13,929 ¿Sí? 66 00:13:13,929 --> 00:13:23,190 Entonces, estos también son los primeros pasos en la diferencia entre métodos no estáticos 67 00:13:23,190 --> 00:13:26,029 Métodos que dependen del objeto, ¿vale? 68 00:13:26,070 --> 00:13:29,409 Estamos de acuerdo que llamar esto o llamar esto cambia el resultado 69 00:13:29,409 --> 00:13:36,169 Dependiendo sobre qué objeto lo llamo, cambiará el resultado que obtengo aquí 70 00:13:36,169 --> 00:13:40,389 Sin embargo, aquí no es llamado sobre el objeto 71 00:13:40,389 --> 00:13:42,649 Cambiando el objeto sobre el que se llama 72 00:13:42,649 --> 00:13:43,690 Pues 73 00:13:43,690 --> 00:13:46,990 Tened en cuenta que si yo pongo static 74 00:13:46,990 --> 00:13:48,409 Lo tengo que llamar así 75 00:13:48,409 --> 00:13:50,330 O si estoy en la misma clase 76 00:13:50,330 --> 00:13:52,850 Esta es la clase tarea, lo puedo llamar directamente 77 00:13:52,850 --> 00:13:54,870 Que es lo que hemos hecho hasta ahora 78 00:13:54,870 --> 00:13:58,769 Si le quito el static 79 00:13:58,769 --> 00:14:00,330 Así no lo puedo llamar 80 00:14:00,330 --> 00:14:03,210 Porque tiene que ser llamado sobre un objeto 81 00:14:03,210 --> 00:14:04,870 Entonces debería ser T1 82 00:14:04,870 --> 00:14:07,450 Pero este es un error de concepto 83 00:14:07,450 --> 00:14:09,070 Porque este T1 no lo estoy usando 84 00:14:09,070 --> 00:14:11,950 Podría hacer 85 00:14:11,950 --> 00:14:14,250 New 86 00:14:14,250 --> 00:14:15,730 Tarea 87 00:14:15,730 --> 00:14:18,100 Pero 88 00:14:18,100 --> 00:14:21,500 Me creó un objeto nuevo 89 00:14:21,500 --> 00:14:23,620 Sobre el que llamar esta cosa aquí 90 00:14:23,620 --> 00:14:25,600 Y este objeto, ¿qué le pasará a este objeto? 91 00:14:28,149 --> 00:14:28,909 Se crea 92 00:14:28,909 --> 00:14:31,990 Pero no hay ninguna referencia para este objeto 93 00:14:31,990 --> 00:14:33,950 Y por lo tanto se marcará allí 94 00:14:33,950 --> 00:14:34,750 Como basura 95 00:14:34,750 --> 00:14:37,590 Esperando a que el garbage collector pase y se lo quite 96 00:14:37,590 --> 00:14:43,039 Ya 97 00:14:43,039 --> 00:14:45,620 Esto va complicándose 98 00:14:45,620 --> 00:14:48,240 se nota en vuestra mirada 99 00:14:48,240 --> 00:14:50,120 de desesperación 100 00:14:50,120 --> 00:14:52,970 ¿sí? 101 00:14:54,330 --> 00:14:56,909 vale, entonces esto es porque existe el dis 102 00:14:56,909 --> 00:14:58,870 ¿sí? vale 103 00:14:58,870 --> 00:15:00,629 y luego 104 00:15:00,629 --> 00:15:02,970 la última era los métodos estáticos 105 00:15:02,970 --> 00:15:04,129 que ya hemos repasado