SlideShare una empresa de Scribd logo
1 de 22
Laboratorio 0
Excepciones, IO, Colecciones
2
Recapitular
¿estructuras de control, tipos básicos? ¡C!
¿cómo se define una clase?
¿qué es y cómo se define una interfaz?
Algunas clases útiles…
3
Integer
objetos inmodificables, contienen un int
Class Integer {
Integer(int value)
Integer(String value)
int intValue()
static int parseInt(String s)
}
¡2 constructoras!
El valor contenido
¡inmodificable!
Conversión String a int
static => método de la clase
¡cómo una función de C!
¡no hay que crear un objeto para usarlo!
4
Long
objetos inmodificables, contienen un long
Class Long {
Long(long value)
Long(String value)
long longValue()
static long parseLong(String s)
}
¡2 constructoras!
El valor contenido
¡inmodificable!
Conversión String a long
5
Double
objetos inmodificables, contienen un double
Class Double {
Double(double value)
Double(String value)
double doubleValue()
static double parseDouble(String s)
}
¡2 constructoras!
El valor contenido
¡inmodificable!
Conversión String a double
6
Float
objetos inmodificables, contienen un float
Class Float {
Float(float value)
Float(String value)
Float floatValue()
static float parseFloat(String s)
}
¡2 constructoras!
El valor contenido
¡inmodificable!
Conversión String a double
7
Character
objetos inmodificables, contienen un char
Class Character {
Character(char value)
char charValue()
static char parseChar(String s)
}
¡LA constructora!
El valor contenido
¡inmodificable!
¡NO existe!
8
Class String {
String(char[] value)
static String valueOf(int s)
...
static String valueOf(double s)
byte[] getBytes()
}
¡hay más constructoras!
String
objetos inmodificables, contienen un
string
9
Antes de seguir...
Completa el desarrollo de una calculadora modesta
(la propuesta en el laboratorio anterior)
10
¿Qué son las excepciones en java?
Durante la ejecución de un programa,
pueden alcanzarse situaciones de error
El flujo de control se transfiere a un gestor
de excepciones
La información referente a las causas de la
situación de error está incluida en un objeto
java.lang.Exception
11
¿Cómo es un gestor de excepciones
en java?
try {
} catch (Exception exc){
}
Un bloque de instrucciones cualquiera
Instrucciones para gestionar la excepción
La referencia del objeto Excepcion que representa la causa del fallo
Se usará en ese bloque de instrucciones
Un identificador
cualquiera
12
Class Exception {
Exception()
Exception(String value)
String toString()
void printStackTrace()
}
¡hay más constructoras!
java.lang.Exception
objetos inmodificables, representan
situaciones de error
13
¿cómo abortar la ejecución?
Exception exc =
new Exception(“Fallo gordo”);
throws exc;
1) Creando una
Exception
La instrucción throws hace que se transfiera la ejecución al
Try{ … } catch ( … ){}
Correspondiente: ¡como en Ada, C++!
Vale cualquier
referencia de un
Exception
14
¿Hay más tipos de errores?
Hay una jerarquía de excepciones
java.lang.Exception
java.io.IOException RuntimeException
InterruptedException
¡Se pueden añadir clases!
(y es muy común)
15
Un experimento
Escribe un programa simple que use un
CalculadorImp
sin interfaz gráfica, sin E/S
Modifica el calculador de manera que su
método aborte así:
throws new RuntimeException();
Analiza el resultado producido
¿incluye suficiente información?
16
Un experimento (2)
Define una clase PPCException
extendiendo la clase
RuntimeException
Modifica el calculador de manera que su
método aborte así:
throws new PPCException();
Analiza el resultado producido
¿cómo incluirías más información?
O con
cualquier
otro nombre
17
Un experimento (3)
Modifica la clase PPCException
extendiendo la clase
Exception
Comprueba que el compilador no acepta la
nueva versión de CalculadorImp:
¿por qué?
18
Class CalculadorImp {
int factorial(int value)
throws PPCException;
} ¡hay que incluir todos los tipos de
excepciones que puedan generarse…!
¡Salvo que sean RuntimeException!
Métodos, excepciones y
java.lang.RuntimeException
19
Un experimento (4)
Comprueba que el compilador no acepta
la nueva versión de main:
¿por qué?
¿cómo se resuelve?
20
E/S, utilidades, documentación
Información referente a clases standard
 Pincha en Help > Help Topics
 Pincha en Reference > Jdk Reference
