Continuamos de a poco, vamos a ir adentrándonos en temas un poco más avanzados, pero da poco después,
igual vamos a ir profundizando en esta clase.
Vamos a ver algunos temas que vamos a ver más adelante en profundidad, pero también es importante que
se vayan familiarizando de a poco, lentamente.
En esta primera parte del curso del entonces número decimal, acá lo tenemos en 30.
Bueno, está muy acoplado, con código duro y podríamos hacerlo otra aplicación mucho más dinámica.
Es decir, que el usuario pueda ingresar en número y de forma automática puede convertir a los distintos
sistema numérico conversor automático.
Pero para eso tenemos que implementar un sistema de entrada, es decir, que el usuario pueda escribir
el número valier este número de alguna forma y realizar el cálculo de diferente forma.
Por ejemplo, en el terminal en la consola ingresan dos números, pero también mediante una ventanita.
Por ejemplo, que aparezca alguna ventanita tipo Windows que nos diga ingrese un número entero, por
ejemplo, y vamos a partir con eso primero y después vamos a ver la otra forma, que sería en el terminal.
Entonces en vez de 30 lo vamos a quitar y lo vamos a reemplazar por el componente de Java, es decir,
ya viene incluido.
Viene desarrollado en el API de ventana de Java, en el API Swing.
Bueno, yo sé que estoy entrando quizás en tema un poco más avanzado, pero la idea es ir utilizando
este componente que hace nuestras creaciones más dinámicas y también más entretenida y no tan plana.
La Jota Olly en mayúscula, la también option lo demás es minúscula Ochún, la P con mayúscula.
Recuerden cuando se separan palabra compuesta se separa con mayúsculas.
Ocho.
Punto porque la tenemos yo.
Input diálogo.
Yo input la I con mayúscula.
Diálogo.
Es decir, mostrar una ventana de diálogo para entrada input y acá no parámetro.
Vamos a colocar el primero Nul da lo mismo, el primero, el componente padre.
Pero como no tenemos un componente padre, lo dejamos en el segundo el mensaje, por ejemplo, ingrese
un número entero.
Pero acá estamos recibiendo un quinto, es decir, esperamos recibir un entero, un número decimal y
lo que nos retorna es un streeck.
Se fijan, requiere un entero, pero recibimos un string.
Entonces, bueno, lo que se ingresa en este input, porque al final es un campos, es una ventana de
diálogo con un campo, con un input.
Lo que se ingresa en ese campo lo recibimos como un string, pero supuestamente este campo el valor
va a ser un entero.
Entonces lo tenemos que convertir utilizando la clase Integer de Java, temas avanzados que durante
el curso vamos a ir utilizando y viendo cada vez más en detalle.
Así que no se preocupen.
Lo importante, por ahora, es que comprendan qué es para ingresar datos a nuestra aplicación de forma
amistosa al usuario mediante una ventana de diálogo, y lo que tengo que hacer es convertir esto a un
tipo entero con intuyes.
Entonces este valor que es un trinquen?
Para que no nos confundamos.
Incluso lo podríamos cortar acá lo podríamos cortar y acá vamos a colocar streeck pakete claro, número
ese terreno iniciando con mayúscula STR igual esto perfecto.
Ahí tenemos nuestro número, pero en formatos.
Ahora tenés que convertir esto a un número entero.
Para eso utilizamos la clase integer.
Punto pars inte parse inte.
Y recibe un streeck numérico.
Tiene que ser un número.
Lo vas a ver, pero ahí lo tenemos y fijan.
Entonces ahí convertimos el número, vamos a guardar y vamos a probar.
Levantamos.
Se fijan, aparece una ventana, un input, ingresa un número entero por ejemplo 30 o cualquiera 30.
Y ese cálculo número binario 30 acá lo tenemos octal y hexadecimal, así que funciona bien.
Estamos automatizando, volvemos a ejecutar.
500.
Perfecto binario 500, octal de 500 y hexadecimal de 500.
Funciona bien entonces la idea de mostrar este resultado, esto mismo resultado en una ventana también
de diálogo, pero en una ventana de mensaje y lo que vamos a hacer ahora, entonces por acá también
utilizando esto mismo componente.
Esta misma clase Yi Op.
Champaign, una clase con métodos estáticos se dirigen.
No es necesario tener que instan cierta clase, simplemente se invoca el método de otra forma.
No se preocupen, porque todo lo que método estático, atributo estático lo vamos a ver después.
En programación orientada, objeto y lo vamos a comprender mucho mejor.
Por ahora simplemente se utiliza.
Buscamos mostrar mensaje.
Diálogo.
Mesas de diálogo.
El primero, el componente padre lo dejamos el Nul y un mensaje bueno.
Qué mensaje le pide que muestre todos estos valores?
Todo esto es vejan.
Entonces, por ejemplo, acá le vamos a llamar mensaje.
Un área a la que tenemos que crear la vamos a crear acá, entonces acá un estricto mensaje igual y tenemos
que concatenar.
Vamos a concatenar número binario, más número octal, más número hexadecimal.
Vamos a copiar.
Punto y coma string factoraje.
Mensaje y podemos concatenar de forma compuesta, es decir, al mensaje que ya tenemos a este es Trenc
con un mas igual le agregamos, otro es trincó.
Entonces vamos concatenando.
Se podría decir también que una concatenación dinámica vamos a copiar esto acá.
Y lo pegamos acá.
Punto y coma.
Entonces con el más igual también de pueblo, vamos a ver en los operadores de asignación, pero en
este caso de asignación para concatenar acá toma el valor mensaje que tenía antes y lo anexando lo concatenados.
De todas formas esto es una abreviación, es lo mismo que decir.
Igual mensaje más.
Eso te dejan.
Toma el mensaje y le sumo esto, pero de una forma más resumida.
Entonces, ahora lo mismo.
Mensaje más.
Igual número hexadecimal acá.
Perfecto, vamos a probar, levantamos.
No pide número, por ejemplo 50 OK y no muestra número binario 50 igual, tanto número total, tanto
y tanto hexadecimal que está perfecto.
El problema que muestra todo en una sola línea, cómo lo podríamos solucionar?
Bueno, podríamos utilizar bajar una línea en el caso de Making Touch y Linux con la n hagámosla n y
en el caso de Windows con la N.
También bajamos y agregamos n después el número.
Después vienen números, entonces de esa forma bajamos.
Probamos.
Número binario de 50 tanto octal 62, hexadecimal 32.
Así que bien, si bien queda mucho mejor, nuestra aplicación ya está tomando un cuerpo mucho más dinámico.
Pero también tengo que utilizar cosa un poco más avanzada para que sea un poco más interactivo, más
entretenido y de a poco vamos a ir implementando este tipo cosa, ir aprendiendo cosas nueva hasta que
se haga costumbre y también después vamos a ir profundizando cada vez más cada uno esta clase componente,
lo que significa un método estático.
Una clase con métodos estáticos como el Chi o Champaign.
Después también vamos a ver tema más avanzados sobre el Happy Suit de Java y así ir de a poco.
Ahora claro que acá estamos repitiendo así fija, estamos repitiendo el número binario acá número binario,
acá número tal, acá número tal.
Acá se fija el tango repitiendo, replicando lo mismo que copiar y pegar.
Eso en programación no es buena práctica.
Para el caso de un ejemplo como éste, de lo mismo, pero también se podría optimizar, por ejemplo,
por cada mensaje, crear una variable de tipo string, por ejemplo.
Lo vamos a solucionar, lo vamos a arreglar para que quede mejor todavía.
Es un mensaje binario o texto binario?
Da lo mismo.
Igual vamos a cortar todo esto, lo cortamos, lo dejamos acá perfecto.
Y esto lo dejamos acá.
Y también número binario es todo.
Acá lo reemplazamos.
Por esto de que está acá, lo tenemos en una Arial, lo estamos reutilizando, no tenemos por qué estar
duplicando código que más limpios se fijan.
Bueno, y lo mismo con número octal.
O más, qué mensaje que le vamos a llamar resultado entonces para acá?
Resultado?
Resultado binario y acá también y acá también.
Resultado?
Resultado octal.
Igual vamos a cortar esto entonces.
Lo pegamos acá.
Recuerden punto y coma.
Copiamos el octal, lo dejamos, acampen, bajamos el salto línea, lo dejamos.
Entonces por acá esto le quitamos, pero tengo que agregar una comilla.
Y le concatenados.
Resultado doctor, y lo mismo con esto número hexadecimal
y esto también lo cortamos.
Lo dejamos acá.
Lo pegamos acá para imprimir en la consola y también lo dejamos acá, estoy acá, le quitamos una comilla
para cerrar más resultado hexadecimal, es decir, concatenados.
De esa forma queda mucho más limpio y estamos reutilizando el mensaje en el resultado binario.
El resultado total y hexadecimal, tanto para mostrarlo en consola, pero también en nuestra ventana
de diálogo.
Entonces, ahora vamos a probar.
Número 500.
OK, perfecto y me funciona acá número binario 500 tanto y acá también sé que está funcionando bien.
OK.
Pero también se podría perfeccionar un poco más.
Por ejemplo, qué pasa si ingresamos un valor que no es un entero?
Hagamos la prueba.
Vamos a correr y regresar un número.
Ingresamos, por ejemplo, una palabra o una letra.
Hola, qué cosa obviamente trata de convertir streeck hola en un tipo, intuyera en un tipo entero.
Entonces lanza una excepción un error number format exceptúan para el input string.
Hola!
No se puede convertir a un entero y se rompe la aplicación.
Bueno, cómo lo podemos solucionar?
Bueno, eso sería contrae ICAC con manejo de decepción.
También vamos a ir enterándonos de a poco.
Lo podríamos ver desde ahora, pero de a poco y después más alante.
Vamos a tener una sesión completa de manejo de errores y yo sé que vamos entrando lentamente a temas
más avanzados, pero la idea que se vaya familiarizando para que después, cuando FM3 tema ya más en
profundidad, no sea de golpes, sino sea de a poco, veamos cómo se soluciona.
Nos vamos a acá.
Número decimal por acá un Troy Troy.
Catch saca el traje.
Es tratar de ejecutar un código.
Si todo sale bien, perfecto, continuemos con la ejecución normal de nuestra aplicación.
Entonces el traje es tratar.
Si pasa algo malo, ocurre un error.
En el caso como esto, en una forma reception se ejecuta el catch.
Por lo tanto, el catch va a capturar este error.
Esta acepción lo podemos manejar.
Bueno, pero el TRAI tiene que ver nuestro código, tiene que estar acá.
Nuestro código entonces es toda acá, justamente donde ocurre la acepción en el Parcent, que es donde
se está convirtiendo.
Acá se lanza la decepción cuando el streeck no es un número.
Se tiene que implementar acá dentro del traje.
Y si se fijan acá tenemos las llaves.
Por lo tanto estamos creando esta variable dentro de las llaves.
Esta variable solamente va a asistir en este contexto en las llaves.
Acá no. Entonces, para que exista en todo el contexto de nuestra aplicación tenemos que inicializar
esta variable.
Acá se inicializar fuera del traje, fuera de este contexto.
Y cómo se inicializar con el INTI fuera del traje?
Acá simplemente nos va la declaración solamente.
La asignación se define definen cero inicialmente un valor por defecto y en el Troy, cuando tratamos
de ejecutar este código para convertir acá, le asignamos el valor.
Si todo sale bien, perfecto, no hay ningún problema.
Si sale mal, lo capturemos en el catch.
Y acá ya ves bien, pero dentro del catch en los paréntesis, la excepción
de ambas, esa opción de excepción, el catch es un bloque de código alternativo para manejar el error
y recibe parámetros argumento, en este caso solamente el objeto decepción y como todo parámetro o variable
se tiene que especificar, se tiene que indicar declarar con el tipo dato y con el nombre de esta variable
el tipo de dato.
En este caso Narváez forma perception y el nombre de la variable es la.
Pero como cualquier variable o parámetro argumento, este caso del catch puede llevar cualquier nombre.
No solamente le podemos colocar lo que sea, pero un nombre bueno válido, como si fuera un nombre variable.
Perfecto, entonces si con eso manejamos la excepción.
Ahora, claro, qué sería lo ideal?
Cómo lo manejamos?
La idea es que no ocurra este error, sino dar un mensaje al usuario, por ejemplo, utilizando option
point, punto o mensaje de diálogo.
Null componente padre nos lo tenemos que siempre Null y un mensaje error debe ingresar un número entero.
Y qué más?
La idea es que si ocurre el error, volver a repetir el proceso.
Y para eso tendríamos que volver a llamar al método main.
Entonces, simplemente acá lo invocamos.
Main.
Invocamos el método Main de forma directa.
Pasamos lo mismo argumentos acá, ya que lo requiere.
Necesita tener estos argumentos para invocar el.
Después vamos a entrar en detalles sobre métodos, pero por ahora lo llamamos argumentos.
Bueno, y tenemos que salirnos porque el catch se vuelve a ejecutar en Maine.
Se vuelve a repetir este proceso es como recursivo, se fijan, ocurre el error y se vuelve a invocar
en Maine de forma recursiva.
Dentro del main ocurre el error.
Se llama Helmet, pero acá después no se ejecute y todo salga bien.
Se volvería a ejecutar este código y la idea es que no solamente se ejecute una sola vez el main, entonces
simplemente no salimos y hay dos opciones ratón, ya que retorna bayt.
Entonces hacemos un ratón sin nada.
O mejor aún, usar la clase system system para salirnos.
Entonces, punto exit por acá tenemos.
Con el estatus cero cero, que todo salió sin ningún problema, todo salió bien.
Con el troikas intentamos ejecutar un código, lo convertimos, si todo sale bien, perfecto, no hay
ningún problema.
El coach nos ejecuta y continúa con la ejecución normal de la aplicación, tal como lo teníamos antes.
Ahora, qué pasa si ingresamos un número mal, una letra o una palabra?
Bueno, ocurre el error.
Lo captura el catch y lo manejamos acá.
Damos el mensaje, volvemos a ejecutar en Maine el método de forma recursiva y todo comienza de nuevo.
Ingresamos el número correcto, por ejemplo 10, 20 o cualquiera, y cuando se ejecuta todo nos salimos
con el estatus cero.
Por lo tanto, es todo.
Acaya no se vuelve a ejecutar, se ejecuta solamente main una sola vez de forma recursiva, y eso es
todo.
Ahora, insisto, si no comprenden a cabalidad completamente este código, no se preocupen, porque
después vamos a entrar más en detalle a lo que Stray Cat y todo lo demás.
Pero por ahora importante que el troikas es solamente para manejar errores, donde el Troy intenta ejecutar
un fragmento de código.
Si todo sale bien, continúa, se continúa con esto de acá.
Si sale mal, lo manejamos en el catch, lo capturamos en el catch, capturar la acepción y la manejamos
con un mensaje y volvemos a invocar en vain.
Bueno, y nos salimos.
Vamos a probar.
Perfecto, vamos a ingresar un número correcto.
18 OK, funciona bien.
Y se sale.
Ahí termina Processo porque se ejecutó todo perfecto.
Ahora volvemos.
Pero vamos a colocar la letra H, que no es un número.
Debería fallar.
Perfecto error.
Debe ingresar un número justamente porque ingresó al catch.
Ocurrió el error acá y lo manejamos ok.
Y se vuelve a repetir el proceso de forma recursiva, invocando Arment ingreso número entero.
Entonces partimos de nuevo acá colocamos, por ejemplo, somos porfiado.
Colocamos X.
Error.
Y se vuelve a repetir el proceso de forma recursiva.
Ahora sí que si colocábamos.
Por ejemplo, 20 ok número binario y hace cálculo y ok.
No salimos de Bijan.
Proceso finalizado.
éxico cero finaliza el proceso.
Y lo de menos se vuelve a ejecutar.
Eso sería el manejo de error.
También de forma resumida y el flujo de nuestra aplicación.
Cómo puedo manejar estos errores?
Cómo puedo controlar este flujo?
Un ejemplo quizá extenso, más complejo, pero necesario para ir de a poco.
Family pisándonos y profundizando de a poco y viendo estos temas más avanzados, continuamos en la siguiente
clase.