20251216 AppClientesPedidos_6 - 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:
Vale, pues ¿qué habréis hecho?
00:00:00
Dato de entrada, el código del pedido, vale, código del pedido he leído.
00:00:04
Entonces, dime, ¿qué le pasa al código?
00:00:10
Se está generando, no lo estamos generando automáticamente, lo estamos generando automáticamente cuando instanciamos un pedido.
00:00:17
En agregar pedido, ¿dónde está? En agregar pedido, ¿qué llamamos agregar pedido? ¿Desde dónde llamamos agregar pedido?
00:00:25
Desde aquí
00:00:49
¿Vale? ¿Ves?
00:00:51
El código lo estamos generando
00:00:53
Automáticamente en la aplicación
00:00:55
Generamos uno e incrementamos para el siguiente
00:00:57
O sea, los códigos van a ir siendo
00:01:00
0, 1, 2, 3
00:01:01
Que van a estar ahí intercalados
00:01:03
¿Vale? Pues a ver
00:01:04
Entonces
00:01:07
Dato de entrada
00:01:09
Dato de entrada
00:01:10
Pedimos el código del pedido
00:01:13
Silencio
00:01:14
Hasta ahí bien
00:01:17
Ahora de nuevo esta parte es una parte para decir lo puedo haber encontrado y lo muestro o puedo no haberlo encontrado, entonces un Boolean sobre si lo he encontrado o no que menos, un Boolean para ver si lo he encontrado o no para en el caso de no haberlo encontrado avisar, porque si no la aplicación se va a quedar callada, hay que intentar que la aplicación sea también lo más amigable posible.
00:01:18
Entonces, como esta opción se trata de encontrar algo o no encontrarlo,
00:01:40
pues al menos a través de un Boolean distinguir si lo he encontrado o no.
00:01:45
Pues venga, este va a ser mi Boolean para ver si he encontrado ese pedido o no.
00:01:49
De tal forma que si después del for de búsqueda no lo he encontrado,
00:01:54
me dirá no existe.
00:01:57
Vale.
00:01:58
Y ahora, ¿dónde tenemos que buscar el pedido?
00:02:00
Ese pedido hay que buscarlo en mi array de clientes.
00:02:02
Cuidado que aquí he puesto un punto length
00:02:06
Lógicamente que este estaría mal
00:02:08
Esto tendría que ser
00:02:10
Así
00:02:11
Vale, entonces mi pedido lo voy a buscar
00:02:13
En mi array de clientes
00:02:16
Vale
00:02:18
Entonces lo que ocurre es que aquí
00:02:19
Buscar el pedido
00:02:22
En mi array de clientes
00:02:24
Pues implica
00:02:26
Meterme en
00:02:28
Clientes de i
00:02:29
Sacar sus pedidos
00:02:31
Iterar con otro for
00:02:33
para ver si alguno de esos pedidos
00:02:35
su código es igual que me han dado
00:02:38
vale, no pasa nada, puedo empezar a engordar
00:02:39
a partir de aquí, pero desde el momento
00:02:42
en que ya empiezo a anidar for
00:02:44
ya el código se queda muy feo
00:02:45
muy poco vistoso, pues de nuevo
00:02:47
ojalá
00:02:50
tuviéramos un método
00:02:51
que para el cliente
00:02:53
clientes
00:02:56
de i
00:02:58
pues yo le digo
00:02:58
localiza pedido, pasado el código
00:03:01
y me devuelve ese pedido
00:03:03
qué suerte, ojalá si yo tuviera
00:03:05
un método
00:03:09
que dado un objeto cliente
00:03:11
si yo le paso un código
00:03:14
me devuelve el pedido con ese código
00:03:16
null si no está, por tanto
00:03:20
entonces si yo este método lo tuviera
00:03:22
magnífico, porque lo llamo
00:03:25
y obtengo el pedido con ese código
00:03:27
si p es igual a
00:03:31
Null, es que no está, pero si p es distinto de null, lo acabo de encontrar.
00:03:35
Entonces ya aviso de que lo he encontrado.
00:03:42
Para que ya el bucle no vuelva a entrar.
00:03:46
Encontrado igual a true.
00:03:50
Aquí ya como los códigos son únicos, ese pedido solo lo habrá hecho una persona.
00:03:52
Y ahora ya, ¿qué es lo único que me falta?
00:03:58
Pues mostrar, mostrar los datos de ese cliente que tiene ese pedido.
00:04:00
Pues aquí lo que quiera yo mostrar.
00:04:03
el cliente que lo ha pedido
00:04:05
pues es este, clientes de ahí
00:04:08
vale, pues mi main se queda
00:04:10
ahora ya un poquito más cómodo y más corto
00:04:14
a falta de hacer
00:04:17
este método
00:04:19
vale
00:04:19
repito, pedimos el dato de entrada
00:04:21
como se trata
00:04:25
de encontrar o no encontrar, pues hombre
00:04:26
vamos a hacer la aplicación mínimamente amigable
00:04:28
distinguiendo si lo he encontrado
00:04:31
o no, para poder avisar
00:04:33
vale, pues de partida
00:04:34
no lo he encontrado
00:04:37
Ahora recorro todos mis clientes
00:04:37
Y ahora para cada cliente
00:04:40
Para cada cliente voy a ver
00:04:42
Si su pedido existe o no existe
00:04:44
A la hora de crearlo
00:04:45
Pero esta funcionalidad
00:04:53
Que es buscar por código
00:04:54
Sí, porque esta es otra funcionalidad distinta
00:04:56
Hombre, pero si lo puedes saber
00:04:58
Imagínate la situación real
00:05:05
A ti, tú estás en la tienda
00:05:06
Y te viene uno
00:05:08
Y te hace un pedido de bolis
00:05:10
y él solo lo único que te dice es quiero
00:05:11
bolis, entonces tú metes bolis precio
00:05:14
y el código se genera
00:05:16
pues ya está, tú tienes ahí tu albarán
00:05:18
el que tú le das al proveedor con el código
00:05:20
y entonces ahora ya pues de repente
00:05:21
ese proveedor te dice, oye me has dado un pedido
00:05:24
con código tal, que ese dato ya es tuyo
00:05:26
lo has generado y lo siento
00:05:28
no lo tengo, entonces tú te has encontrado
00:05:30
con un pedido de código 7
00:05:32
y tienes que localizar al cliente
00:05:33
para decirle, perdona es que no está
00:05:36
claro, no, no, esta funcionalidad
00:05:38
hace es para el que gestiona
00:05:43
la aplicación. O sea,
00:05:45
no es para el cliente.
00:05:47
Este registra al cliente,
00:05:49
le hace pedidos, el que
00:05:52
está, digamos, en el mostrador.
00:05:53
¿Vale?
00:05:55
Vale, pues entonces, si tuviéramos este método
00:05:56
localiza pedido, que le
00:05:59
pasamos un código y
00:06:01
para ese cliente me devuelve el
00:06:03
pedido con ese código. Si no existe, nul.
00:06:05
Me devuelve nul. Porque
00:06:07
lo había creado de antes. Lo normal es que
00:06:10
me diera error. ¿Vale? Pero lo he creado ahora
00:06:12
mientras estabais ahí entretenidos
00:06:14
vale, pues este método
00:06:16
tendría que ir en clientes
00:06:18
y sería este
00:06:20
de aquí abajo, sería este
00:06:22
recibe un entero, que es el código
00:06:27
devuelve un objeto pedido
00:06:29
y ahora ya
00:06:32
pues claro, este es el pedido
00:06:34
que voy a devolver
00:06:37
el pedido que voy a devolver en mi return
00:06:38
el que voy a devolver
00:06:41
inicialmente null, vale
00:06:43
Ahora, si pedidos fuera igual a null
00:06:45
No tengo nada que hacer
00:06:49
Si el cliente no tiene pedidos
00:06:51
Es imposible que tenga ese pedido
00:06:52
Retorno al null directamente
00:06:54
Pero en el caso de que pedido sea diferente de null
00:06:56
Y solo en el caso de que pedido sea diferente de null
00:07:00
Ahora sí, recorro los pedidos del cliente
00:07:03
Y si encuentro alguno con ese código
00:07:06
¡Hala! Ya tengo la variable resultado
00:07:09
¿Vale?
00:07:12
Pues este método es un método que hace esa cosa muy concreta. Dado un código, recorre la raíz de pedidos de ese cliente. En cuanto encuentra uno con ese código, ya actualiza el resultado. Y cuando él fuera terminado, devuelve el return.
00:07:13
entonces return
00:07:29
o bien será null
00:07:31
que puede ser null
00:07:32
¿en qué situación?
00:07:35
porque pedidos fuera null
00:07:36
con lo cual no entra en el if
00:07:37
luego el resultado se queda null
00:07:39
o puede ser null porque pedido siendo
00:07:41
diferente de null, este for nunca
00:07:44
entró aquí, porque no encontró el pedido
00:07:46
nunca entró aquí, pues result seguirá siendo null
00:07:48
¿cuándo no va a ser null?
00:07:50
cuando la array es
00:07:53
diferente de null y además
00:07:54
existe un pedido con ese código
00:07:56
Solo en ese caso me va a devolver
00:07:58
Ese objeto pedido
00:08:01
Vale
00:08:02
Pues ya está
00:08:04
Tengo este método que me hace esa cosa muy concreta
00:08:06
Y ahora ya lo uso siempre que quiera
00:08:09
Siempre que quiera
00:08:10
Recuperar por código
00:08:12
El pedido de un cliente con todos sus datos
00:08:15
¿Vale? Es un método que puede ser útil
00:08:17
Para muchas cosas
00:08:21
El cliente me hace una consulta
00:08:22
O lo que sea, cualquier cosa
00:08:25
Y quiero yo, a ver, este pedido
00:08:26
¿Pero cuánto costaba este pedido?
00:08:28
Pues, llamo para este cliente a su método localice apellido con
00:08:30
un código y me da los datos de ese pedido.
00:08:34
Entonces, puede ser útil para muchas cosas.
00:08:36
En particular, nos ha venido bien para no anidar tanto for aquí
00:08:38
dentro.
00:08:43
Porque si no, tendría que yo hacer aquí dentro el for otra
00:08:46
vez.
00:08:51
Tendría que hacer a que podría, ¿vale?
00:08:52
No pasa nada, pero es que ya me empieza a quedar un mail un
00:08:53
poco insoportable.
00:08:55
¿Vale?
00:08:58
Y la idea de la programación de todos los objetos, precisamente,
00:08:59
es no hacer programas enormes
00:09:01
sino
00:09:04
modularlos, modulables
00:09:05
separarlos en partes
00:09:07
¿vale? pues ya está
00:09:08
navegamos por todos
00:09:11
los clientes, para cada
00:09:13
cliente localizamos pedido con este
00:09:15
código, si no es
00:09:17
null, lo acabamos de encontrar
00:09:19
lo marcamos y ya
00:09:21
mostramos
00:09:23
¿vale? entonces
00:09:24
habréis hecho lo mismo
00:09:29
pero a lo mejor en lugar de con un método auxiliar
00:09:31
habréis metido aquí otro for
00:09:34
que recorre los pedidos de clientes de ahí.
00:09:36
Otro for ahí dentro.
00:09:39
Yo en lugar de meter ese for ahí dentro
00:09:41
pues lo he sacado a ese método
00:09:43
y así ya se queda un método útil
00:09:45
para ambas cosas.
00:09:48
¿Vale?
00:09:56
Lo que he hecho yo o lo que habéis hecho vosotros.
00:09:56
¿Está claro?
00:10:00
El método localiza pedido.
00:10:05
Este, por ejemplo.
00:10:08
este es el
00:10:16
esto va después del for
00:10:20
puedo poner la llave por si se queda más claro
00:10:21
¿qué te dice?
00:10:24
porque te falta el return
00:10:38
hay alguna rama que no está contemplada
00:10:39
vale, pues entonces
00:10:42
para completar con una
00:10:47
con los métodos static ahora ya sabemos
00:10:49
lo que son las variables static
00:10:51
ya sabemos lo que significan
00:10:53
Pues que existan propiedades static
00:10:54
Automáticamente implica
00:10:58
Que pueden existir
00:11:00
Métodos static
00:11:02
Que nos abre, eso ya sí que sí nos abre
00:11:03
Un mundo de posibilidades
00:11:06
Para nuestros programas
00:11:08
Maravilloso, mucho más cómodo
00:11:10
Pues venga
00:11:12
Vamos a añadir aquí una funcionalidad
00:11:14
Muy facilita de hacer
00:11:15
Que es
00:11:17
Vamos a añadir una
00:11:19
Que es 7
00:11:23
Bueno, esta 8 que es súper retorcida
00:11:27
Esta 8 que es súper retorcida
00:11:30
Se queda pendiente
00:11:36
Vamos a añadir una 9
00:11:37
La 8 está sin hacer
00:11:40
Voy a añadir aquí una funcionalidad 9
00:11:42
Que es pues cambiar el IVA
00:11:46
Porque resulta que el IVA ha cambiado
00:11:49
Y yo tengo que poder cambiarlo desde mi aplicación
00:11:50
Sin tener que meterme en el código
00:11:56
Recompilarlo
00:11:57
cambiar el IVA, pues venga, vamos a hacer esta funcionalidad
00:11:58
caso 1, caso 2, 3, 4, 5
00:12:03
6, 7, el 8 se ha quedado sin hacer
00:12:08
vale, el 8 no hace nada
00:12:13
por ahora, y vamos al 9
00:12:19
vale, pues aquí habría que pedir el nuevo valor
00:12:22
nuevo valor del IVA
00:12:34
Pues venga, aquí nos lo ponen, como hemos dicho que es un double.
00:12:40
Entonces aquí, con hacer esto, ya lo tendríamos, ¿verdad?
00:12:57
Con hacer esto ya está, esta es la variable estática que tiene esa información
00:13:13
a la que accedo a través del nombre de la clase donde está declarada.
00:13:17
Vale, pero vamos a suponer que actualizar el IVA, es decir, esta sentencia de aquí,
00:13:28
aunque es metido un poco así forzado
00:13:36
vamos a suponer que actualizar el IVA
00:13:39
implicará hacer más cosas
00:13:42
pues como conectarse con no sé qué
00:13:43
para validar algo
00:13:46
o mostrar aunque fuera un mensaje
00:13:47
voy a hacer mostrar un mensaje
00:13:49
para que hubiera que hacer más cosas
00:13:50
entonces vamos a hacerlo a través de un método
00:13:53
es decir, esto que en lugar de hacerlo así
00:13:55
vamos a hacerlo a través de un método
00:13:57
¿vale?
00:14:00
entonces el método que modifica esta propiedad IVA
00:14:02
el método que la modifica
00:14:05
tendrá que estar en pedido
00:14:07
porque en pedido es donde está esta propiedad
00:14:08
vale
00:14:11
pues entonces voy a hacer aquí en pedido
00:14:12
un método que modifica esta propiedad
00:14:14
como si fuera un set
00:14:17
igual que si fuera un set
00:14:18
y que además hace más cosas
00:14:20
vale, pues venga, me voy a hacer aquí el método
00:14:22
que modifica el IVA
00:14:25
entonces, este método
00:14:26
pues public
00:14:28
no devuelve nada
00:14:31
porque su efecto ya está en el IVA
00:14:33
modifica
00:14:35
iba
00:14:38
nuevo valor, hay que pasárselo por parámetro
00:14:39
claro
00:14:42
y ahora, este método haría
00:14:42
iba igual
00:14:46
a iba
00:14:48
uy, perdón, vale
00:14:49
haría esto
00:14:54
y además, para que sea un método
00:14:55
comunicando
00:14:58
cambios o cualquier
00:15:01
cosa, vale
00:15:02
bueno, pues aquí tengo un método
00:15:08
normal y corriente, no hace nada
00:15:11
distinto a lo que ya conocemos
00:15:13
recibe un parámetro de fuera
00:15:14
con ese parámetro actualiza una variable
00:15:16
de la clase, esta en particular
00:15:19
actualiza una variable
00:15:21
y hace más cosas, vale
00:15:23
pero este método, aunque así está bien hecho
00:15:24
y no hay ningún problema
00:15:27
nos damos cuenta de que tiene algo especial
00:15:28
¿qué tiene de especial?
00:15:33
que las únicas propiedades
00:15:37
que toca de la clase
00:15:39
en la que está
00:15:41
son estáticas.
00:15:41
Es decir, vamos a ponerlo aquí.
00:15:44
El siguiente método, este de aquí abajo,
00:15:49
solo utiliza propiedades estáticas de la clase.
00:15:52
¿Verdad?
00:16:02
Primera cosa de la que nos damos cuenta.
00:16:06
No utiliza ni descripción, ni código, ni precio.
00:16:08
La clase pedido tiene descripción, código y precio,
00:16:13
e iba y esta
00:16:16
solo utiliza la estática, la común
00:16:18
solo utiliza la información común, no utiliza
00:16:21
ni código, ni precio, ni descripción
00:16:22
¿qué significa que el método
00:16:24
sea estático?
00:16:26
perdón, que solo use una propiedad estática
00:16:28
significa que este
00:16:31
método da igual el objeto
00:16:33
que lo llame, me da igual que lo llame
00:16:35
C1, que lo llame C2, que lo llame C3
00:16:37
porque este método
00:16:39
lo único que
00:16:41
toca es una propiedad que es común para todos
00:16:43
Entonces, vale, vale, imaginaos que tenemos, pues eso, tres objetos, el pedido 1, pedido 2 y pedido 3, con sus tres propiedades, código de inscripción y precio, luego además tenemos la IVA esta, que es común para todos, común, esto es lo que tenemos, vale
00:16:45
entonces resulta que este método
00:17:13
de la clase pedido
00:17:15
solo toca esta propiedad
00:17:16
es la única que toca
00:17:18
no toca ninguna de estas
00:17:20
ni código, ni descripción
00:17:22
ni precio, no toca ninguna de estas
00:17:23
luego, eso lo convierte
00:17:26
en un método especial
00:17:29
¿en qué sentido?
00:17:30
en que me da igual que a este método
00:17:32
lo llame P1
00:17:34
P1.modificaIVA
00:17:36
o me da igual que lo llame P2
00:17:39
o me da igual que lo llame P3
00:17:41
me da lo mismo
00:17:42
porque es que no toca el contenido
00:17:43
particular de cada objeto
00:17:46
no lo toca, no depende de él
00:17:48
no depende del contenido particular
00:17:49
lo único que toca y lo único en lo que accede
00:17:51
es al común de todos
00:17:54
luego me da igual
00:17:55
qué objeto llame al método
00:17:58
luego esto lo convierte
00:18:00
en un método que se llama
00:18:02
estático también
00:18:04
un método que sólo toca
00:18:05
propiedades estáticas
00:18:07
luego se convierte en un método estático
00:18:09
si yo identifico que a un método le pasa eso
00:18:11
que solo toca variables estáticas
00:18:15
debería, no es que sea obligatorio
00:18:18
debería
00:18:21
identificarlo poniéndole el static delante
00:18:22
debería identificarlo poniéndole el static delante
00:18:26
y diréis vosotros, bueno entre ponerlo y no ponerlo
00:18:38
¿qué ganas?
00:18:41
bueno, pues si yo pongo el static delante
00:18:43
el compilador me va a permitir
00:18:45
llamarlo con el nombre de la clase
00:18:48
al igual que las propiedades
00:18:51
estáticas, es decir
00:18:53
si yo le pongo el static delante
00:18:55
ahora ya puedo
00:18:56
hacer así, pedido
00:18:59
punto, modifica y va
00:19:01
¿vale? como es un método
00:19:03
estático, da igual
00:19:07
exactamente el objeto que lo llame
00:19:08
da lo mismo, con lo cual lo llamo con el nombre
00:19:10
de la clase, ¿y qué va a hacer este
00:19:12
método? va a coger esta propiedad
00:19:14
perdón, va a coger este valor
00:19:16
y va a modificar la propiedad estática de pedido.
00:19:18
¿Qué ocurre si yo me he olvidado de poner el static delante?
00:19:22
Si yo no me he dado cuenta, no he advertido que este método solo usa propiedades static
00:19:35
y por tanto no he puesto el static delante, bueno, pues aquí no pasa nada.
00:19:42
este método está bien escrito
00:19:48
pero entonces
00:19:50
ahora ya no voy a poder usarlo
00:19:52
con el nombre de la clase
00:19:54
si no he puesto el static delante
00:19:56
necesitaría crear un objeto
00:19:57
aunque fuera un objeto de mentira
00:19:59
solo para llamarlo
00:20:01
tendría que crear un objeto
00:20:02
entonces para poder llamarlo
00:20:04
con el nombre de la clase
00:20:06
que es como se llaman los métodos estáticos
00:20:08
como no dependen del objeto
00:20:10
los llamo con el nombre de la clase
00:20:11
para poder llamarlos con el nombre de la clase
00:20:13
necesito poner el modificador
00:20:16
estático delante
00:20:18
si no
00:20:19
y ahora ya sí que los métodos estáticos
00:20:21
nos dan
00:20:49
muchísima flexibilidad para hacer cosas
00:20:50
porque son
00:20:53
las antiguas funciones de librería
00:20:54
de toda la vida, cuando uno quiere hacer
00:20:57
una utilidad
00:20:59
pues para hacer cosas, pero no asociada
00:20:59
a ningún objeto, si una utilidad
00:21:03
como leer del teclado, lo que sea
00:21:04
pues lo mete en un método estático
00:21:06
porque no va a depender de ninguna
00:21:08
entidad, de ningún objeto de mi
00:21:11
aplicación y se nos abre
00:21:13
una flexibilidad de diseño
00:21:14
enorme con los métodos estáticos.
00:21:16
Serían como utilidades de librería.
00:21:19
¿Vale? ¿Está entendido lo que significan
00:21:32
los métodos estáticos?
00:21:33
Pues, por ejemplo, ella nos permite cosas muy cómodas.
00:21:41
Por ejemplo, en este main,
00:21:44
pues aquí había un método
00:21:48
que era
00:21:49
Bueno, aquí no hay ninguno que se adapte bien
00:21:51
Y sería un poco, entonces
00:22:12
Podemos, por ejemplo
00:22:13
Utilizar el concepto de métodos static
00:22:22
Para ahora ya, sí que sí
00:22:25
Bueno, no, porque todavía nos falta información
00:22:28
Por ejemplo, vamos a abrir el ejercicio
00:22:32
El ejercicio este de las distancias y los puntos
00:22:35
Que era el 13, no
00:22:41
el 14, el de la trayectoria
00:22:47
y todo eso, este de aquí
00:22:51
vale, pues teníamos
00:22:55
este método, si recordáis que era
00:22:58
lo llamaba un punto y calculaba
00:23:04
la distancia a otro punto
00:23:08
vale
00:23:10
pues imaginaos que nos planteamos este diseño de forma distinta
00:23:12
oye, yo, me suena más, me es más familiar
00:23:16
un método al que yo le paso
00:23:19
los dos puntos como parámetro
00:23:22
le paso los dos puntos
00:23:23
¿vale? entonces, por ejemplo
00:23:24
a uno le puede parecer
00:23:28
que queda más claro
00:23:30
hacer este método distancia
00:23:31
así
00:23:33
public double
00:23:34
distancia
00:23:38
le paso
00:23:41
punto p1
00:23:44
y punto
00:23:49
p2, vale
00:23:51
le paso los dos puntos
00:23:52
Ahora hago la distancia, que sería este mismo código, pero cambiando por P1, P2, entonces esto sería P1.getX menos P2.getX, P1.getX, P2.getX, y aquí P1.getY,
00:23:54
p2.get
00:24:22
y
00:24:25
p1.get
00:24:25
y
00:24:29
vale, pues ahora hemos hecho este método
00:24:30
otra variante de distancia
00:24:36
tenemos la versión que
00:24:37
habíamos hecho y esta otra
00:24:39
esta recibe los dos
00:24:41
puntos como parámetro
00:24:44
y trabaja con esos dos puntos
00:24:45
para calcular la distancia y me la devuelve
00:24:47
entonces automáticamente
00:24:49
yo veo este método y digo, uy va
00:24:52
este método no usa
00:24:53
para nada
00:24:56
propiedades del objeto que lo llama
00:24:57
para nada, solamente usa
00:25:00
lo que yo le estoy pasando
00:25:02
por aquí, no usa coordenadas
00:25:04
del objeto que lo llama
00:25:06
es decir, da igual el que llame a este método
00:25:08
da exactamente igual quien lo llame
00:25:10
porque lo único con lo que trabaja
00:25:12
es con este y con este, da igual quien llame
00:25:14
a este método, no usa ninguna propiedad
00:25:16
con lo cual
00:25:18
si yo me doy cuenta de eso
00:25:21
automáticamente le pongo el modificador
00:25:22
estático a este método, ¿vale?
00:25:25
A este no podría poner, aquí me falta el pedo,
00:25:29
a este no podría ponérselo.
00:25:31
Si yo calzo aquí un static,
00:25:35
automáticamente me dice, oye, perdona, si eres método estático
00:25:38
no puedes usar la coordenada X
00:25:41
del punto que lo llama o la coordenada Y
00:25:44
del punto que lo llama, porque si eres un método estático
00:25:47
no dependes de propiedades del objeto.
00:25:50
en absoluto, solo dependerías
00:25:53
de propiedades static, si las hay, que son
00:25:56
común, pero en este caso
00:25:58
ni siquiera, con lo cual este método
00:26:00
si yo le pongo aquí el static, me sale aquí
00:26:02
un error, me dice, no puedes depender entonces del
00:26:04
punto que lo llama, no puedes depender del objeto
00:26:06
entonces aquí el static no puedo
00:26:08
pero en esta versión sí
00:26:09
en esta versión puedo
00:26:12
ponerle el static, porque esta versión
00:26:14
solo depende de este parámetro
00:26:16
y de este otro, no depende
00:26:18
para nada del objeto que lo llama
00:26:20
luego tengo otra versión
00:26:22
tengo esta y tengo esta
00:26:24
las dos aunque se llaman igual
00:26:26
se distinguen perfectamente
00:26:29
porque la primera
00:26:31
será la que se ejecuta
00:26:32
cuando le paso solo un punto
00:26:34
y la segunda será la que se ejecuta
00:26:35
cuando le paso dos
00:26:38
luego se distinguen perfectamente
00:26:39
lo que no podrían es tener
00:26:42
los mismos parámetros, claro
00:26:44
pero si tienen parámetros distintos
00:26:45
¿vale? pues ¿cómo usaríamos ahora
00:26:47
este otro método
00:26:50
para nuestro main de este ejercicio
00:26:51
esto de la distancia
00:26:53
lo usábamos, creo que en la clase
00:26:55
aquí
00:26:57
¿vale?
00:27:01
usábamos aquí el método
00:27:04
distancia para calcular
00:27:05
la distancia entre este punto
00:27:07
y este otro
00:27:09
calculábamos la distancia
00:27:10
entre este y este
00:27:13
pues si uso ese otro método
00:27:15
esta misma sentencia
00:27:19
se convertiría en esta
00:27:21
se convertiría en esta de abajo
00:27:22
en lugar de llamarlo con un punto
00:27:28
lo llamo con el nombre de la clase
00:27:32
porque es estática
00:27:34
y ahora le paso los dos puntos
00:27:35
de los que quiero calcular la distancia
00:27:38
que eran get puntos de i
00:27:40
t punto get puntos de i
00:27:50
era uno
00:27:57
y el otro sería t punto
00:27:58
vale
00:28:01
getPuntos
00:28:05
de i
00:28:07
getPuntos
00:28:09
ah, me faltan los paréntesis
00:28:12
ahí, vale
00:28:14
vale, pues con esta versión de arriba
00:28:15
con esta
00:28:19
versión de arriba, estoy
00:28:21
llamando al método distancia
00:28:23
al que lo llama
00:28:25
un punto
00:28:27
y me calcula la distancia con el
00:28:28
otro, aquí estoy llamando
00:28:31
a esta otra versión
00:28:36
que le paso los dos puntos por parámetro
00:28:37
y que he etiquetado
00:28:40
como static porque puedo hacerlo
00:28:42
porque no depende del punto
00:28:44
pues entonces lo llamo con el nombre de la clase
00:28:45
y le paso los dos puntos
00:28:47
¿vale?
00:28:50
nos abre alternativas de diseño
00:28:56
posibilidades de diseño
00:28:58
que ahora ya sí que nos pueden ser un poco más útil
00:29:00
pero bueno, podemos verlo
00:29:04
mañana
00:29:06
si queréis
00:29:08
porque nos alargaríamos un poquito
00:29:09
Pero bueno, os hacéis idea de lo que es un método estático
00:29:11
¿Verdad?
00:29:17
¿Dudas?
00:29:21
- Materias:
- Programación
- Niveles educativos:
- ▼ Mostrar / ocultar niveles
- Formación Profesional
- Ciclo formativo de grado superior
- Primer Curso
- Subido por:
- Raquel G.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 3
- Fecha:
- 16 de diciembre de 2025 - 14:12
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 29′ 23″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 119.85 MBytes