21
Una tarea:
Duplicar un archivo dado…
java.io.File: rutas de acceso a archivos
java.io.FileInputStream,
java.io.FileOutputStream: permiten
leer/escribir byte-por-byte el contenido de un
archivo
javax.swing.JFileChooser: permite navegar
interactivamente por el sistema de archivos
22
…o duplicarlo línea por línea
java.io.FileReader: leer el contenido de
un archivo carácter a carácter (codif. ASCII)
java.io.LineNumberReader: leer el contenido
de un archivo línea por línea
java.io.PrintStream: permite escribir
el contenido de un archivo de texto

Más contenido relacionado

Similar a excepciones.ppt (20)

Lenguajecviviana
LenguajecvivianaLenguajecviviana
Lenguajecviviana
 
OOP - Lab 1 - Variables y Asignacion.pdf
OOP - Lab 1 - Variables y Asignacion.pdfOOP - Lab 1 - Variables y Asignacion.pdf
OOP - Lab 1 - Variables y Asignacion.pdf
 
Tipos de datos
Tipos de datosTipos de datos
Tipos de datos
 
Introduccion Java
Introduccion JavaIntroduccion Java
Introduccion Java
 
C sharp intro0
C sharp intro0C sharp intro0
C sharp intro0
 
C sharp intro0
C sharp intro0C sharp intro0
C sharp intro0
 
Operadores poo
Operadores pooOperadores poo
Operadores poo
 
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANSTutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS
 
Mule Librerias en Java
Mule Librerias en JavaMule Librerias en Java
Mule Librerias en Java
 
Java 8 time to join the future
Java 8  time to join the futureJava 8  time to join the future
Java 8 time to join the future
 
Manuales ...
Manuales ...Manuales ...
Manuales ...
 
Java 8
Java 8Java 8
Java 8
 
C sharp intro1
C sharp intro1C sharp intro1
C sharp intro1
 
C sharp intro1
C sharp intro1C sharp intro1
C sharp intro1
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
Programación Java
Programación JavaProgramación Java
Programación Java
 
Curso Swift
Curso SwiftCurso Swift
Curso Swift
 
Tema 4 clases_y_objetos
Tema 4 clases_y_objetosTema 4 clases_y_objetos
Tema 4 clases_y_objetos
 
Introduccion a C++.pdf
Introduccion a C++.pdfIntroduccion a C++.pdf
Introduccion a C++.pdf
 
Workshop iOS 4: Closures, generics & operators
Workshop iOS 4: Closures, generics & operatorsWorkshop iOS 4: Closures, generics & operators
Workshop iOS 4: Closures, generics & operators
 

Más de ssuser73f459

NUMBER & GENDER in nouns apuntesingles.pptx
NUMBER & GENDER in nouns apuntesingles.pptxNUMBER & GENDER in nouns apuntesingles.pptx
NUMBER & GENDER in nouns apuntesingles.pptxssuser73f459
 
plantilla power point para big data.pptx
plantilla power point para big data.pptxplantilla power point para big data.pptx
plantilla power point para big data.pptxssuser73f459
 
Gestion_de_Proyectos.ppt
Gestion_de_Proyectos.pptGestion_de_Proyectos.ppt
Gestion_de_Proyectos.pptssuser73f459
 
CAPITULO_5_RECOPILACION_DE_INFORMACION.pptx
CAPITULO_5_RECOPILACION_DE_INFORMACION.pptxCAPITULO_5_RECOPILACION_DE_INFORMACION.pptx
CAPITULO_5_RECOPILACION_DE_INFORMACION.pptxssuser73f459
 
Clase1- Operador Office e Internet.ppt
Clase1- Operador Office e Internet.pptClase1- Operador Office e Internet.ppt
Clase1- Operador Office e Internet.pptssuser73f459
 
Presentacionteatree.pdf
Presentacionteatree.pdfPresentacionteatree.pdf
Presentacionteatree.pdfssuser73f459
 
Modulo1-Presentaciones-parte01.1.ppt
Modulo1-Presentaciones-parte01.1.pptModulo1-Presentaciones-parte01.1.ppt
Modulo1-Presentaciones-parte01.1.pptssuser73f459
 
Enc. 6 - Jesus nos llama a construir su reino.ppt
Enc. 6 - Jesus nos llama a construir su reino.pptEnc. 6 - Jesus nos llama a construir su reino.ppt
Enc. 6 - Jesus nos llama a construir su reino.pptssuser73f459
 
Voz Pasiva en Inglés.docx
Voz Pasiva en Inglés.docxVoz Pasiva en Inglés.docx
Voz Pasiva en Inglés.docxssuser73f459
 
Adjetivos con ED y ING con explicación y ejemplos claros.docx
Adjetivos con ED y ING con explicación y ejemplos claros.docxAdjetivos con ED y ING con explicación y ejemplos claros.docx
Adjetivos con ED y ING con explicación y ejemplos claros.docxssuser73f459
 

Más de ssuser73f459 (18)

