Clase x
-
Upload
jose-angel-quintanilla-rosales -
Category
Documents
-
view
182 -
download
0
Transcript of Clase x
![Page 1: Clase x](https://reader033.fdocumento.com/reader033/viewer/2022060200/559916ed1a28aba7798b47f1/html5/thumbnails/1.jpg)
Programación de Sistemas
Lic. José Angel Quintanilla Rosales
Un programa bien escrito es su propio cielo; un programa mal escrito es su
propio infierno. [Geoffrey James, El Tao de la Programación]
![Page 2: Clase x](https://reader033.fdocumento.com/reader033/viewer/2022060200/559916ed1a28aba7798b47f1/html5/thumbnails/2.jpg)
Excepciones
Sirven para informar que se ha producido una situaciónextraña y que debe tratarse
Se rompe la ejecución y se salta a un manejador de excepciones
Mejor que comprobar valoresde retorno
![Page 3: Clase x](https://reader033.fdocumento.com/reader033/viewer/2022060200/559916ed1a28aba7798b47f1/html5/thumbnails/3.jpg)
Excepciones
try {
cuerpo1
}
catch (excepción) {
cuerpo2
}
finally {
cuerpo3
}
throw excepción
public class UsaExcepciones {
public void metodo() throws excepción {
...
}
}
![Page 4: Clase x](https://reader033.fdocumento.com/reader033/viewer/2022060200/559916ed1a28aba7798b47f1/html5/thumbnails/4.jpg)
Excepciones
cuerpo1 está monitorizado paraexcepciones
Si se produjera una, se compararíala excepción contra la descrita en el catch
Si es asignable, se ejecuta cuerpo2
Si no se gestiona, se siguebuscando un gestor para la excepción
![Page 5: Clase x](https://reader033.fdocumento.com/reader033/viewer/2022060200/559916ed1a28aba7798b47f1/html5/thumbnails/5.jpg)
Excepciones
Independientemente de si ha habido o no excepciones, siemprese ejecuta cuerpo4
Las excepciones son clases, comoel resto, sólo que Java las tratadiferente
Se crean con new y se lanzan con throw
![Page 6: Clase x](https://reader033.fdocumento.com/reader033/viewer/2022060200/559916ed1a28aba7798b47f1/html5/thumbnails/6.jpg)
Excepciones
Las excepciones heredan de la clase Throwable
Sólo instancias de clases quehereden de esa superclase puedenaparecer en cláusulasthrow, throws o catch
throws indica que el método no trata la excepción y que la delegahacia arriba
![Page 7: Clase x](https://reader033.fdocumento.com/reader033/viewer/2022060200/559916ed1a28aba7798b47f1/html5/thumbnails/7.jpg)
Excepciones Error
Excepciones muy inusuales y queno se suelen tratar
VirtualMachineError
OutOfMemoryError
StackOverflowError
LinkageError
No es obligatorio capturarlas
![Page 8: Clase x](https://reader033.fdocumento.com/reader033/viewer/2022060200/559916ed1a28aba7798b47f1/html5/thumbnails/8.jpg)
Excepciones Exception
Excepciones que debentratarse
IOException
RemoteException
NotSerializableException
Es obligatorio capturarlas
Error de compilación
![Page 9: Clase x](https://reader033.fdocumento.com/reader033/viewer/2022060200/559916ed1a28aba7798b47f1/html5/thumbnails/9.jpg)
Excepciones RuntimeException
Excepciones que derivan de RuntimeException
ArrayIndexOutOfBoundsExcepion
NullPointerException
No es obligatorio capturarlas
Pero es recomendable
No hay error de compilación
![Page 10: Clase x](https://reader033.fdocumento.com/reader033/viewer/2022060200/559916ed1a28aba7798b47f1/html5/thumbnails/10.jpg)
Excepciones
Podemos crear nuestraspropias excepciones, creandoclases que heredan (extends) de Throwable
O alguna subclase de ésta
![Page 11: Clase x](https://reader033.fdocumento.com/reader033/viewer/2022060200/559916ed1a28aba7798b47f1/html5/thumbnails/11.jpg)
Excepciones
El control se transfiere al primer catch que tenga como captura la clase o alguna superclase de la excepción lanzada
Ordenar los catch de más a menosespecificidad
![Page 12: Clase x](https://reader033.fdocumento.com/reader033/viewer/2022060200/559916ed1a28aba7798b47f1/html5/thumbnails/12.jpg)
Excepciones
public void metodo() {
try {
.....
}
catch (FileNotFoundException ex) {...}
catch (IOException ex) {...}
catch (Exception ex) {...}
catch (Throwable ex) {...}
finally {....}
}
![Page 13: Clase x](https://reader033.fdocumento.com/reader033/viewer/2022060200/559916ed1a28aba7798b47f1/html5/thumbnails/13.jpg)
Excepciones
Podemos relanzar las excepcionesdentro de los bloque catch
El método termina y la excepciónaparece en el código llamante
try {
.....
}
catch (IOException ex) {throw ex;}
finally {...}
Excepciones
![Page 14: Clase x](https://reader033.fdocumento.com/reader033/viewer/2022060200/559916ed1a28aba7798b47f1/html5/thumbnails/14.jpg)
Abstracción
Un método es abstractocuando no se escribe el cuerpodel mismo
Se define su firma sin darimplementación
public abstract class Padre {
public abstract int metodo(int a) ;
}
![Page 15: Clase x](https://reader033.fdocumento.com/reader033/viewer/2022060200/559916ed1a28aba7798b47f1/html5/thumbnails/15.jpg)
Abstracción
Una clase es abstracta cuandotiene uno o más métodosabstractos
No se puede instanciar
Puede ser abstracta sin tenermétodos abstractos
Puede haber métodos abstractosmezclados con métodos no abstractos
![Page 16: Clase x](https://reader033.fdocumento.com/reader033/viewer/2022060200/559916ed1a28aba7798b47f1/html5/thumbnails/16.jpg)
Abstracción & Polimorfismo
public abstract class Hablar {
public abstract void diHola() ;
public void saluda(String quien) {
this.diHola();
System.out.println(quien);
}
}
![Page 17: Clase x](https://reader033.fdocumento.com/reader033/viewer/2022060200/559916ed1a28aba7798b47f1/html5/thumbnails/17.jpg)
Abstracción & Polimorfismo
public class Castellano extends Hablar{
public void diHola() {System.out.print(“Hola”);}
}
public class Euskera extends Hablar{
public void diHola() {System.out.print(“Kaixo”);}
}
Castellano a = new Castellano();
Euskera b = new Euskera();
a.saluda(“Juan”); // Hola Juan
b.saluda(“Patxi”); // Kaixo Patxi
ejemplo
![Page 18: Clase x](https://reader033.fdocumento.com/reader033/viewer/2022060200/559916ed1a28aba7798b47f1/html5/thumbnails/18.jpg)
Introducción a SWING
Interfaces gráficas en Java
Segunda versión
Tras AWT
Independiente de la plataforma
Se ve igual en todas
En AWT, la visualización dependía de la plataforma
![Page 19: Clase x](https://reader033.fdocumento.com/reader033/viewer/2022060200/559916ed1a28aba7798b47f1/html5/thumbnails/19.jpg)
Componentes
Todos y cada uno de los elementosde SWING
Por ejemplo:
JFrame
JLabel
JButton
etc.
![Page 20: Clase x](https://reader033.fdocumento.com/reader033/viewer/2022060200/559916ed1a28aba7798b47f1/html5/thumbnails/20.jpg)
Contenedores
Aquellos componentes que puedenalbergar otros componentes en suinterior
Los contenedores están formadospor uno o más componentes
JFrame
JDialog
JPanel
![Page 21: Clase x](https://reader033.fdocumento.com/reader033/viewer/2022060200/559916ed1a28aba7798b47f1/html5/thumbnails/21.jpg)
JFrame
La tradicional ventana
Tiene un título (setText())
Y luego componentes internos
frame.getContentPane().add(<compo>)
Pero más fácil modelar con JDeveloper
![Page 22: Clase x](https://reader033.fdocumento.com/reader033/viewer/2022060200/559916ed1a28aba7798b47f1/html5/thumbnails/22.jpg)
JLabel
Etiqueta no modificable
Tiene un contenido
setText() / getText()
No tiene un comportamiento destacable
![Page 23: Clase x](https://reader033.fdocumento.com/reader033/viewer/2022060200/559916ed1a28aba7798b47f1/html5/thumbnails/23.jpg)
JButton
Presionar para realizar unaacción
Tiene un título
setText() / getText()
Tiene un comportamiento
actionPerformed()