ejemplo clase Futbolista - 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:
Ah, no lo he dicho antes, pero todo lo que digáis en esta grabación, me habéis dado consentimiento, bla bla bla bla
00:00:00
Entonces, vamos a crear futbolista, ¿vale? Una nueva clase, clase futbolista
00:00:05
Sin main, fuera el main, ahí, ya está, aquí está
00:00:13
Lo que vamos a hacer es crear, sustancialmente, por aquí una clase futbolista
00:00:17
Y luego haremos otra clase
00:00:27
Prueba futbolista
00:00:29
O equipo, o lo que sea
00:00:30
Que usará esta clase aquí
00:00:32
Lo mismo que hemos hecho antes con la bicicleta
00:00:35
Pero en vez de estar todo junto en una clase
00:00:38
Pues ahora tengo dos clases separadas
00:00:41
Vamos a crear
00:00:42
A pensar qué necesito de un futbolista
00:00:48
Cuáles son las características de un futbolista
00:00:52
Nombre
00:00:55
¿Qué es un nombre?
00:00:57
Venga, nombre
00:00:59
Más
00:01:01
¿Qué es dorsal?
00:01:02
Int
00:01:06
Dorsal
00:01:07
Más
00:01:08
Equipo
00:01:09
¿Qué es equipo?
00:01:13
Más
00:01:15
Posición
00:01:19
¿Cómo se dice posición?
00:01:22
Posición
00:01:24
Posición sin acento
00:01:24
¿Qué es posición?
00:01:26
Vamos a dar un stream
00:01:28
¿Quieres? ¿Por qué no?
00:01:35
Int, goles
00:01:43
¿Queréis algo más?
00:01:44
Bicicleta
00:01:53
Bic
00:01:54
Tendrán bicicleta, ¿no?
00:01:55
Fijaos que puedo, ¿eh?
00:02:00
¿Por qué no?
00:02:04
Venga
00:02:06
Vamos a crear un futbolista
00:02:07
¿Cómo creo un futbolista?
00:02:10
¿Qué necesito para crear un futbolista?
00:02:11
¿Qué hace falta? ¿Un constructor?
00:02:14
Venga, ¿cómo se hace un constructor?
00:02:19
Lo he dejado
00:02:24
Para mi sistema
00:02:24
Es fundamental saber
00:02:29
¿Cuál es la bicicleta del futbolista?
00:02:30
¿Por qué no?
00:02:32
¿Por qué no?
00:02:37
Venga
00:02:38
Estamos experimentando
00:02:39
¿Está claro a todos
00:02:43
Que estas clases
00:02:46
No son muy buenas para trabajar allí fuera?
00:02:47
Porque son un poquito básicas para poder hacer un programa serio, ¿vale?
00:02:52
Entonces experimentamos con ellas, ¿por qué no?
00:02:56
Venga
00:02:58
¿Cómo creo un constructor?
00:02:58
Un bolista
00:03:12
Te equivocas de deporte, ¿vale?
00:03:13
¿Qué necesito que me importa de un futbolista?
00:03:20
Nombre seguramente
00:03:26
Sobre todo
00:03:41
A ver, sobre todo la bicicleta
00:03:42
Fundamental
00:03:46
Asumamos esto, ¿vale?
00:03:46
Yo podría crear
00:03:51
Un futbolista
00:03:52
Sin nada
00:03:54
Luego después le asignaré
00:03:55
Un equipo, a lo mejor cambia de equipo
00:03:57
Todavía
00:03:59
A salida ahora de
00:04:00
De la juventud
00:04:02
¿Cómo se llama aquí?
00:04:04
La cantera
00:04:06
Entonces todavía no sé a qué equipo va
00:04:07
No sé su dorsal
00:04:10
Pero el nombre lo tiene
00:04:11
También los futbolistas son personas
00:04:13
Entonces, ¿qué hago?
00:04:17
¿Qué pongo?
00:04:20
Dis.nombre
00:04:24
Igual al nombre
00:04:26
Y hasta aquí
00:04:27
No hay problema
00:04:32
Ahora, recordaros
00:04:34
Que el rol de un
00:04:36
Constructor
00:04:40
Es que
00:04:41
Estas variables de aquí
00:04:43
Estén inicializadas
00:04:45
Porque si yo no la he inicializado
00:04:46
Si luego la uso, explota
00:04:48
¿Vale?
00:04:50
Entonces tengo que inicializar esta cosa
00:04:52
Pero no las tengo aquí
00:04:54
Entonces le tendré que dar
00:04:55
Lo que llamaré valores por defectos
00:04:58
O sea, si no me han dado un valor
00:05:00
¿Qué valor le pongo?
00:05:01
Por ejemplo, ¿qué valor le doy al dorsal?
00:05:03
Bueno, no me hace falta
00:05:08
Si no me han dado un dorsal
00:05:09
Cero, por ejemplo
00:05:12
Existe
00:05:14
Se puede poner un dorsal 0
00:05:15
Entonces no le pongo 0
00:05:17
Menos 1
00:05:20
Como no me han dado algo
00:05:21
Le voy a poner algo que no va a aparecer nunca
00:05:25
Así luego
00:05:28
Puedo preguntarme
00:05:33
Si el dorsal es menor que 0
00:05:35
Entonces quiere decir que no me lo han dado 1
00:05:38
Y le asignaré un dorsal
00:05:40
Equipo
00:05:41
¿Qué valor le doy?
00:05:45
Nada, es vacío
00:05:54
¿Puedo dar, por ejemplo, nada?
00:05:55
String, vacío
00:06:01
Posición
00:06:02
Vacío también
00:06:04
Goles
00:06:08
O banquillo, podría darle
00:06:13
Me gusta
00:06:18
Banquillo
00:06:19
Así es, tío
00:06:20
¿Sí?
00:06:22
Por defecto
00:06:26
A descansar
00:06:28
Gol es cero
00:06:29
¿Y bicicleta?
00:06:31
¿Cómo funciona eso cuando ya está?
00:06:33
A mí no me han dicho
00:06:45
No me han dicho si tiene bicicleta o no
00:06:46
¿Qué hago?
00:06:49
Pues eso lo tengo que pensar yo, ¿vale?
00:06:50
Es decir, yo quiero que cuando creo un futbolista
00:06:52
Siempre tenga una
00:06:55
Una bicicleta
00:06:57
Pues entonces se la creo
00:06:58
Pero ¿qué nombre le doy a la bicicleta?
00:06:59
Y si no le doy un valor por defecto
00:07:05
Ahora, el valor por defecto de un objeto
00:07:08
Es
00:07:10
Nul
00:07:12
Fijaos el colorín
00:07:15
¿Qué color tiene?
00:07:19
Es una palabra reservada
00:07:24
Null quiere decir no existes
00:07:25
Cuidado que si yo ahora intento hacer
00:07:27
Vic.algo
00:07:30
Explota
00:07:32
Me dice no existe este objeto
00:07:33
¿Vale?
00:07:35
Antes de poder utilizarlo le tendré que asignar
00:07:37
Una
00:07:40
Una bicicleta
00:07:42
Si no, no puedo
00:07:43
Sí
00:07:44
Pero es que yo si ahora
00:07:47
Empezo mi carrera de futbolista, ¿cuántos goles he hecho?
00:07:57
Tiene un problema de poner
00:08:02
O sea, la diferencia entre
00:08:03
Esto y esto
00:08:05
Es que yo goles ya se han hecho cero
00:08:07
Dorsal
00:08:09
Puede que tú tengas el dorsal a cero
00:08:11
Y si yo me asigno el dorsal a cero, pues tengo tu dorsal
00:08:13
¿Vale?
00:08:15
Si cero es un dorsal
00:08:17
Posible, entonces
00:08:19
No lo ponga aquí como valor por defecto
00:08:21
Porque eso no quiere decir que ya me han asignado un dorsal
00:08:23
Lo que te da la gana
00:08:25
Aquí podría poner 1000
00:08:28
Pues al 1000 no existe
00:08:29
No lo he visto
00:08:31
¿Dudas sobre esto?
00:08:33
Vale, ok
00:08:42
Pregunta para vosotros
00:08:43
¿Y si yo esta información la sé?
00:08:45
¿Y cómo lo hago?
00:08:53
Me creo un nuevo
00:08:58
Constructor
00:08:59
Que se diferencie de esto
00:09:00
por los parámetros que pilla
00:09:05
por ejemplo, esto ahora pilla
00:09:07
el nombre
00:09:09
el int dorsal
00:09:10
el string equipo
00:09:13
el string
00:09:17
posición
00:09:25
los goles
00:09:25
int goles
00:09:31
y bicicleta
00:09:33
Pic
00:09:37
Fundamental
00:09:39
Entonces aquí dentro como cambia
00:09:41
Cambiará que
00:09:44
Dis.dorsal es igual a
00:09:46
Dorsal
00:09:49
Dis.equipo
00:09:51
Será
00:09:56
Equipo
00:09:57
Dis.posición
00:10:00
Será
00:10:04
Posición
00:10:05
dis.goles
00:10:08
serán goles
00:10:12
y dis.bic
00:10:14
serán bic
00:10:19
lo veis
00:10:21
la idea es
00:10:28
yo puedo hacer todos los
00:10:31
constructores que yo quiera
00:10:33
siempre y cuando sean distintos
00:10:36
los parámetros que yo doy
00:10:38
no puedo hacer
00:10:40
Otro
00:10:42
Futbolista con string
00:10:45
Posición
00:10:48
Esto no lo puedo hacer
00:10:51
Porque si luego yo creo un futbolista
00:10:55
Dándole una string
00:10:58
Por algún lado hago algo así
00:11:00
Yo
00:11:02
Futbolista de ola
00:11:03
Este ola
00:11:06
¿Qué es? ¿Un nombre?
00:11:11
¿O una posición?
00:11:13
No lo sé
00:11:17
Entonces, los constructores no pueden ser ambivos
00:11:18
No puedo tener dos constructores que tengan los mismos parámetros
00:11:21
Pero sí puedo tener todos los constructores que yo quiera
00:11:28
Con parámetros distintos
00:11:37
Hasta puedo tener un constructor vacío
00:11:40
Me crea un futbolista completamente vacío
00:11:46
¿Dudas?
00:11:56
No, TISA sirve para desambiguar
00:11:59
Que estoy hablando de este objeto
00:12:09
De un atributo de ese objeto
00:12:12
¿Dudas?
00:12:13
Lo dejamos así, cuidado
00:12:17
No necesariamente necesito tener
00:12:19
Todos los
00:12:24
Las posibles combinaciones
00:12:26
De constructores
00:12:29
Yo puedo decir, quiero solo estos tres
00:12:30
Un futbolista se puede crear
00:12:33
O vacío, y luego lo rellenaré de alguna forma
00:12:35
O con su nombre
00:12:38
Entonces pongo el nombre y todo el resto vacío
00:12:40
O si no, dándole todo
00:12:42
No existe una forma en la que pongo
00:12:44
Solo el nombre y el equipo
00:12:47
Pues ese constructor no existe
00:12:49
¿Vale?
00:12:51
¿Dudas hasta aquí?
00:12:55
¿Le hacemos hacer algo a este futbolista?
00:12:58
¿Señar gol?
00:13:05
¿Clásico?
00:13:07
Entonces, ¿cómo hago un método que hace un gol?
00:13:08
Dime
00:13:21
Public
00:13:22
Esperad que lo subo un poquito
00:13:25
Public
00:13:29
Void
00:13:33
Goal
00:13:35
¿Se escribe así, gol?
00:13:42
¿O es así?
00:13:45
No, no
00:13:47
¿Qué hace?
00:13:48
esto punto goles hagamos otro da venga cambiamos su posición como cambio
00:13:53
posición public hoy cambia posición que le pongo parámetro nueva posición y como
00:14:09
cambio para clarificar que esto no está haciendo sobre este objeto pero si lo
00:14:33
fija si lo quito pues se queda azul pues lo hago para que asimila es el concepto
00:14:53
Y en vez de nueva posición, no podría ser posición igual que arriba
00:15:02
También
00:15:07
Ten en cuenta que esto luego por algún lado te aparece, creo
00:15:09
Ahora lo miramos
00:15:12
A lo mejor para que explique qué es esta cosa
00:15:14
¿Vale?
00:15:17
No lo sé, ¿qué otra cosa podemos hacer?
00:15:19
Y ahora hagamos una cosa nueva
00:15:24
Que es public string toString
00:15:30
String a resultado
00:15:35
Return raise
00:15:49
¿Qué es este método de aquí?
00:15:52
Este método de aquí es un método especial, el toString
00:15:55
Que es algo que existe en todos los objetos
00:15:57
Por defecto existe ya un toString
00:16:01
Pero lo que hace es feo
00:16:04
Si yo quiero que haga algo bonito
00:16:06
Lo reescribo
00:16:10
Lo pongo aquí, con esta cosa aquí
00:16:11
Public string to string
00:16:14
Y ahora me creo un
00:16:15
Programita
00:16:17
Que cuando lo llamo sobre este objeto
00:16:19
Me escribe directamente
00:16:21
Este objeto
00:16:23
Una descripción de este objeto
00:16:24
Por ejemplo
00:16:27
Soy
00:16:28
Como le escribo mi nombre
00:16:32
This.
00:16:37
Nombre
00:16:41
Y juego
00:16:43
En el
00:16:49
Dis.equipo
00:16:51
Como
00:17:01
Dis.posición
00:17:06
Punto
00:17:13
Sigo
00:17:18
Llevo
00:17:24
Más
00:17:27
¿Cuántos goles?
00:17:33
Dis.goles
00:17:37
Goles
00:17:40
Goles
00:17:41
Y mi bici
00:17:43
Se llama
00:17:46
¿Sabes cómo lo saco la bici?
00:17:49
Pis
00:17:59
Punto bic
00:17:59
Punto
00:18:03
Id
00:18:11
A ver, es la clase que se creó antes
00:18:12
Y mi clase dice que
00:18:21
Todas bicicletas tienen un id
00:18:22
Por lo tanto
00:18:24
Este es este objeto
00:18:26
Desde este objeto acedo a este objeto de aquí
00:18:28
Este señor de aquí
00:18:31
Es una bicicleta
00:18:32
Porque es una bicicleta
00:18:34
Eso
00:18:38
Es una bicicleta
00:18:39
Es una bicicleta
00:18:41
Por lo tanto
00:18:44
Tiene todo lo que tiene una bicicleta
00:18:46
Incluido su atributo
00:18:48
¿Sí o no?
00:18:50
Pero lo que no sé, por ejemplo, es
00:18:58
hasta que punto te detecta que has creado
00:19:03
ya antes una clase llamada
00:19:07
bicicleta
00:19:09
espera que me he perdido algo
00:19:10
para encender
00:19:12
como?
00:19:14
hasta que punto
00:19:17
como sabe el programa que has creado
00:19:17
porque está en el mismo paquete
00:19:19
de momento porque está en el mismo paquete
00:19:23
si está fuera ya no te
00:19:25
si no
00:19:26
scanner tu lo has escrito
00:19:28
Claro
00:19:30
Mañana te le das
00:19:33
La pones en el mismo paquete donde vas a usar
00:19:35
Te programas a Scanner y luego la usas
00:19:37
O haces una operación
00:19:39
Para que la puedas usar
00:19:41
Ahí, ya está, tienes tu respuesta
00:19:42
Ya hemos importado mucho
00:19:44
Hemos importado Scanner
00:19:51
Hemos importado algo de otras cosas
00:19:52
Pero como está en el mismo paquete
00:19:54
Si ven, entonces, fijaos
00:19:57
Esta es interesante, esta es una bici
00:19:59
Y por lo tanto
00:20:01
Oye, ¿cómo
00:20:02
¿Cómo acelero mi bici?
00:20:04
Este futbolista, ¿cómo acelera su bici?
00:20:09
This
00:20:14
Punto bic
00:20:14
Punto
00:20:17
Acelera
00:20:18
No, porque ¿cómo se llama la bic
00:20:20
De aquí?
00:20:29
¿Vale?
00:20:30
Aquí no se ha creado ningún objeto de pila
00:20:31
Más como para tener el bici
00:20:35
Pero vamos a ver cómo hacemos explotar todo esto
00:20:37
Vale, pero por ahora
00:20:40
¿Estamos de acuerdo con esto?
00:20:41
Sí
00:20:43
Depende, si la diesta tiene algo
00:20:44
No estará, si no tiene nada, pues no estará vacío
00:20:49
Esto, no lo sé
00:20:52
Depende de cuándo he creado este futbolista
00:20:55
Si tiene bicicleta o no
00:20:57
Cuando yo llamaré toString
00:20:58
Si lo llamo sobre un futbolista
00:21:01
Que tiene bicicleta, me dirá ok
00:21:03
Y me escribirá eso
00:21:05
Si me llama sobre un futbolista que no tiene bicicleta, pues ¡Bum!
00:21:06
Vamos a ver
00:21:11
¿Está de acuerdo con esta fantástica clase futbolista que representa un futbolista real porque tiene bicicleta?
00:21:12
¿Dudas?
00:21:20
¿Dudas?
00:21:25
No, vale
00:21:26
Entonces voy a crear otra clase
00:21:27
La clase prueba futbolista
00:21:32
Que utilizaré con un main para crear futbolistas
00:21:34
Antes este main era dentro de la misma clase futbolista
00:21:44
Ahora lo estoy usando desde otra clase
00:21:47
¿Por qué no?
00:21:49
Así mi futbolista se queda limpio
00:21:50
Con solo la información de futbolista
00:21:54
Es una clase, es un molde para crear futbolistas
00:21:56
Y yo uso este molde para crear cuantos futbolistas quiero
00:21:59
¿Vale?
00:22:03
Vamos a crear nuestro equipo
00:22:04
Venga dentro el main
00:22:06
Primer futbolista
00:22:08
Futbolista
00:22:11
F1
00:22:13
¿Sí?
00:22:14
Portero
00:22:16
No
00:22:17
F1
00:22:19
Es igual
00:22:20
¿Cómo crea un futbolista?
00:22:21
New
00:22:23
New
00:22:24
Futbolista
00:22:25
Entre paréntesis
00:22:28
Entre paréntesis
00:22:29
Toda la información
00:22:31
Que no es el nombre
00:22:32
Nombre
00:22:33
Que venía ahora
00:22:33
Habrá que
00:22:43
Que a mí se puede ver, ¿no?
00:22:44
Ni idea
00:22:45
Sí, sí, se hace algo
00:22:46
Dentro
00:22:48
Dorsal
00:22:48
¿Qué dorsaleta hemos, Estefano?
00:22:50
100
00:22:54
Totti, va, muy bien
00:22:55
Equipo
00:22:58
Livorno toda la vida
00:22:59
Posición
00:23:01
La historia de mi vida
00:23:07
Posición, goles
00:23:13
Cero, venga
00:23:17
Si no, no estaría en el
00:23:21
En el bronquillo
00:23:23
Y finalmente
00:23:24
Mi bicicleta
00:23:26
Vale, ¿cómo le añado a bicicleta?
00:23:29
Tendrías que llamar el objeto primero
00:23:31
Dos opciones
00:23:41
Opción 1
00:23:44
La creo antes
00:23:46
Bicicleta
00:23:47
Bicicleta
00:23:49
Mi bic
00:23:52
Es igual a
00:23:53
New bicicleta
00:23:56
Bicicleta
00:23:58
nombres, nombres, que alguien me diga un nombre, cartito, coma, y le teníamos que dar, que era la segunda cosa, a sierra de, no, primero venía sierra de montaña o no, sierra de carretera, falso, mountain bike, si,
00:23:58
Entonces con esto he creado una bicicleta nueva
00:24:28
Que se llama mi bic
00:24:32
Y entonces ahora
00:24:34
Aquí puedo usar mi bic
00:24:36
O no
00:24:38
He creado un objeto
00:24:44
Este objeto es mi bic
00:24:49
Es referenciado, tiene un puntero que es este de aquí
00:24:52
Que es una nueva bicicleta con estas características
00:24:55
Y ahora lo que yo voy a hacer aquí
00:24:57
Es ponerla como bicimiel
00:24:59
Y esto creará
00:25:03
Un futbolista
00:25:07
Vale, segundo futbolista
00:25:08
Futbolista
00:25:11
F2
00:25:16
New
00:25:17
Futbolista
00:25:19
Paco
00:25:21
Coma
00:25:24
29
00:25:28
20, coma
00:25:30
Madrid
00:25:32
Coma
00:25:37
Fortero
00:25:40
18
00:25:44
¿Cómo puedo crear
00:25:48
Una nueva bicicleta aquí?
00:25:54
Pues
00:25:56
New bicicleta
00:25:59
Brum
00:26:02
Esta es una bicicleta
00:26:06
Si la creo
00:26:17
Pierdo la posibilidad de acceder
00:26:19
A esta bicicleta
00:26:21
¿Os acordáis cuando hacía esto?
00:26:23
Si hacía esto
00:26:25
Creaba un objeto
00:26:29
Pero luego no tenía modo de llegar a ese objeto
00:26:31
Entonces es como si se perdía
00:26:34
En el multiverso de Java
00:26:35
¿Vale?
00:26:37
Efectivamente, este de aquí es perdido
00:26:39
O puedo de alguna forma
00:26:42
Llegar a este objeto
00:26:44
¿Cómo?
00:26:44
F2.vic
00:26:50
La bicicleta es futbolista
00:26:53
¿Ve? Ahora luego trabajamos con él
00:26:56
Perfecto
00:27:00
Tercer futbolista
00:27:03
F3
00:27:05
Es igual
00:27:08
Usamos otro
00:27:08
Constructor, ¿vale?
00:27:10
¿Cuál queréis construir?
00:27:12
Este de aquí solo con nombre
00:27:13
Por ejemplo
00:27:15
Venga
00:27:16
Entonces uso
00:27:17
New
00:27:20
Futbolista
00:27:21
Arturo
00:27:24
Y me vale
00:27:30
Cuidado que si me equivoco
00:27:36
Y aquí pongo esto
00:27:39
Se enfada
00:27:40
Me dice, no hay un constructor que pilla un string
00:27:42
Y un int
00:27:45
No sé qué hacer con estos datos
00:27:46
¿Vale?
00:27:48
Me los tiene que dar bien
00:27:50
Yo tengo o el que pilla todo
00:27:51
O el que pilla solo el nombre
00:27:53
O el que no pilla nada
00:27:55
Entonces
00:27:57
vamos a hacer
00:28:02
que se presenten
00:28:04
si
00:28:06
si
00:28:07
hagámoslo por pasos
00:28:09
venga
00:28:14
string
00:28:15
presentación es igual
00:28:17
a f1.2 string
00:28:20
acordáis que tenía
00:28:22
un método
00:28:26
que lo que hacía era
00:28:26
una presentación del futbolista
00:28:29
Y me devolvía un string
00:28:32
Pues
00:28:34
Llamo ese método, creo el string que decía
00:28:35
Soy Estefano
00:28:38
Mi dorsal
00:28:40
S100
00:28:43
No sé qué, no sé cuánto es
00:28:44
Y todo el resultado de esto lo guardo dentro de este string
00:28:45
Y después
00:28:48
Lo imprimo
00:28:49
Sí
00:29:03
Soy Estefano y juego en el Liborno
00:29:04
Como banquillo
00:29:12
Llevo cero goles
00:29:14
Y mi bici se llama el gatito
00:29:16
Perfecto
00:29:18
¿Sí?
00:29:22
¿Podemos presentar el segundo?
00:29:26
No lo sé
00:29:35
Esto solo porque he hecho el toString
00:29:36
Pero por ahora lo dejamos así
00:30:01
¿Vale?
00:30:06
Si yo toString lo llamo de otra forma
00:30:10
No me funciona
00:30:11
Veremos por qué en un futuro
00:30:12
¿Sí?
00:30:14
Entonces por ahora lo usamos así
00:30:16
Que así estamos utilizando
00:30:18
Un programa
00:30:19
Vale, perfecto, hagamos presentar el siguiente
00:30:20
Venga
00:30:23
Futbolista 2
00:30:24
Preséntate
00:30:27
Soy Paco
00:30:28
Y juego en el Madrid como portero
00:30:33
Llevo 18 goles porque soy un crack
00:30:35
Y mi bici se llama Broom
00:30:37
¿Sí?
00:30:38
Hagamos presentar el tercero
00:30:43
Que me espero que pase
00:30:45
Veamos
00:30:52
Boom
00:30:56
Oye, ¿qué es eso?
00:31:00
rojo
00:31:02
cuando hay rojo
00:31:10
problemas
00:31:12
ha explotado mi programa
00:31:13
¿por qué ha explotado mi programa?
00:31:16
vamos a leerlo
00:31:17
exception in thread main
00:31:19
ha habido un error en el main
00:31:21
vale, ¿qué error es?
00:31:24
el señor null pointer
00:31:26
exception
00:31:28
excepción de puntero a null
00:31:29
¿qué es eso?
00:31:32
vamos a ver
00:31:35
me dice, no puedo leer
00:31:36
el campo id
00:31:38
porque
00:31:39
this.bic
00:31:41
es null
00:31:43
¿os acordáis que cuando yo utilizaba
00:31:44
el tercer
00:31:49
futbolista
00:31:50
que está aquí
00:31:52
usaba
00:31:54
esto, no, esto de aquí
00:31:57
esto, con el nombre
00:31:59
y como solo tenía el nombre
00:32:00
bic
00:32:04
me lo dejaba a null
00:32:05
null es
00:32:07
Un puntero nul es como un puntero
00:32:09
Que en vez de apuntar a un objeto que existe
00:32:12
Apunta a nada
00:32:14
Todavía no le he creado ese objeto
00:32:16
Me espero que luego tú me lo crees
00:32:18
Y como no me lo has creado
00:32:20
Nope
00:32:23
Y entonces ha explotado
00:32:25
¿Sí?
00:32:28
Y entonces, ¿qué pasa?
00:32:32
Que cuando intenta acceder
00:32:34
Aquí
00:32:36
A this.big
00:32:37
Y este señor de aquí es null
00:32:41
Y al null le intenta acceder a punto id
00:32:44
No encuentra nada
00:32:47
Porque no está creado el objeto
00:32:49
Entonces explota
00:32:51
¿Cómo soluciono esto?
00:32:52
Como un futbolista no es nadie
00:32:59
Sin su...
00:33:01
Como un futbolista
00:33:03
No es nadie
00:33:10
Sin su bicicleta
00:33:11
Le da una bicicleta
00:33:13
¿Cómo le voy a dar una bicicleta al futbolista 3?
00:33:15
Quiero dar una bicicleta al futbolista 3
00:33:23
Creo una bicicleta
00:33:27
¿Cómo creo una bicicleta?
00:33:33
Vale
00:33:55
Esta es una nueva bicicleta
00:33:56
¿Y ahora dónde la tengo que poner esta bicicleta?
00:33:58
¿Sí?
00:34:08
Porque este señor es un futbolista, es una bicicleta
00:34:10
Y me está diciendo, crea una nueva bicicleta y ponla dentro de un futbolista
00:34:13
Vete al futbolista 3
00:34:16
Accede
00:34:26
A su variable
00:34:27
A su atributo bic
00:34:29
Que es una bicicleta
00:34:31
Y allí dentro
00:34:33
Le pones
00:34:34
New bicicleta true
00:34:36
Ahora también
00:34:38
Él tiene
00:34:41
Una bicicleta
00:34:43
Y entonces cuando lo lanzo
00:34:45
Se puede presentar
00:34:47
Realmente dice soy Arturo
00:34:48
Y juego en el
00:34:50
Nada
00:34:51
Porque por defecto el equipo es nada
00:34:52
Como banquillo
00:34:55
Porque por defecto está en banquillo
00:34:57
Levo cero goles
00:34:58
Porque por defecto es cero
00:35:00
Y mi bici se llama
00:35:02
Bici de Arturo, que es la que acabo de crear
00:35:03
Dudas
00:35:05
Vale
00:35:14
Que alguien meta gol, Stefano
00:35:20
F1, punto
00:35:23
Gol
00:35:25
Mi primer gol
00:35:26
Jugando de banquillo
00:35:31
Si me presento otra vez
00:35:33
No como el banquillo
00:35:36
Llevo un goles
00:35:45
Antes llevaba a cero
00:35:46
Llevo un goles
00:35:47
Antes bajaba a cero
00:35:55
Más dudas
00:35:57
O sea, le hacemos hacer otra baja
00:35:59
¿Qué más podría hacer, futbolista?
00:36:01
Un poco más, cambiar de posición
00:36:04
Cambiar de posición, venga
00:36:05
Como metió gol
00:36:07
Me parece correcto que me cambien a
00:36:08
Posición
00:36:11
Delantero
00:36:15
Banquillo titular
00:36:20
Centro
00:36:21
Banquillo titular
00:36:22
Cambia posición
00:36:24
Cambia
00:36:28
Posición
00:36:29
¿Sí?
00:36:31
Entonces ahora
00:36:33
Estefano juega con el Livorno
00:36:34
Como delantero centro
00:36:38
¿Vale?
00:36:40
Llevo un goles
00:36:41
Va a ver
00:36:42
Esto se podría mejorar
00:36:43
Y mi bici se amagacito
00:36:44
Eso
00:36:46
No lo quitamos
00:36:47
¿Dudas?
00:36:49
Entonces aquí vemos dos cosas interesantes
00:36:52
Vemos primero que estamos
00:36:55
Utilizando una clase desde otra clase
00:36:57
¿Vale?
00:36:59
Y que en realidad estamos utilizando una clase desde otra clase
00:37:00
Desde otra clase
00:37:03
¿Veis?
00:37:03
Porque podemos acceder
00:37:05
Uno de los parámetros
00:37:08
Que tenía este señor
00:37:11
Es una clase que he creado yo
00:37:13
Oye, mira, pero esto de utilizar otras clases
00:37:14
Tampoco es tan surreal
00:37:16
¿Esto qué es?
00:37:18
¿Qué es string?
00:37:23
Un objeto, o sea que habéis estado utilizando
00:37:24
String todo el rato
00:37:27
Que es un objeto de otra clase
00:37:28
Y no habéis dicho nunca, pero esto no se puede hacer
00:37:30
¿O no?
00:37:33
Pues se puede hacer
00:37:35
¿Dudas sobre esto?
00:37:37
- Idioma/s:
- Autor/es:
- Stefano Chiesa
- Subido por:
- Stefano C.
- Licencia:
- Reconocimiento - No comercial
- Visualizaciones:
- 54
- Fecha:
- 21 de noviembre de 2022 - 14:02
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 37′ 44″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1280x720 píxeles
- Tamaño:
- 170.88 MBytes