Introducción a Java (2) - Dr. Humberto Cervantes

Anuncio
Introducción a Java (2)
Humberto Cervantes Maceda
Alfonso Martínez Martínez
1
Marzo 2005
Indice
Conceptos adicionales Java
La clase Object
Manejo de excepciones
Buenas practicas de desarrollo
Utilizar convenciones de nombrado
Escribir documentación
Usar siempre un package e importar sólo los necesarios
Estructurar bien los proyectos
2
Conceptos adicionales de Java
3
La clase Object
Clase a la raíz de la jerarquía de herencia
Toda clase hereda de Object
Ventajas de una clase de base
Una variable de tipo Object puede almacenar una
referencia hacia cualquier objeto
Ej: colecciones
La clase Object provee varios métodos útiles
4
clone
equals
finalize
getClass
toString
Métodos de la clase Object
clone
Crea un duplicado del objeto
equals
Prueba si dos objetos son iguales
finalize
Llamado en el momento en que el objeto es colectado
por el colector de basura
getClass
Obtiene una referencia a la clase del objeto
toString
Convierte el objeto en cadena
5
Manejo de excepciones
Qué es?
Mecanismo diseñado para manejar errores de
ejecución u otros problemas dentro de un programa
Estado actual se salva, y el la ejecución es retomada
por un manejador (que “cacha” la excepción)
En Java, las excepciones están representadas por
clases y en ejecución por instancias de estas
java.lang.Throwable
Superclase de todos los errores y excepciones
java.lang.Error: condición anormal que no debe ser
cachada
java.lang.Exception: condición anormal que es
razonable manejar
6
Manejo de excepciones
void minusculas(String a)
{
try
{
a.toLower();
}
catch(NullPointerException ex)
{
System.out.println(“a es nulo!”);
ex.printStackTrace();
}
}
7
Lectura de excepciones
Interpretación de salida
Una excepción contiene una “fotografía” de la pila de
ejecución al momento en que ocurre
También contiene un mensaje
ex.printStackTrace() muestra la imagen de la
pila
Es necesario saber interpretar estas salidas para
entender los problemas del programa
Ejemplo
java.lang.NullPointerException
at Prueba.minusculas(Prueba.java:13)
at Prueba.main(Prueba.java:6)
8
Generación de excepciones
Es posible crear nuestras propias clases de
excepciones
Si generamos una excepción dentro de un
método, se debe declarar que el método 'lanza'
la excepción
throws
Se puede relanzar una excepción que se cachó.
Excepciones checadas vs. no checadas
Si nuestra excepción es subclase de
RuntimeException, el método no necesita declarar que
la lanza
Ej: NullPointerException
9
Manejo de excepciones
10
void minusculas(String a) throws Exception
{
try
{
a.toLower();
... más código ...
}
catch(NullPointerException ex)
{
System.out.println(“a es nulo!”);
}
catch(Exception ex)
{
System.out.println(“hubo excepcion que no se puede
manejar!”);
throw ex;
}
}
Ventajas de excepciones
Separación de lógica aplicativa y manejo de
errores
Manejo de errores también está separado según tipo
de error
Propagación de errores
Permite a distintas entidades encargarse antes de que
la aplicación falle por completo
11
Buenas practicas de desarrollo
12
Buenas practicas de desarrollo
Por qué?
Es importante seguir buenas practicas de desarrollo
desde el principio, por que facilitan el mantenimiento y
la comprensión del código por otras personas
Cuesta un poco más de trabajo al principio pero es
más trabajo mantener un proyecto sin convenciones!
Practicas que vamos a ver
Utilizar convenciones de nombrado
Escribir documentación
Usar sólo los imports necesarios
Estructurar bien los proyectos
13
Convenciones de nombrado
Las que vimos ayer
Clases: empiezan siempre con mayuscula
MiClase
Packages: siempre con minúsculas y nombre de
organización al revés
mx.uam.cursojava
Métodos: empiezan siempre con minuscula
miMetodo
Atributos: conviene usar una convención que
diferencie atributos de clase
m_nombre
14
Escribir documentación
Es muy importante documentar las clases
Distintos tipos de comentario
Javadoc
/**
Nombre
@param
*/
Comentario multi-línea
/*
Aquí va mi comentario
*/
Comentario sobre una línea
// Comentario
15
Packages
Usar siempre un package
Aunque Java lo permite, nunca se deben hacer clases
sin espacios de nombres
Importar sólo lo necesario
Java permite importar todas las clases de un package
import javax.swing.*
No es recomendable hacerlo, ya que dos packages
pueden contener una clase con el mismo nombre
16
Estructuración de proyecto
Directorios de base
src – fuentes
build – en donde se ponen los archivos compilados
bin – binarios, scripts
dist – lo que se va a distribuir (ej. archivos Jar)
doc – documentación
lib – librerías
17
Síntesis
Hoy vimos
Conceptos adicionales Java
Buenas practicas de desarrollo
La buena noticia
En la próxima sesión vamos a ver Eclipse que
simplifica mucho el seguimiento de estas prácticas
18
Descargar