NUMBER & GENDER in nouns apuntesingles.pptx
NUMBER & GENDER in nouns apuntesingles.pptxNUMBER & GENDER in nouns apuntesingles.pptx
NUMBER & GENDER in nouns apuntesingles.pptx
 
plantilla power point para big data.pptx
plantilla power point para big data.pptxplantilla power point para big data.pptx
plantilla power point para big data.pptx
 
Gestion_de_Proyectos.ppt
Gestion_de_Proyectos.pptGestion_de_Proyectos.ppt
Gestion_de_Proyectos.ppt
 
mmg-2000.ppt
mmg-2000.pptmmg-2000.ppt
mmg-2000.ppt
 
TipsIngles.pdf
TipsIngles.pdfTipsIngles.pdf
TipsIngles.pdf
 
uml2.ppt
uml2.pptuml2.ppt
uml2.ppt
 
Modulo6.ppt
Modulo6.pptModulo6.ppt
Modulo6.ppt
 
Modulo2.ppt
Modulo2.pptModulo2.ppt
Modulo2.ppt
 
CAPITULO_5_RECOPILACION_DE_INFORMACION.pptx
CAPITULO_5_RECOPILACION_DE_INFORMACION.pptxCAPITULO_5_RECOPILACION_DE_INFORMACION.pptx
CAPITULO_5_RECOPILACION_DE_INFORMACION.pptx
 
Clase1- Operador Office e Internet.ppt
Clase1- Operador Office e Internet.pptClase1- Operador Office e Internet.ppt
Clase1- Operador Office e Internet.ppt
 
Presentacionteatree.pdf
Presentacionteatree.pdfPresentacionteatree.pdf
Presentacionteatree.pdf
 
Modulo1-Presentaciones-parte01.1.ppt
Modulo1-Presentaciones-parte01.1.pptModulo1-Presentaciones-parte01.1.ppt
Modulo1-Presentaciones-parte01.1.ppt
 
demoDAAW.ppt
demoDAAW.pptdemoDAAW.ppt
demoDAAW.ppt
 
Enc. 6 - Jesus nos llama a construir su reino.ppt
Enc. 6 - Jesus nos llama a construir su reino.pptEnc. 6 - Jesus nos llama a construir su reino.ppt
Enc. 6 - Jesus nos llama a construir su reino.ppt
 
Voz Pasiva en Inglés.docx
Voz Pasiva en Inglés.docxVoz Pasiva en Inglés.docx
Voz Pasiva en Inglés.docx
 
TINKERS FARM.doc
TINKERS FARM.docTINKERS FARM.doc
TINKERS FARM.doc
 
verb tenses.docx
verb tenses.docxverb tenses.docx
verb tenses.docx
 
Adjetivos con ED y ING con explicación y ejemplos claros.docx
Adjetivos con ED y ING con explicación y ejemplos claros.docxAdjetivos con ED y ING con explicación y ejemplos claros.docx
Adjetivos con ED y ING con explicación y ejemplos claros.docx
 

Último

Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...GuillermoRodriguez239462
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxwilliam801689
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaAlexanderimanolLencr
 
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCarlosGabriel96
 
Minería convencional: datos importantes y conceptos
Minería convencional: datos importantes y conceptosMinería convencional: datos importantes y conceptos
Minería convencional: datos importantes y conceptosisauVillalva
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTElisaLen4
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfdanielJAlejosC
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfs7yl3dr4g0n01
 
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERUQUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERUManuelSosa83
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATevercoyla
 
DISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdf
DISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdfDISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdf
DISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdfDaysonMillerAvilesAc1
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZgustavoiashalom
 
2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologicaJUDITHYEMELINHUARIPA
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDEdith Puclla
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.pptjacnuevarisaralda22
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGUROalejandrocrisostomo2
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processbarom
 
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdfCONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdfwduranteg
 
Sistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión internaSistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión internamengual57
 

Último (20)

Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docx
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiología
 
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
 
Minería convencional: datos importantes y conceptos
Minería convencional: datos importantes y conceptosMinería convencional: datos importantes y conceptos
Minería convencional: datos importantes y conceptos
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdf
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
 
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERUQUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
 
DISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdf
DISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdfDISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdf
DISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdf
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
 
2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica
 
422382393-Curso-de-Tableros-Electricos.pptx
422382393-Curso-de-Tableros-Electricos.pptx422382393-Curso-de-Tableros-Electricos.pptx
422382393-Curso-de-Tableros-Electricos.pptx
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo process
 
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdfCONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
 
Sistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión internaSistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión interna
 

