Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Ejercicio DAW cuenta bancaria - 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:
He hecho algunas modificaciones a las soluciones propuestas en clase.
Hola a todos, os voy a hacer unas anotaciones o apuntes o añadidos a la corrección que
00:00:01
hicimos en casa de la cuenta bancaria. Son algunas mejoras que yo he pensado que deberían
00:00:10
hacerse. Bien, mi proyecto tiene dos clases. Una es la cuenta bancaria en sí y otra sería
00:00:14
el banco. En cuenta bancaria, que es la que estoy proyectando, he importado dos librerías,
00:00:22
la del MAC y el ArrayList
00:00:30
porque voy a usar cálculos y lista de Array
00:00:32
lo más importante, mi cuenta bancaria
00:00:35
inicialmente en la línea 8 y 9
00:00:38
aquí
00:00:40
tengo dos atributos
00:00:41
que aparte de ser privados
00:00:45
los he marcado con Final
00:00:49
¿qué quiere decir esto?
00:00:50
que son constantes
00:00:52
y solo van a poder ser modificados en el constructor
00:00:53
en este punto
00:00:57
aquí tengo un constructor
00:00:58
cuando creemos la cuenta bancaria
00:00:59
se guarda en el IVA de titular
00:01:02
y luego nunca más pueden modificarse
00:01:03
una decisión que he tomado yo
00:01:06
entonces estos atributos
00:01:08
son privados
00:01:09
que es decir, de fuera no se pueden acceder
00:01:11
se tiene que acceder con el
00:01:14
con el getter y no vais a poder
00:01:16
usar el setter porque están marcados
00:01:18
como final
00:01:20
si yo intentara hacer aquí un
00:01:21
setter
00:01:24
para este atributo
00:01:24
vale, tendría que hacerlo
00:01:26
con public
00:01:33
void
00:01:35
set por ejemplo
00:01:36
iván
00:01:39
y recibiría
00:01:41
un
00:01:43
iván es un string
00:01:44
mientras escribo me pauso
00:01:47
bien
00:01:51
he escrito el método
00:01:53
que simplemente
00:01:55
es un set que recibe
00:01:57
un argumento que le llamo iván
00:01:58
e intento hacer un dis.ivan igual a lo recibido
00:02:01
y fijaros que me aparece una marca, un error
00:02:05
y me dice que no se puede asignar un valor a una variable final
00:02:07
porque si eso está establecido como que es el valor final y no cambia
00:02:12
así que lo quito
00:02:15
y ya hemos visto que estas dos primeras variables son final
00:02:16
porque no quiero que puedan modificarse
00:02:22
luego tengo dos atributos normales corrientes
00:02:24
marcados como private
00:02:28
entonces sólo pueden modificarse con el setter. Y luego he creado, que está aquí la diferencia,
00:02:30
he creado tres constantes, las llamo constantes de clase, porque están marcadas como static y final.
00:02:39
Static quiere decir que no son de un objeto en concreto, sino de toda la clase. Todos los objetos
00:02:46
van a conocer esta variable, la pueden utilizar, pero no es de cada uno. Y la he marcado como final
00:02:53
de tal manera que no pueden modificarse, igual que los otros atributos.
00:02:59
Tengo movimientos máximos, saldo mínimo y avisar a Hacienda.
00:03:04
Y he establecido los valores en 100, menos 50 y 3.000.
00:03:08
De esta manera, cuando posteriormente en los métodos queramos usar estos valores como límite,
00:03:11
no vamos a poner los números, vamos a poner el valor del atributo.
00:03:19
Voy con el primer constructor, con el primer método y luego vemos los valores en nuestros métodos.
00:03:24
El constructor cuenta bancaria, guardo el IVAN y el titular, que son los únicos que recibe.
00:03:31
Inicialmente el saldo lo pone a cero y los movimientos, que por cierto no lo he dicho, están aquí, se lo he dicho, pero es un ArrayList.
00:03:37
Entonces el ArrayList inicialmente lo crea, así que lo va a crear a cero.
00:03:46
Ahora, aquí vienen los métodos estáticos que me parecen muy interesantes.
00:03:52
He creado dos métodos estáticos.
00:03:57
¿Eso qué quiere decir? Lo mismo que en las variables que estaban antes.
00:03:59
Estas tres variables que van de la 16 a la 18 son estáticas,
00:04:03
y he dicho que no son de un objeto en concreto, sino de toda la clase.
00:04:06
Así que todos los objetos las pueden utilizar, pero son de la clase.
00:04:11
Pues ocurre lo mismo con estos dos métodos.
00:04:15
están marcados como estáticos en la línea 36 y la línea 40
00:04:17
y eso quiere decir que no se van a instanciar para cada clase
00:04:22
y que los podéis utilizar sin haber creado un objeto
00:04:27
son unos métodos que ofrece la clase
00:04:30
no sé si irme a la cuenta, no, sigo con la cuenta
00:04:33
o sea, irme al banco o seguir con la cuenta
00:04:40
el resto de métodos que tengo aquí
00:04:42
tengo los getter del IVAN titulado saldo y movimiento
00:04:44
que lo único que hacen es devolverlos
00:04:49
y luego tengo un método para ingresar
00:04:51
y un método para retirar
00:04:55
estos métodos ya venían de la solución del otro profe
00:04:57
lo único que hacen, lo que él propone es que si la cantidad
00:05:00
es menor o igual que cero, devuelvas un false
00:05:03
y si no es menor que cero, que quieren que siempre
00:05:06
el usuario meta mayor que cero, introduzca un número mayor que cero
00:05:09
llama a operar y llama a operar con la cantidad en positivo o en negativo
00:05:12
operar con positivo y operar con negativo
00:05:18
y aquí tenéis la operar
00:05:21
operar devuelve un boolean porque va a devolver true si todo fue bien
00:05:23
y false si algo fue mal y no se pudo operar
00:05:29
lo mismo que retirar e ingresar
00:05:32
entonces cuando retirar e ingresar llaman a operar
00:05:35
cuando operar les devuelve el control, devuelven el mismo valor que ha devuelto operar.
00:05:38
Así que si operar dice que no se pudo operar, retirar va a devolver lo mismo que operar
00:05:44
e ingresar va a devolver lo mismo que operar, tanto si es true como si es false.
00:05:49
Voy a operar.
00:05:53
La idea de operar es que no puedo llegar a un saldo inferior a saldo mínimo
00:05:55
y que no puedo registrar más de los máximos movimientos que se hayan indicado al principio.
00:05:59
por ahora me habían dicho que por ponerlo fácil
00:06:06
los máximos movimientos eran
00:06:09
aquí, 100
00:06:11
si yo en algún momento lo quiero cambiar
00:06:13
lo cambio aquí arriba y el método
00:06:15
no lo va a saber, simplemente va a usar
00:06:17
aquí
00:06:19
vale
00:06:21
aquí
00:06:25
solo va a usar máximos movimientos
00:06:26
voy a ir viendo el método por orden
00:06:28
lo primero que hace
00:06:31
es comprobar que no nos pasamos
00:06:33
del saldo mínimo
00:06:35
el saldo mínimo está indicado arriba y son 50
00:06:36
igual que indicado en máximos movimientos 100
00:06:39
entonces, perdón, menos 50
00:06:41
si el saldo que yo tengo ahora mismo en mi cuenta
00:06:44
más la cantidad que me llega, que puede ser positiva o negativa
00:06:48
si es positiva no va a importar
00:06:51
pero si es negativa se la va a restar a saldo
00:06:52
y vamos a ver si es menor que el saldo mínimo
00:06:55
entonces si sucede que el saldo más la cantidad es menor que el saldo mínimo
00:06:57
entonces imprimo por la consola
00:07:04
de error, que esta hora no la habéis visto
00:07:06
o no la hemos recordado
00:07:08
el system error es una salida
00:07:09
de errores, si sale
00:07:12
a gustos en el NetBeans o sale por el mismo
00:07:13
canal, abajo
00:07:16
ahora lo veremos, pero puede salir
00:07:18
por un canal diferente dependiendo
00:07:20
de la configuración que tengamos
00:07:21
por resumir, entonces imprimo
00:07:23
por la consola de errores que no se puede retirar
00:07:26
ese importe
00:07:28
y luego si
00:07:29
si puedo hacerla
00:07:31
y el programa terminaría, haría un return false
00:07:33
y me iría, entonces si estoy en este punto
00:07:36
es que yo puedo operar
00:07:38
así que al saldo
00:07:40
le sumo lo que más igual
00:07:41
le sumo lo que hubiera en saldo más la cantidad
00:07:43
y voy a añadir
00:07:46
los movimientos por el final
00:07:48
yo como ArrayList hago movimientos.add
00:07:49
la cantidad y lo añade al final
00:07:52
en este momento yo voy a mirar
00:07:54
aquí si me he pasado el máximo
00:07:56
de movimientos al meter este nuevo
00:07:58
movimiento, si yo tengo más de 100
00:08:00
o sea, 101, elimino
00:08:02
el movimiento más antiguo, que yo sé que es el que
00:08:04
está en la posición 0, así que yo hago
00:08:06
movimientos de move 0
00:08:08
y con eso elimino el que me sobraba
00:08:10
si no, no tengo que hacer nada
00:08:12
y luego tengo en cuenta los avisos
00:08:13
si el saldo
00:08:16
es menor que 0
00:08:18
imprime un aviso de saldo
00:08:20
negativo, que yo creo que no estaba en el
00:08:22
enunciado, un momento que paro y lo miro
00:08:24
bien, he puesto el enunciado
00:08:28
y he estado recordando lo que pedía
00:08:30
para ver si realmente
00:08:32
la solución propuesta por el otro profe
00:08:34
y lo que yo había leído tiene sentido
00:08:36
fijaros, en la clase cuenta bancaria
00:08:38
que es la que estamos
00:08:42
dice una cuenta bancaria
00:08:43
datos asociados, titular, saldo y demás
00:08:45
en la cuenta
00:08:49
100 números para simplificar
00:08:50
100 movimientos, vale, cuando se crea la cuenta
00:08:52
es obligatorio que tenga un IVAN y un titular
00:08:54
que no podrán cambiar
00:08:56
nunca, entonces para que no puedan
00:08:58
cambiar nunca, lo que tenéis que hacer es lo que he dicho yo, convertirlo en final.
00:09:00
Lo voy a poner aquí a la derecha, este aquí, a la izquierda, y os lo voy a enseñar de
00:09:05
nuevo. Aquí está. Entonces, para que no puedan cambiar, estos atributos están marcados
00:09:14
como final. Luego, sigue diciendo, el saldo es de 0 euros y la cuenta no tendrá movimientos.
00:09:20
Entonces, cuando yo lo creo, el saldo en la línea 29 es 0 y la cuenta con movimientos vacíos.
00:09:28
Ahora, esto me resulta interesante mientras leía.
00:09:34
El saldo solo puede valiar cuando se produce un ingreso o una retirada.
00:09:36
Si os dais cuenta, en la clase cuenta no hay setter.
00:09:41
No se puede modificar el, primero, el IVA en el titular no se puede,
00:09:48
como ya he explicado antes porque está como final, pero no hay setter para el saldo.
00:09:53
de esa manera
00:09:57
prohíbes que alguien modifique el saldo
00:09:59
solo se modifica el saldo
00:10:02
cuando entramos en el operar
00:10:03
ingresos y retiradas
00:10:06
solo pueden ser valores superiores a cero
00:10:11
por eso el propio que ha hecho la solución
00:10:13
da error cuando imprimes
00:10:15
cuando introduce otro usuario
00:10:17
o sea, otro número del usuario
00:10:19
menos de cero
00:10:21
y luego el saldo de la cuenta a menos 50
00:10:22
y aquí está el mensaje que yo estaba buscando
00:10:26
si se produce un movimiento que deje la cuenta con un saldo negativo
00:10:29
no inferior a menos 50, o sea entre 0 y menos 50
00:10:32
habrá que mostrar el mensaje
00:10:36
aviso saldo negativo
00:10:37
entonces aquí, si el saldo es menor que 0
00:10:40
entonces aviso saldo negativo
00:10:44
y luego, si el valor absoluto
00:10:46
para eso importamos la librería mat
00:10:50
si el valor absoluto de la cantidad que ha introducido el usuario es mayor de
00:10:54
avisar a hacienda que decir si alguien quiere sacar algo menos de tres mil
00:11:00
euros o sea un importe una retirada superior a tres mil euros también se
00:11:04
avisaría hacienda y fijaros que se imprime ese mensaje por notificar a
00:11:08
hacienda y en este caso cuando voy termino cuando yo aquí lo que tengo que
00:11:13
hacer es un retur tú porque eso quiere decir que todo ha ido bien el retur
00:11:18
Retour false solo lo hago aquí, cuando intento sacar dinero que supera por debajo el saldo
00:11:22
mínimo.
00:11:33
Aquí hago un retour false.
00:11:34
Con eso hemos visto cómo funciona el operar.
00:11:35
Le devuelvo un boolean, lo que he dicho, de false o true se ha podido operar.
00:11:38
tengo una función que realmente no me gusta porque dice que no debería sacar nada por
00:11:45
pantalla y está imprimiendo los datos por pantalla. Lo lógico hubiera sido que en vez
00:11:58
de hacer estas funciones lo imprimiera en la cuenta bancaria, perdón, lo imprimiera
00:12:05
en el banco, que es lo que he hecho yo. Pero las he dejado aquí porque me parece que está
00:12:10
bien hecho el hecho que fijaros tiene una función que es imprimir que imprime
00:12:14
tanto los datos como los movimientos entonces tiene dos subfunciones o dos
00:12:18
métodos que imprimen los datos e imprime los movimientos con esto termina la
00:12:24
cuenta bancaria me voy al banco este es el banco
00:12:29
utiliza el escáner fijaros que la anterior no utilizaba el escáner y el
00:12:35
de Railis. Esta es una versión que he cambiado yo respecto al que tenía originalmente. Tengo
00:12:39
aquí un punto, estoy haciendo pruebas. Lo primero que hace es crear el scanner y dos
00:12:45
variables, una para guardar el IBAN y la titular. Y simplemente hago un do while mientras el
00:12:52
valor que me está introduciendo el usuario no sea válido. Entonces le pido que me introduzca
00:12:59
al IBAN y guardo
00:13:05
en el IBAN lo que introduzca
00:13:07
por el escáner en NextLine
00:13:09
ahora que hago un while en el que
00:13:10
la condición es que estoy llamando
00:13:13
a cuenta bancaria
00:13:15
a la clase cuenta bancaria
00:13:16
al método es válido IBAN
00:13:18
con el valor IBAN que me ha dado
00:13:21
el usuario
00:13:23
si os dais cuenta no he creado un objeto
00:13:24
estoy llamando a la clase y le estoy
00:13:26
negando lo que me responda
00:13:28
porque cuenta bancaria es válido IBAN
00:13:31
devuelve true
00:13:33
si es válido y false si no es válido
00:13:34
y yo mientras no sea válido
00:13:37
así que por eso le pongo la negación
00:13:39
mientras no sea válido
00:13:41
sigo dando vueltas aquí
00:13:43
hasta que el usuario me introduce un IVAN
00:13:44
correcto y aquí hago lo mismo
00:13:47
para introducir
00:13:49
el titular de la cuenta
00:13:51
y mientras me
00:13:53
me introduzca
00:13:54
un titular que no
00:13:57
es válido, por eso lo niego
00:13:59
voy muy acelerada
00:14:01
voy a seguir dando vueltas
00:14:03
entonces
00:14:05
mientras no sea válido me pide
00:14:06
el IVAN y el titular
00:14:08
y luego ya sí
00:14:10
creo la cuenta
00:14:13
porque en el enunciado me decía que no creara la cuenta
00:14:14
hasta que no fuera válido
00:14:16
tengo una opción
00:14:18
y una
00:14:21
cantidad
00:14:22
no he creado una función
00:14:24
para el menú
00:14:26
simplemente hace un do
00:14:27
imprime las opciones
00:14:30
y lee el teclado la opción
00:14:31
y en el caso de que la opción sea la 1
00:14:34
imprime los datos
00:14:38
y en el caso de que sea 2, 3 o 4
00:14:39
simplemente pone IVAN, titular, saldo y el valor
00:14:43
esto creo que es lo que habría que haber hecho
00:14:47
porque no me gusta, no cumple esto
00:14:50
lo que he dicho, la función imprimir datos
00:14:53
no cumple esta condición del enunciado
00:14:56
que dice la única salida por pantalla
00:15:01
son los dos mensajes permitidos
00:15:04
para la clase cuenta bancaria
00:15:07
entonces a mí esta función en primeros datos no me gusta
00:15:08
entonces en los siguientes
00:15:11
en el 2, en el 3 y en el 4
00:15:14
lo hago yo directamente
00:15:15
con cuenta Gettivan y con cuenta Gettitular
00:15:17
que es lo que debería haberse hecho en esta primera opción
00:15:20
y lo mismo para Gettzaldo
00:15:22
vale, fijaros aquí
00:15:24
lo que ocurre cuando elijo la opción 5
00:15:26
ingreso
00:15:28
Le digo, inserte la cantidad de ingresar, lee un doble y llama al objeto cuenta y al método ingresar.
00:15:29
Entonces, eso devuelve un true o un false.
00:15:42
Entonces, si ha ido bien, el usuario, o sea, perdón, la cuenta va, el gestor del banco, el Dow Bank, escribe ingreso OK.
00:15:44
En otro caso, escribe ingreso de error.
00:15:52
Luego tenemos lo mismo para cuenta retirar.
00:15:55
hace exactamente lo mismo
00:15:59
simplemente cuenta.retirar
00:16:01
y el valor
00:16:04
y en el caso 7
00:16:05
que lo he modificado
00:16:08
que esta es mi solución
00:16:09
tengo una variable
00:16:11
movimientos donde guarda
00:16:15
un ArrayList
00:16:17
y le pido los movimientos
00:16:17
de la cuenta bancaria
00:16:20
y simplemente
00:16:22
hace una
00:16:24
iteración de todos esos movimientos
00:16:26
no he utilizado un iterador
00:16:29
simplemente me he ido moviendo
00:16:30
con un index
00:16:31
un i y me he ido moviendo del 0
00:16:34
hasta el tamaño del array list
00:16:37
y para cada movimiento
00:16:39
simplemente escribo el número, la posición del movimiento
00:16:40
y le pido
00:16:43
el valor del movimiento
00:16:45
con movimientos.get
00:16:46
porque es un array
00:16:48
y luego ya, gracias por usar la aplicación
00:16:52
vale, vamos a probarlo
00:16:54
Yo voy a introducir un IBAN que no es válido, que tiene por ejemplo un 5, dos letras y 22
00:16:55
números. Entonces me vuelve a decir introduzca un número iban válido. Así hasta que le vuelvo a poner
00:17:28
luego corto también me dice que no. Si solo tuviera números, 222 números, también me dice que no. Así que ya os enseño las expresiones regulares.
00:17:35
Me he pasado, que estoy aquí como una loca. Ahí. Vale, el titular, si le metiera números, no le parece bien.
00:17:56
Y ahora mismo, si yo imprimo el dato de la cuenta funciona, me dice quién es el IVAN, el titular y el saldo.
00:18:05
El IVAN funciona, el titular también y el saldo ahora mismo es cero.
00:18:15
Y los movimientos ahora mismo son cero.
00:18:22
Si yo elijo retirar un número negativo, el siguiente sería un ingreso, la opción 5, ingreso.
00:18:25
si yo le pongo un número negativo
00:18:35
me va a decir que no
00:18:38
me ha dicho error
00:18:39
así que voy a volver a probar ingreso
00:18:41
voy a ingresar
00:18:43
3.001 euros
00:18:45
y
00:18:48
me dice notificar a Hacienda
00:18:49
si yo ahora enseño el saldo
00:18:52
efectivamente
00:18:54
tengo los 3.001 euros
00:18:56
voy a probar con una retirada
00:18:57
si yo intento
00:19:00
retirar más de 3.000 euros
00:19:02
3001
00:19:04
me ha dicho
00:19:05
retirada ok
00:19:08
y ha dicho notificar a Hacienda
00:19:10
si yo ahora le enseño el saldo
00:19:12
mi saldo es 0
00:19:13
por eso no me ha dado un error de que sea
00:19:15
negativo
00:19:17
ni que me haya pasado del menos 50
00:19:19
voy a hacer una retirada
00:19:21
de
00:19:22
45
00:19:24
entonces me dice que ha podido retirar
00:19:26
pero me avisa que ha habido un saldo
00:19:29
negativo
00:19:31
Y ahora voy a seguir retirando
00:19:32
Y voy a tirar 10
00:19:35
Y entonces me dice que no puedo retirarse
00:19:38
Por superar el saldo mínimo
00:19:42
Menos 50
00:19:43
Y si ahora os enseño mis movimientos
00:19:44
Pues tengo el de 3.001
00:19:46
El de 3.001 de retirada
00:19:48
Y el de 45 retirada
00:19:50
Y mi saldo
00:19:53
Ahora mismo estoy en menos 45
00:19:54
Y si doy salir
00:19:57
¿Qué quería enseñaros?
00:19:58
La cuenta bancaria, los patrones o expresiones regulares.
00:20:03
Voy a hacer más pequeño esto.
00:20:07
Cuenta bancaria.
00:20:10
Hay uno que no he explicado suficiente, que son estos dos, los patrones regulares.
00:20:16
He dicho que eran estáticas y por lo tanto los he podido usar sin tener un objeto,
00:20:22
antes de crear el objeto cuenta, y que devuelven un boolean,
00:20:26
y que me dicen si es válido el IVAN o no, y que reciben un string.
00:20:30
Las dos funcionan igual.
00:20:33
Ahora, ¿cómo funcionan?
00:20:34
Yo voy a decir las clases.
00:20:40
Cuando tengo una variable de tipo string, tiene un método que se llama matches.
00:20:43
Entonces yo llamo a la variable punto y a su método matches y le doy una expresión regular,
00:20:49
que es una colección o es un string en la que estoy indicando qué me voy a encontrar.
00:20:55
Las expresiones regulares se pueden buscar por internet cómo funcionan
00:21:01
y tengo preparadas tres páginas en las que hay expresiones regulares.
00:21:05
Esta está muy bien explicada.
00:21:10
Os hablo de las expresiones regulares y aquí vienen las expresiones más típicas.
00:21:13
La primera que he usado yo es este símbolo, este sombrero, buscaré cómo se llama.
00:21:20
entonces cuando se le pone por delante una expresión regular quiere decir que la expresión regular debería estar al principio de la línea
00:21:26
y luego en cambio si está dentro de unos corchetes y varios caracteres
00:21:33
querría decir que tiene que ser cualquier carácter excepto el A o el B o el C que están dentro de los corchetes
00:21:40
el que yo estoy eligiendo fuera de corchetes está al principio
00:21:50
Así que en mi NetBeans, aquí, lo que estoy diciendo es que lo que viene después, todo esto, tiene que estar al principio de la expresión regular.
00:21:54
Por eso, al principio, cuando le he indicado que quería poner un titular que empezaba con números y luego tenía un número correcto,
00:22:05
este, a ver si lo encuentro, lo estoy buscando, aquí, este titular.
00:22:16
este titular que he marcado, que ahora veis
00:22:26
tiene un 5 por delante
00:22:29
pero luego el número es correcto
00:22:31
pero no me valida el IVAN
00:22:32
porque empieza con un 5
00:22:35
que no forma parte del patrón
00:22:37
entonces mi patrón es
00:22:38
que vengan dos letras
00:22:40
o sea, entre corchetes
00:22:43
o una letra de la A a la Z
00:22:45
minúscula o una letra de la A a la Z
00:22:47
mayúscula y eso se repite
00:22:49
dos veces, entre llaves
00:22:51
me indica el número de ocurrencias de lo que viene antes
00:22:53
entonces esto
00:22:55
se repite dos veces
00:22:56
luego vienen dígitos
00:22:58
los dígitos se ponen con barra D
00:23:00
pero para que Java no distinga la barra
00:23:02
o sea, no reconozca la barra como un carácter
00:23:05
se pone el carácter de escape
00:23:07
que es la barra dos veces
00:23:08
entonces barra, barra, D
00:23:10
me está diciendo que quiero un dígito
00:23:11
no una barra, sino un dígito
00:23:13
vuelvo aquí para que lo veáis
00:23:16
me viene el que he dicho
00:23:18
luego entre corchetes las opciones
00:23:21
aquí iría de la A a la D y del 1 al 7
00:23:24
y aquí tenemos cualquier dígito
00:23:27
del 0 al 9
00:23:32
y como le he puesto entre llaves
00:23:35
muy cerca, estoy hablando demasiado
00:23:41
como le he puesto entre llaves 22
00:23:43
estoy diciendo que quiero un dígito 22 veces
00:23:47
así que tengo al principio de la línea dos letras
00:23:50
y luego 22 dígitos
00:23:54
y no debería venir nada más
00:23:56
no sé si a lo mejor se me ha colado
00:23:58
poner
00:24:00
algo para limitarlo
00:24:01
y luego el titular
00:24:04
funciona muy parecido, tengo
00:24:06
una letra
00:24:08
mínimo una o más
00:24:09
letras y luego puedo
00:24:12
tener aparte
00:24:14
esto es una letra
00:24:16
y luego puedo tener
00:24:18
todas las letras y espacios que yo
00:24:20
que yo quiera
00:24:22
era una manera de asegurarme que al principio venían letras
00:24:24
por eso no me ha dejado introducir un número
00:24:26
estos son patrones regulares
00:24:29
aquí estoy viendo en una de las páginas
00:24:31
por ejemplo el más quiere decir
00:24:35
que ocurre una o más veces
00:24:38
entre llaves lo que he explicado
00:24:41
el número de veces que se repite la expresión anterior
00:24:44
por ejemplo aquí viene que quiero un dígito tres veces
00:24:47
Y insisto en que la doble barra es porque antes vienen otros caracteres y tiene que diferenciar entre la barra y los...
00:24:51
O sea, que quieres una barra o que quieres un dígito que tiene realmente la barra. Por eso se ponen dos.
00:25:00
Bien, aquí vienen diferentes ejemplos. También lo tenéis, por ejemplo, en V3Schools.
00:25:06
Vienen las expresiones regulares, regular expressions, y explica lo mismo para qué vale cada uno de los caracteres.
00:25:13
lo que he dicho el pequeño sombrero es al principio y el dólar es lo mismo para el
00:25:20
final barra de paradígito barra s para espacio y más cosas y lo mismo lo tenéis en la página
00:25:26
de java entonces este para la versión 7 pero ahora igual no ha cambiado fijaros la cantidad
00:25:36
de expresiones regulares que hay no tenéis que recordarlas sino saber utilizarlas y vuelvo a
00:25:42
que yo he usado. Al principio, cualquier tipo de letra, minúscula o mayúscula, son dos letras y
00:25:50
luego 22 dígitos. Y creo que ya no tengo nada más que decir. Lo más importante para mí de este
00:26:00
ejercicio es que tengo constantes estáticas para todos los objetos que son de la clase.
00:26:08
static quiere decir que es de la clase
00:26:17
y final que no se puede modificar
00:26:19
que también tengo
00:26:21
otros atributos que son
00:26:23
solo final para que no los pueda
00:26:26
modificar cada uno de los objetos
00:26:27
y que tengo dos métodos
00:26:29
estos, que son estáticos
00:26:31
quiere decir que no son de los objetos
00:26:34
no se instancian, sino que son de la clase
00:26:35
y
00:26:37
menudo rollo
00:26:39
hasta luego
00:26:40
- Valoración:
- Eres el primero. Inicia sesión para valorar el vídeo.
- 1
- 2
- 3
- 4
- 5
- Autor/es:
- Cristina Moreno Ruiz
- Subido por:
- Cristina M.
- Licencia:
- Reconocimiento - Compartir igual
- Visualizaciones:
- 91
- Fecha:
- 27 de enero de 2022 - 14:35
- Visibilidad:
- Público
- Centro:
- IES LOPE DE VEGA
- Duración:
- 26′ 45″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1148x646 píxeles
- Tamaño:
- 68.82 MBytes
Para publicar comentarios debes entrar con tu nombre de usuario de EducaMadrid.
Comentarios
Este vídeo todavía no tiene comentarios. Sé el primero en comentar.