Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Java
Java
2006
1 Introduccin. 2 Lenguaje Java. 3 Arreglos. 4 Orientacin a Objetos (OO). 5 Estructuras de datos. 6 Manejo de errores. 7 Acceso a base de datos (JDBC).
2
everis- CONFIDENCIAL DERECHOS RESERVADOS
Introduccin
Introduccin Historia
Introduccin Caractersticas
Caractersticas de Java
Portabilidad (con ese fin naci). Orientado a objeto (est de moda). Robusto (manejo de errores antes de que ocurran). Pensando en el programador (Recolector de basura). No hay punteros.
Introduccin Definiciones
Qu es la portabilidad?
Se refiere a la capacidad de un programa de ejecutarse en diferentes sistemas con mnimas modificaciones.
Qu es la seguridad?
A seguridad informtica, generalmente consiste en asegurar que los recursos del sistema de informacin (Material informtico o programas) de una organizacin sean utilizados de la manera que se decidi.
Qu es la eficiencia?
La capacidad del software de ejecutarse en un tiempo razonable para el usuario.
6
everis- CONFIDENCIAL DERECHOS RESERVADOS
Introduccin Comparacin
Gracias a la mquina virtual de Java (en ingls Java Virtual Machine, JVM). JVM es un programa nativo ejecutable en una plataforma especfica. La JVM es capaz de interpretar y ejecutar instrucciones expresadas en un cdigo binario especial (Java bytecode). El bytecode es generado por el compilador del lenguaje Java.
8
everis- CONFIDENCIAL DERECHOS RESERVADOS
10
11
12
1 Introduccin. 2 Lenguaje Java. 3 Arreglos. 4 Orientacin a Objetos (OO). 5 Estructuras de datos. 6 Manejo de errores. 7 Acceso a base de datos (JDBC).
13
everis- CONFIDENCIAL DERECHOS RESERVADOS
14
La primera versin era JDK 1.0.0, fue reemplazada por JDK 1.1.0. El nombre ha sido intercambiado entre JDK y SDK (Software Development Kit).
15
Ejecutar el instalador visual (win32) o el instalador de Linux (.sh/.bin/.rpm). Configurar las variables de entorno:
set PATH=C:\j2sdk1.4.2_10;%PATH% (win32). export PATH=(rutaInstalacion):$PATH (Linux).
16
Compilador de Java. Intrprete de Java (JVM). Intrprete de applets Java. Depurador de Java. Generador de documentacin. Integrador de C y C++ (JNI). Desensamblador.
17
Se refiere a la JVM. Es el software necesario para ejecutar el bytecode. JDK es JRE ms herramientas de desarrollo (javac).
18
19
El archivo debe llamarse HolaMundo.java Se compila con: javac HolaMundo.java Se ejecuta con: java HolaMundo El resultado es: Hola Mundo!
20
everis- CONFIDENCIAL DERECHOS RESERVADOS
21
Una sentencia es una lnea de cdigo terminada con punto y coma ;. Un bloque es un conjunto de sentencias agrupadas entre llave {}. Los bloques de cdigo pueden estar anidados.
22
everis- CONFIDENCIAL DERECHOS RESERVADOS
Son las palabras que se les pueden dar a clases mtodos y variables. Se debe tener en cuenta lo siguientes:
Debe empezar con una letra, subrayado (_) o dlar ($). Despus del primer carcter pueden usar nmeros. Distingue entre las maysculas y las minsculas. No pueden coincidir con las palabras claves (keyword).
23
24
Son contenedores de datos identificados mediante nombres (identificadores). El identificador se utiliza para referir al dato que contiene. Cada variable debe llevar un tipo que describa el dato que contiene. Por lo tanto una variable debe tener:
Un tipo. Un identificador. Un valor.
25
Es la sentencia mediante la cual se le asigna un tipo y un identificador. Adicionalmente se le puede asignar un valor inicial.
26
27
Lo que almacena Rango 1 byte (8 bits) 2 byte (16 bits) 4 byte (32 bits) 8 byte (64 bits) 4 byte (32 bits) 8 byte (64 bits) 2 bytes (16 bits) de -128 a 127 de -32768 a 32767 de -2147483648 a 2147483647 de -2-63 a 263 - 1 6 dgitos significativos (10-46 , 1038) 15 dgitos significativos (10-324 , 10308) Comprende el cdigo ASCII false y true
28
everis- CONFIDENCIAL DERECHOS RESERVADOS
Son referencia a un objeto (instancia). Su valor por omisin es null. En la variable compleja se guarda la referencia (puntero) a la zona de memoria donde est guardado el objeto.
29
Tipo nativo byte short int long float double char boolean
Equivalente complejo Byte Short Integer Long Float Double Character Boolean
30
everis- CONFIDENCIAL DERECHOS RESERVADOS
Es la zona de cdigo donde se puede referenciar dicha variable con su identificador. El lugar de definicin de la variable establece su mbito. Los mbitos pueden ser:
Atributos (o variable miembro). Parmetros de mtodos. Variables locales. Variables de bloques.
31
32
33
Lenguaje Java Conversin entre tipos (Casting) Existen conversiones implcitas y explcitas. Las conversiones implcitas se resuelven en tiempo de compilacin. Las conversiones explcitas se resuelven en tiempo de ejecucin.
34
Lenguaje Java Conversin entre tipos (Casting) Identificar que sentencias son incorrectas.
35
36
37
Descripcin Multiplicacin Resto de una divisin entera Suma Resta Decremento Menos unario Divisin
Smbolo * % + -/
Resultado 10 1 14 -2 1 -6 10
everis- CONFIDENCIAL DERECHOS RESERVADOS
Sin el control de flujo el cdigo ser ejecutado linealmente sin interrupciones. Existen cuatro tipos de sentencia de control:
Bucles: while , do-while y for. Bifurcaciones: if-then-else y switch-case. Gestin de excepciones: try-catch-finally y throw. De ruptura: break, continue, label: y return.
39
everis- CONFIDENCIAL DERECHOS RESERVADOS
La sentencia while se utiliza para ejecutar continuamente un cdigo mientras que la condicin del while sea true. La sentencia do-while es parecida al while, pero asegura que el bloque de cdigo sea ejecutado al menos una vez.
40
La sentencia for facilita ejecutar un bloque de cdigo un nmero determinado de veces. Consiste de una inicializacin, una condicin y un incremento. Las variables de inicializaciones son locales al for. El incremento es opcional.
41
Esta sentencia permite elegir que bloque de cdigo ejecutar entre dos posibilidades.
42
Esta sentencia evala una expresin del tipo int o que pueda ser convertida a int en forma implcita. Existe una opcin que se ejecuta si ninguna de las anteriores coincide (default).
43
Break: Sirve para detener la ejecucin de tanto los bucles como la sentencia switch. Por lo tanto, continua con la lnea siguientes al bucle o el switch. Continue: Sirve para detener la ejecucin de un bucle y vuelve a evaluar su condicin. Return: Sirve para finalizar la ejecucin de un mtodo.
44
everis- CONFIDENCIAL DERECHOS RESERVADOS
Mtodos
Facilita la lectura del cdigo. Los mtodos en Java pueden retornar un tipo de datos o vaco (void). Los mtodos pueden recibir parmetros. Los mtodos se invocan usando su nombre y llenando sus parmetros. Un mtodo puede llamar a otro mtodo. Los mtodos se defines dentro del cuerpo de la clase.
45
Mtodos
46
Paquetes (Package)
Las clases se organizan en paquetes. Para usar una clase de otro paquete, se debe importar la clase. Una excepcin son las clases del paquete java.lang. El programador puede crear sus propios paquetes con el fin de organizar su cdigo.
47
Normas de codificacin
El nombre de las clases comienza con mayscula. El nombre de los mtodos comienza con minscula. El nombre de las variables comienza con minscula. Si el nombre de la clase, el mtodo o la variable consiste de varias palabras, entonces las primeras letras de las palabras siguientes deben comenzar con mayscula. Ejemplos:
int contadorAuxiliarTemporal = 0; public static void metodoQueNoRetornaNada(){} public class ClasePrincipal{}
48
1 Introduccin. 2 Lenguaje Java. 3 Arreglos. 4 Orientacin a Objetos (OO). 5 Estructuras de datos. 6 Manejo de errores. 7 Acceso a base de datos (JDBC).
49
everis- CONFIDENCIAL DERECHOS RESERVADOS
Arreglos
Son un conjunto o agrupacin de variables del mismo tipo cuyo acceso se realiza por ndices. Los arreglos (arrays) de dos o ms dimensiones se denominan matrices que pueden tener tantas dimensiones como se desee. Los arreglos en Java empiezan del subndice cero. Para acceder a una celda del arreglo se utiliza su posicin. Es posible conocer el largo de un arreglo.
50
everis- CONFIDENCIAL DERECHOS RESERVADOS
Arreglos
51
Arreglos Ejercicios
Inicializar un arreglos con los primero 100 nmeros (1-100). Inicializar un arreglo con los primeros 100 nmeros pares ( 0,2,4,6,..) e imprimir los primeros 10 nmeros en el mismo ciclo.
52
Arreglos Solucin
53
Arreglos Ejercicios
54
Arreglos Solucin
55
1 Introduccin. 2 Lenguaje Java. 3 Arreglos. 4 Orientacin a Objetos. 5 Estructuras de datos. 6 Manejo de errores. 7 Acceso a base de datos (JDBC).
56
everis- CONFIDENCIAL DERECHOS RESERVADOS
Introduccin e historia
La Programacin Orientada a Objetos (POO u OOP segn siglas en ingls) es un paradigma de programacin que define los programas en trminos de "clases de objetos. Objetos que son entidades que combinan estado (es decir, datos), comportamiento (esto es, procedimientos o mtodos) e identidad (propiedad del objeto que lo diferencia del resto). La POO expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas.
57
everis- CONFIDENCIAL DERECHOS RESERVADOS
Introduccin e historia
Esto difiere de los lenguajes procedurales tradicionales, en los que los datos y los procedimientos estn separados y sin relacin. Estos mtodos estn pensados para hacer los programas y mdulos ms fciles de escribir, mantener y reutilizar.
58
Introduccin e historia
La POO anima al programador a pensar en los programas principalmente en trminos de tipos de datos, y en segundo lugar en las operaciones ("mtodos") especficas a esos tipos de datos. Los lenguajes procedurales animan al programador a pensar sobre todo en trminos de procedimientos, y en segundo lugar en los datos que esos procedimientos manejan.
59
Introduccin e historia
Los programadores que emplean lenguajes procedurales, escriben funciones y despus les pasan datos. Los programadores que emplean lenguajes orientados a objetos definen objetos con datos y mtodos, y despus envan mensajes a los objetos diciendo que realicen esos mtodos en s mismos.
60
everis- CONFIDENCIAL DERECHOS RESERVADOS
Introduccin e historia
Tiene su origen con el lenguaje Simula67, que se usaba para simular naves y explosiones. Ms tarde fue refinado en el lenguaje Smalltalk. Smalltalk es el primer lenguaje de OO puro. La POO tom gran fuerza a mediados de los ochentas con la aparicin de C++. Otros lenguaje incorporaron la OO, tal como Ada, BASIC, Lisp y Pascal.
61
Introduccin e historia
Lexico (en castellano) Objective-C Ocaml PHP 5 Python Ruby Smalltalk Visual Basic
62
Introduccin e historia
Simula67 Lexico
Eiffel
C++
63
Modelo mental anmalo. Nuestra imagen del mundo se apoya en los seres, a los que asignamos nombres sustantivos, mientras la programacin clsica se basa en el comportamiento, representado usualmente por verbos. Es difcil modificar y extender los programas, pues suele haber datos compartidos por varios subprogramas, que introducen interacciones ocultas entre ellos. Es difcil mantener los programas. Es difcil reutilizar los programas.
64
Objeto: entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad ("mtodos"). Corresponden a los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa). Clase: definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciacin es la lectura de estas definiciones y la creacin de un objeto a partir de ellas.
65
Mtodo: algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecucin se desencadena tras la recepcin de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un mtodo puede producir un cambio en las propiedades del objeto, y/o la generacin de un "evento" con un nuevo mensaje para otro objeto del sistema.
66
Evento: un suceso en el sistema (tal como una interaccin del usuario con la mquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. Mensaje: una comunicacin dirigida a un objeto, que le ordena que ejecute uno de sus mtodos con ciertos parmetros asociados al evento que lo gener.
67
Propiedad o atributo: contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto, y cuyo valor puede ser alterado por la ejecucin de algn mtodo. Estado interno: es una propiedad invisible de los objetos, que puede ser nicamente accedida y alterada por un mtodo del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos).
68
everis- CONFIDENCIAL DERECHOS RESERVADOS
69
70
71
72
73
74
75
Objetos y clases
Una clase es un plano que sirve para crear una instancia (objeto). Los objetos son realizados o instanciados a partir de una clase usando el operador new.
76
Objetos y clases
Una funcin especial son los constructores, que se ejecutan al usar el operador new inicializando la clase. Puede haber ms de un constructor. El constructor no retorna nada. Debe tener el nombre de la clase. Existe uno por omisin (sin parmetros). El constructor NO es un mtodo.
77
Encapsulamiento u Ocultamiento
Cada objeto est aislado del exterior. El aislamiento protege a los datos asociados a un objeto contra su modificacin por quien no tenga derecho a acceder a ellos. Esto elimina efectos secundarios e interacciones no deseadas.
78
Encapsulamiento u Ocultamiento
El encapsulamiento de variables y mtodos en un componente de software provee dos principales beneficios a los desarrolladores:
Modularidad, esto es, el cdigo fuente de un objeto puede ser escrito, as como darle mantenimiento, independientemente del cdigo fuente de otros objetos. Ocultamiento de la informacin, es decir, un objeto tiene una "interfaz publica" que otros objetos pueden utilizar para comunicarse con l.
79
Herencia
Es uno de los mecanismos de la POO, por medio del cual una clase se deriva de otra de manera que extiende su funcionalidad. Partir de las situaciones ms generales e ir derivando hacia las ms particulares, creando categoras, de la misma forma en que piensa el ser humano. La herencia nos permite una forma de armar una estructura con nuestras clases.
80
everis- CONFIDENCIAL DERECHOS RESERVADOS
Herencia
Ejemplo
Queremos clasificar los animales (Perros, Gatos y Salmones). Escribir el cdigo desde cero para cada uno de ellos sera tedioso y poco intuitivo. Los perros y gatos son mamferos. Los salmones son peces. Y todos son animales. Sera lgico elaborar una clase que tenga todas sus caractersticas en comn.
81
everis- CONFIDENCIAL DERECHOS RESERVADOS
Herencia
Ejemplo
82
Herencia
Ejemplo
83
Herencia
Resumen
Se basa en la existencia de relaciones de generalizacin/especializacin entre clases. Las clases se disponen en una jerarqua, donde una clase hereda los atributos y mtodos de las clases superiores en la jerarqua. Una clase puede tener sus propios atributos y mtodos adicionales a lo heredado. Una clase puede modificar los atributos y mtodos heredados. La implementacin de la herencia se realiza mediante la clave: extends.
84
everis- CONFIDENCIAL DERECHOS RESERVADOS
Herencia
Resumen
Las clases por encima en la jerarqua a una clase dada, se denominan superclases. Las clases por debajo en la jerarqua a una clase dada, se denominan subclases. Una clase puede ser superclase y subclase al mismo tiempo. Tipos de herencia:
Simple. Mltiple (no soportada en Java).
85
Herencia
Ejercicio
Haga el objeto Salmn. El salmn puede ser de agua dulce o de agua salada. Agregue la velocidad mxima.
86
Polimorfismo
Polimorfismo en herencia. Sobre carga de constructores. Sobre carga de mtodos. Sobre escritura de mtodos.
87
Polimorfismo
88
Polimorfismo
89
Clases abstractas
Una clase abstracta no tiene definido el cdigo de todos sus mtodos. Debe ser marcada como abstract. Una clase abstracta est hecha para ser heredada. Por lo tanto una clase abstracta no puede ser final. Una clase que hereda a una clase abstracta debe implementar sus mtodos abstractos. Una clase abstracta no puede ser instanciada.
90
everis- CONFIDENCIAL DERECHOS RESERVADOS
Clases abstractas
Ejemplo
91
Clases abstractas
Ejemplo
92
Clases abstractas
Ejemplo
93
Interfaces
Las interfaces en Java nos solucionan en parte la no existencia de la herencia mltiple. Las interfaces son un tipo de clase especial que no implementa ninguno de sus mtodos. Todos sus mtodos son abstractos. Por lo tanto no se pueden instanciar. La declaracin de una interface Java se realiza mediante la clave: interface seguido de su nombre.
94
everis- CONFIDENCIAL DERECHOS RESERVADOS
Interfaces
El objetivo de un mtodo abstracto es forzar una interfaz (API) pero no una implementacin. De las interfaces no se hereda, se implementa. Y se realiza mediante la clave: implements. Una clase puede implementar mltiples interfaces. Una clase puede heredar de otra clase y a la vez implementar mltiples interfaces. Una interface puede tambin definir constantes. Si una clase que implementa una interface, no implementa todos sus mtodos, deber ser definida como abstracta.
95
Interfaces
Ejemplo
96
Una interface no puede implementar ningn mtodo. Una clase puede implementar n interfaces pero solo heredar de una clase. Una interface no forma parte de la jerarqua de clases. Clases dispares pueden implementar la mismo interface.
97
98
Cuadro comparativo
99
Cuadro comparativo
Java Smalltalk SI SI SI NO SI NO SI SI SI SI SI SI
Eiffel SI SI SI SI SI SI
100
Modificadores
final:
En un atributo: no modificable En un mtodo: no se puede redefinir en un heredero
static: pertenece a la clase (no a una instancia) synchronized: sincronizado (solo mtodos) Acceso:
public: puede ser usado por cualquier clase protected : solo puede ser vista por clases dentro del paquete y herederos private: solo puede ser vista por esta clase (no herederos). Si no se indica un acceso se asume package, slo puede ser vista por otras clases en el mismo paquete.
101
Frases finales
Solamente hay dos cosas equivocadas en C++: el concepto inicial y la implementacin. (Bertrand Meyer, creador de Eiffel). La programacin orientada a objetos es, en cierto sentido, slo un truco de programacin que usa indireccin. Es un truco que los buenos programadores llevan aos usando. (Bjarne Stroustrup, creador de C++). Convertir C en un lenguaje orientado a objetos es como tratar de convertir un perro en un pulpo clavndole ms piernas. (Steve Taylor). C te trata como un adulto consentido. Pascal te trata como un chico desobediente. Ada te trata como un criminal. (Bruce Powel Douglass).
102
Frases finales
Ah, Java. Todo el rendimiento de Smalltalk combinado con la claridad sintctica de C++. (Annimo). Conocer la sintaxis de Java no convierte a nadie en un ingeniero de software. (John Knight). Cualquier programador lo suficientemente persistente y empecinado conseguir escribir cdigo al estilo Fortran o Cobol en cualquier lenguaje de programacin que utilice. (Annimo. Odo en la Universidad de Valencia) Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders. (Annimo. bash.org)
103
Frases finales
Los objetos en el sentido de la orientacin a objetos han estado presentes entre nosotros desde que se desarroll la conciencia en la especie humana, pero se ha tardado miles de aos en aprovecharlos como tcnica. Cunto tiempo ms se necesitar para extraer el mximo rendimiento de la OO? [...] Quiz necesitemos un cambio conceptual antes que una sucesin frentica de cambios tcnicos. Howard Humphrey (2002)
104
everis- CONFIDENCIAL DERECHOS RESERVADOS
105
Desarrollar una clase llamada Triangulo que: Tenga tres atributos private de tipo Punto. Tenga un constructor con tres parmetros de tipo Punto que inicialice los tres atributos. Tenga un constructor por omisin (sin parmetros) que inicialice los tres atributos al valor que se quiera. Tenga un constructor con seis parmetros de tipo double que inicialice los tres atributos. Tenga un getter para cada uno de los atributos. Tenga un mtodo calcularDistanciaDesde que recibe un parmetro de tipo Punto y que devuelve un double. Tenga un mtodo calcularArea que no recibe ningn parmetro y devuelve un double.
107
109
Nota: Para calcular un nmero aleatorio usaremos Math.random() que devuelve un double entre 0.0 y 1.0.
110
everis- CONFIDENCIAL DERECHOS RESERVADOS
111
113
114
115
1 Introduccin. 2 Lenguaje Java. 3 Arreglos. 4 Orientacin a Objetos. 5 Estructuras de datos. 6 Manejo de errores. 7 Acceso a base de datos (JDBC).
116
everis- CONFIDENCIAL DERECHOS RESERVADOS
Estructuras de datos
Es una forma de organizar un conjunto de datos con el objetivo de facilitar la manipulacin de estos datos como un todo o individualmente.
117
Estructuras de datos
Clases bsicas (String)
java.lang.
String. StringBuffer
118
Estructuras de datos
Clases bsicas (String)
java.util.StringTokenizer
119
Estructuras de datos
Clases bsicas (String) Ejercicios
Recibir una frase como argumento de la aplicacin y ejecutar las siguientes operaciones:
Imprimir las palabras de la frase, una en cada lnea. Imprimir las palabras de la frase en mitad mayscula y mitad minscula. Imprimir la frase escrita al revs.
120
Estructuras de datos
Colecciones
Una coleccin es simplemente un objeto que agrupa varios elementos en uno solo. Se utilizan para guardar y manipular datos as como transmitir informacin entre mtodos. En Java tenemos un framework de colecciones:
Interfaces: representaciones abstractas de las colecciones que permiten usarlas sin conocer sus detalles. Implementaciones: colecciones concretas. Algoritmos: mtodos que permiten realizar operaciones como bsquedas, ordenaciones, etc.
121
everis- CONFIDENCIAL DERECHOS RESERVADOS
Estructuras de datos
Colecciones
122
Estructuras de datos
Colecciones
Todas las colecciones se encuentran en el paquete java.util.*; java.util.Collection es la raz de la jerarqua de las colecciones. Existirn especializaciones que permitan elementos duplicados o no, que permitan ordenar los elementos o no, etc. Esta clase contiene la definicin de todos los mtodos genricos que deben implementar las colecciones.
123
Estructuras de datos
Colecciones (Iterator)
El interfaz Iterator representa un componente que permite iterar sobre los elementos de una coleccin. Todas las colecciones ofrecen una implementacin de Iterator por medio del mtodo: public Iterator iterator(); Sus mtodos son:
boolean hasNext(); // Si tiene mas elementos. Object next(); // Devuelve el primer elemento y se queda apuntando al siguiente.
124
everis- CONFIDENCIAL DERECHOS RESERVADOS
Estructuras de datos
Colecciones (Set)
El interfaz Set hereda del interfaz Collection. Pero no aade la definicin de ningn mtodo nuevo. Representa colecciones que no permiten tener elementos duplicados. Para saber si un elemento est duplicado, hace uso del mtodo:
public boolean equals(Object o);
Estructuras de datos
Colecciones (Set)
126
Estructuras de datos
Colecciones (Set)
127
Estructuras de datos
Colecciones (List)
El interfaz List hereda del interfaz Collection. Representa colecciones con elementos en secuencia. Es decir, con orden. Permite tener duplicados. Es accesible mediante ndice, de manera que se puede:
Acceder a un elemento concreto de una posicin. Insertar un elemento en una posicin concreta.
128
Estructuras de datos
Colecciones (List)
129
Estructuras de datos
Colecciones (List)
130
Estructuras de datos
Colecciones (List)
131
Estructuras de datos
Colecciones (Map)
La interfaz Map no hereda del interfaz Collection. Representa colecciones con parejas de elementos: clave y valor. No permite tener claves duplicadas. Pero si valores duplicados.
132
Estructuras de datos
Colecciones
133
Estructuras de datos
Colecciones (Map)
134
Estructuras de datos
Colecciones
135
Estructuras de datos
Colecciones
136
Estructuras de datos
Ejercicio 1/2
Estructuras de datos
Ejercicio 2/2
Haga una clase AplicacionCliente que permita ingresar clientes aceptando repeticin de rut y que imprima la informacin de todos los clientes al salir (use Collection). Haga una clase AplicacionCliente2 que permita ingresar clientes sin repeticin de rut y que imprima la informacin de todos los clientes al salir (use Map).
138
everis- CONFIDENCIAL DERECHOS RESERVADOS
1 Introduccin. 2 Lenguaje Java. 3 Arreglos. 4 Orientacin a Objetos. 5 Estructuras de datos. 6 Manejo de errores. 7 Acceso a base de datos (JDBC).
139
everis- CONFIDENCIAL DERECHOS RESERVADOS
Manejo de errores
Una excepcin es una condicin anormal que se produce en una porcin de cdigo durante su ejecucin. La existencia de las excepciones permite:
Encapsular en clases los errores. Separar el flujo de ejecucin normal del tratamiento de errores.
Las excepciones se pueden: o tratar o relanzar para que sean tratadas por otro mtodo del stack. Pueden ser:
Verificadas : Requieren un control explcito (en tiempo de compilacin). No verificadas: No requieren un control explicito y pueden ocurrir en cualquier momento (en tiempo de ejecucin).
140
Manejo de errores
Verificadas Vs. No verificadas
Verificadas (checked):
Su tratamiento es obligatorio y el compilador as lo chequea. Todas aquellas clases hijas de java.lang.Exception
No verificadas (unchecked):
Su tratamiento no es obligatorio y el compilador no lo chequea. Todas aquellas clases hijas de java.lang.Error o de java.lang.RuntimeException.
141
Manejo de errores
142
Manejo de errores
En tiempo de compilacin
143
Manejo de errores
En tiempo de ejecucin
144
Manejo de errores
Las excepciones se pueden atrapar usando try-catchfinally. Las excepciones pueden ser relanzadas, de esta manera es otra parte del programa que se encargar de atraparla. Muchas clases Java envan excepciones. Se pueden crear nuevas excepciones:
Verificadas : heredando de
java.lang.Exception
No verificadas: heredando de
java.lang.RuntimeException
145
Manejo de errores
Atrapar excepciones
146
147
Manejo de errores
Ejercicio 1
Se deben manejar los posibles errores usando excepciones. Los mensajes de error deben ser claros y referentes al tipo de error.
148
everis- CONFIDENCIAL DERECHOS RESERVADOS
Manejo de errores
Ejercicio 2 1/2
Manejo de errores
Ejercicio 2 2/2
150
1 Introduccin. 2 Lenguaje Java. 3 Arreglos. 4 Orientacin a Objetos. 5 Estructuras de datos. 6 Manejo de errores. 7 Acceso a base de datos (JDBC).
151
everis- CONFIDENCIAL DERECHOS RESERVADOS
JDBC
Java Data Base Connectivity
JDBC: API formada por conjunto de clases e interfaces en Java que permite ejecutar sentencias SQL sobre una base de datos. Ofrece un estndar de conexin a cualquier base de datos disponible en el mercado. Permite obtener los datos de manera cmoda y fcil en ambientes cliente-servidor a travs de Internet/Intranet. JDBC permite:
Establecer una conexin con una base de datos. Enviar sentencias SQL. Procesar los resultados de estas sentencias.
152
La clase que se encarga de cargar inicialmente todos los drivers JDBC es DriverManager. Una aplicacin utiliza DriverManager para obtener un objeto de tipo conexin Connection con una base de datos. Dicha conexin se establece con una URL del tipo: jdbc:subprotocolo//servidor:puerto/base de datos. Teniendo este Connection, es posible crear sentencias ejecutables (Statement). Estas sentencias pueden entregar uno o ms resultados que se devuelven como objetos de tipo ResultSet.
153
155
156
157
158
Para obtener resultados se requiere de otro mtodo: executeQuery El retorno es un objeto que permite iterar sobre las filas una a una.
159
Par leer los datos desde la fila actual del ResultSet existen varios mtodos:
getInt(colName); getString(colName); getFloat(colName); getBigDecimal(colName); getDate(colName);: java.sql.Date getTime(colName); : java.sql.Time getAsciiStream(colName); getBinaryStream(colName); getObject(colName);
160
everis- CONFIDENCIAL DERECHOS RESERVADOS
Un objeto ResultSet contiene informacin adicional a las filas: columnas, nombres de campos, nulls, tablas, etc.
161
Haga un programa que verifique el nombre de un usuario y su clave. La tabla usuarios tiene el siguiente formato:
Columna rut VARCHAR(16). Columna clave VARCHAR(16). Columna nombres VARCHAR(32). Columna apellidos VARCHAR(64).
Si las entradas son correctas debe saludar al usuario indicando su nombre completo. Si las entradas son incorrectas debe enviar un mensaje de error.
162
everis- CONFIDENCIAL DERECHOS RESERVADOS
Haga un programa que reciba el nombre de una tabla desde la consola y despliega su contenida indicando el nombre de cada columna, su tipo y todas sus filas.
163
Agregue la columna fnacimiento a la tabla usuarios del ejercicio 1 (debe ser del tipo Date). Haga un programa que permita insertar nuevos usuarios a la tabla usuarios indicada en el ejercicio 1. Considere la columna rut como llave primaria (PK). Haga las validaciones correspondientes. Finalmente permita la modificacin de usuarios existentes.
164
everis- CONFIDENCIAL DERECHOS RESERVADOS
165
166