excepciones.ppt

  • 2. 2 Recapitular ¿estructuras de control, tipos básicos? ¡C! ¿cómo se define una clase? ¿qué es y cómo se define una interfaz? Algunas clases útiles…
  • 3. 3 Integer objetos inmodificables, contienen un int Class Integer { Integer(int value) Integer(String value) int intValue() static int parseInt(String s) } ¡2 constructoras! El valor contenido ¡inmodificable! Conversión String a int static => método de la clase ¡cómo una función de C! ¡no hay que crear un objeto para usarlo!
  • 4. 4 Long objetos inmodificables, contienen un long Class Long { Long(long value) Long(String value) long longValue() static long parseLong(String s) } ¡2 constructoras! El valor contenido ¡inmodificable! Conversión String a long
  • 5. 5 Double objetos inmodificables, contienen un double Class Double { Double(double value) Double(String value) double doubleValue() static double parseDouble(String s) } ¡2 constructoras! El valor contenido ¡inmodificable! Conversión String a double
  • 6. 6 Float objetos inmodificables, contienen un float Class Float { Float(float value) Float(String value) Float floatValue() static float parseFloat(String s) } ¡2 constructoras! El valor contenido ¡inmodificable! Conversión String a double
  • 7. 7 Character objetos inmodificables, contienen un char Class Character { Character(char value) char charValue() static char parseChar(String s) } ¡LA constructora! El valor contenido ¡inmodificable! ¡NO existe!
  • 8. 8 Class String { String(char[] value) static String valueOf(int s) ... static String valueOf(double s) byte[] getBytes() } ¡hay más constructoras! String objetos inmodificables, contienen un string
  • 9. 9 Antes de seguir... Completa el desarrollo de una calculadora modesta (la propuesta en el laboratorio anterior)
  • 10. 10 ¿Qué son las excepciones en java? Durante la ejecución de un programa, pueden alcanzarse situaciones de error El flujo de control se transfiere a un gestor de excepciones La información referente a las causas de la situación de error está incluida en un objeto java.lang.Exception
  • 11. 11 ¿Cómo es un gestor de excepciones en java? try { } catch (Exception exc){ } Un bloque de instrucciones cualquiera Instrucciones para gestionar la excepción La referencia del objeto Excepcion que representa la causa del fallo Se usará en ese bloque de instrucciones Un identificador cualquiera
  • 12. 12 Class Exception { Exception() Exception(String value) String toString() void printStackTrace() } ¡hay más constructoras! java.lang.Exception objetos inmodificables, representan situaciones de error
  • 13. 13 ¿cómo abortar la ejecución? Exception exc = new Exception(“Fallo gordo”); throws exc; 1) Creando una Exception La instrucción throws hace que se transfiera la ejecución al Try{ … } catch ( … ){} Correspondiente: ¡como en Ada, C++! Vale cualquier referencia de un Exception
  • 14. 14 ¿Hay más tipos de errores? Hay una jerarquía de excepciones java.lang.Exception java.io.IOException RuntimeException InterruptedException ¡Se pueden añadir clases! (y es muy común)
  • 15. 15 Un experimento Escribe un programa simple que use un CalculadorImp sin interfaz gráfica, sin E/S Modifica el calculador de manera que su método aborte así: throws new RuntimeException(); Analiza el resultado producido ¿incluye suficiente información?
  • 16. 16 Un experimento (2) Define una clase PPCException extendiendo la clase RuntimeException Modifica el calculador de manera que su método aborte así: throws new PPCException(); Analiza el resultado producido ¿cómo incluirías más información? O con cualquier otro nombre
  • 17. 17 Un experimento (3) Modifica la clase PPCException extendiendo la clase Exception Comprueba que el compilador no acepta la nueva versión de CalculadorImp: ¿por qué?
  • 18. 18 Class CalculadorImp { int factorial(int value) throws PPCException; } ¡hay que incluir todos los tipos de excepciones que puedan generarse…! ¡Salvo que sean RuntimeException! Métodos, excepciones y java.lang.RuntimeException
  • 19. 19 Un experimento (4) Comprueba que el compilador no acepta la nueva versión de main: ¿por qué? ¿cómo se resuelve?
  • 20. 20 E/S, utilidades, documentación Información referente a clases standard  Pincha en Help > Help Topics  Pincha en Reference > Jdk Reference
  • 21. 21 Una tarea: Duplicar un archivo dado… java.io.File: rutas de acceso a archivos java.io.FileInputStream, java.io.FileOutputStream: permiten leer/escribir byte-por-byte el contenido de un archivo javax.swing.JFileChooser: permite navegar interactivamente por el sistema de archivos
  • 22. 22 …o duplicarlo línea por línea java.io.FileReader: leer el contenido de un archivo carácter a carácter (codif. ASCII) java.io.LineNumberReader: leer el contenido de un archivo línea por línea java.io.PrintStream: permite escribir el contenido de un archivo de texto