Sunteți pe pagina 1din 166

Java

2006
1 Introducción.
2 Lenguaje Java.
3 Arreglos.
4 Orientación a Objetos (OO).
5 Estructuras de datos.
6 Manejo de errores.
7 Acceso a base de datos (JDBC).
© everis- CONFIDENCIAL
2 DERECHOS RESERVADOS
Introducción

© everis- CONFIDENCIAL
3 DERECHOS RESERVADOS
Introducción – Historia

• Desarrollado por SUN http://www.sun.com


• Inicialmente fue enfocado a electrodomésticos:
– Muchos artículos eléctricos con microprocesadores.
– Potencial de desarrollo de aplicaciones para
televisores, lavadoras, refrigeradores, etc..
– Distintas marcas y modelos de electrodomésticos.
– Se busca la portabilidad.
– Su nombre era firstPerson.
– No tuvo mucho éxito.

© everis- CONFIDENCIAL
4 DERECHOS RESERVADOS
Introducción – Características

• Características 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.

© everis- CONFIDENCIAL
5 DERECHOS RESERVADOS
Introducción – Definiciones

• Qué es la portabilidad?
– Se refiere a la capacidad de un programa de
ejecutarse en diferentes sistemas con mínimas
modificaciones.
• Qué es la seguridad?
– A seguridad informática, generalmente consiste en
asegurar que los recursos del sistema de información
(Material informático o programas) de una
organización 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.

© everis- CONFIDENCIAL
6 DERECHOS RESERVADOS
Introducción – Comparación

© everis- CONFIDENCIAL
7 DERECHOS RESERVADOS
Introducción – Por qué Java es portable?

• Gracias a la máquina virtual de Java (en


inglés Java Virtual Machine, JVM).
• JVM es un programa nativo ejecutable en
una plataforma específica.
• La JVM es capaz de interpretar y ejecutar
instrucciones expresadas en un código
binario especial (Java bytecode).
• El bytecode es generado por el
compilador del lenguaje Java.

© everis- CONFIDENCIAL
8 DERECHOS RESERVADOS
Introducción – Compilación tradicional

© everis- CONFIDENCIAL
9 DERECHOS RESERVADOS
Introducción – Compilación Java

© everis- CONFIDENCIAL
10 DERECHOS RESERVADOS
Introducción – Distintas máquinas virtuales

© everis- CONFIDENCIAL
11 DERECHOS RESERVADOS
Introducción – Distintas máquinas virtuales

© everis- CONFIDENCIAL
12 DERECHOS RESERVADOS
1 Introducción.
2 Lenguaje Java.
3 Arreglos.
4 Orientación a Objetos (OO).
5 Estructuras de datos.
6 Manejo de errores.
7 Acceso a base de datos (JDBC).
© everis- CONFIDENCIAL
13 DERECHOS RESERVADOS
Lenguaje Java – Java Development Kit (JDK)

• Es el entorno de desarrollo oficial de SUN:


– http://java.sun.com/j2se/downloads/index.html
– Disponible para múltiples plataformas:
• Win 98, Me, NT, 2000, XP, Linux, Solaris (SUN).
• Win 98, Me, NT, 2000, XP, Linux, AIX, OS/2,
OS/400, z/OS (IBM).
• Machintos (Apple).

© everis- CONFIDENCIAL
14 DERECHOS RESERVADOS
Lenguaje Java – Java Development Kit (JDK)

• La primera versión
era JDK 1.0.0, fue
reemplazada por JDK
1.1.0.
• El nombre ha sido
intercambiado entre
JDK y SDK (Software
Development Kit).

© everis- CONFIDENCIAL
15 DERECHOS RESERVADOS
Lenguaje Java – Instalación de JDK

• 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).

© everis- CONFIDENCIAL
16 DERECHOS RESERVADOS
Lenguaje Java – Componentes del JDK

• Compilador de Java. javac


• Intérprete de Java (JVM). java
• Intérprete de applets Java. appletviewer
• Depurador de Java. jdb
• Generador de documentación. javadoc
• Integrador de C y C++ (JNI). javah
• Desensamblador. javap

© everis- CONFIDENCIAL
17 DERECHOS RESERVADOS
Lenguaje Java – Java Runtime Environment
(JRE)

• Se refiere a la JVM.
• Es el software necesario para ejecutar el
bytecode.
• JDK es JRE más herramientas de
desarrollo (javac).

© everis- CONFIDENCIAL
18 DERECHOS RESERVADOS
Lenguaje Java – Primer programa

© everis- CONFIDENCIAL
19 DERECHOS RESERVADOS
Lenguaje Java – Primer programa

• El archivo debe
llamarse
HolaMundo.java
• Se compila con: javac
HolaMundo.java
• Se ejecuta con: java
HolaMundo
• El resultado es: Hola
Mundo!

© everis- CONFIDENCIAL
20 DERECHOS RESERVADOS
Lenguaje Java – Sintaxis

• Existen dos formas de comentar el código:


– // Comentario de una línea
– /* Comentario
De más de una línea */
• Existe una sintaxis de comentarios para
generar documentación (javadoc).

© everis- CONFIDENCIAL
21 DERECHOS RESERVADOS
Lenguaje Java – Sintaxis

• Una sentencia es una


línea de código
terminada con punto
y coma “;”.
• Un bloque es un
conjunto de
sentencias agrupadas
entre llave “{}”.
• Los bloques de
código pueden estar
anidados.
© everis- CONFIDENCIAL
22 DERECHOS RESERVADOS
Lenguaje Java – Identificadores

• Son las palabras que se les pueden dar a clases


métodos y variables.
• Se debe tener en cuenta lo siguientes:
– Debe empezar con una letra, subrayado (_) o dólar
($).
– Después del primer carácter pueden usar números.
– Distingue entre las mayúsculas y las minúsculas.
– No pueden coincidir con las palabras claves
(keyword).

© everis- CONFIDENCIAL
23 DERECHOS RESERVADOS
Lenguaje Java – Palabras claves

© everis- CONFIDENCIAL
24 DERECHOS RESERVADOS
Lenguaje Java – Variables

• 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.

© everis- CONFIDENCIAL
25 DERECHOS RESERVADOS
Lenguaje Java – Declaración de variables

• Es la sentencia
mediante la cual se le
asigna un tipo y un
identificador.
• Adicionalmente se le
puede asignar un
valor inicial.

© everis- CONFIDENCIAL
26 DERECHOS RESERVADOS
Lenguaje Java – Tipo de datos

• Existen dos tipo de


datos genéricos:
– Tipos primitivos
(nativos, atómicos).
– Tipos complejos.

© everis- CONFIDENCIAL
27 DERECHOS RESERVADOS
Lenguaje Java – Tipo de datos primitivos

Tipo Lo que almacena Rango


byte 1 byte (8 bits) de -128 a 127
short 2 byte (16 bits) de -32768 a 32767
int 4 byte (32 bits) de -2147483648 a 2147483647
long 8 byte (64 bits) de -2-63 a 263 - 1
float 4 byte (32 bits) 6 dígitos significativos (10-46 , 1038)
double 8 byte (64 bits) 15 dígitos significativos (10-324 , 10308)
char 2 bytes (16 bits) Comprende el código ASCII
boolean 1 byte (8 bits) false y true

© everis- CONFIDENCIAL
28 DERECHOS RESERVADOS
Lenguaje Java – Tipo de datos complejos

• Son referencia a un objeto (instancia).


• Su valor por omisión es null.
• En la variable compleja se guarda la referencia
(puntero) a la zona de memoria donde está
guardado el objeto.

© everis- CONFIDENCIAL
29 DERECHOS RESERVADOS
Lenguaje Java – Tipo de datos complejos

Tipo nativo Equivalente complejo


byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

© everis- CONFIDENCIAL
30 DERECHOS RESERVADOS
Lenguaje Java – Ámbito de las variables

• Es la zona de código donde se puede


referenciar dicha variable con su identificador.
• El lugar de definición de la variable establece su
ámbito.
• Los ámbitos pueden ser:
– Atributos (o variable miembro).
– Parámetros de métodos.
– Variables locales.
– Variables de bloques.

© everis- CONFIDENCIAL
31 DERECHOS RESERVADOS
Lenguaje Java – Ámbito de las variables

© everis- CONFIDENCIAL
32 DERECHOS RESERVADOS
Lenguaje Java – Ámbito de las variables

© everis- CONFIDENCIAL
33 DERECHOS RESERVADOS
Lenguaje Java – Conversión entre tipos
(Casting)

• Existen conversiones implícitas y explícitas.


• Las conversiones implícitas se resuelven en
tiempo de compilación.
• Las conversiones explícitas se resuelven en
tiempo de ejecución.

© everis- CONFIDENCIAL
34 DERECHOS RESERVADOS
Lenguaje Java – Conversión entre tipos
(Casting)

• Identificar que sentencias son incorrectas.

© everis- CONFIDENCIAL
35 DERECHOS RESERVADOS
Lenguaje Java – Conversión entre tipos
(Casting)

© everis- CONFIDENCIAL
36 DERECHOS RESERVADOS
Lenguaje Java – Operadores

• Operadores unarios.
• Operadores binarios.
• Operadores terniarios.

© everis- CONFIDENCIAL
37 DERECHOS RESERVADOS
Lenguaje Java – Operadores

Descripción Símbolo Expresión Resultado

Multiplicación * 2*5 10

Resto de una división entera % 5%2 1

Suma + 13+1 14

Resta - 2-4 -2

Decremento -- 2-- 1

Menos unario - -(2+4) -6

División / 20/2 10

© everis- CONFIDENCIAL
38 DERECHOS RESERVADOS
Lenguaje Java – Control de flujo

• Sin el control de flujo el código 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.
– Gestión de excepciones: try-catch-finally y
throw.
– De ruptura: break, continue, label: y return.

© everis- CONFIDENCIAL
39 DERECHOS RESERVADOS
Lenguaje Java – while y do-while

• La sentencia while se
utiliza para ejecutar
continuamente un código
mientras que la condición
del while sea true.
• La sentencia do-while es
parecida al while, pero
asegura que el bloque de
código sea ejecutado al
menos una vez.

© everis- CONFIDENCIAL
40 DERECHOS RESERVADOS
Lenguaje Java – for

• La sentencia for facilita ejecutar un bloque de código un


número determinado de veces.
• Consiste de una inicialización, una condición y un
incremento.
• Las variables de inicializaciones son locales al for.
• El incremento es opcional.

© everis- CONFIDENCIAL
41 DERECHOS RESERVADOS
Lenguaje Java – if-then-else

• Esta sentencia
permite elegir que
bloque de código
ejecutar entre dos
posibilidades.

© everis- CONFIDENCIAL
42 DERECHOS RESERVADOS
Lenguaje Java – switch-case

• Esta sentencia evalúa


una expresión del tipo
int o que pueda ser
convertida a int en
forma implícita.
• Existe una opción que
se ejecuta si ninguna
de las anteriores
coincide (default).

© everis- CONFIDENCIAL
43 DERECHOS RESERVADOS
Lenguaje Java – Ruptura

• Break: Sirve para detener la ejecución de


tanto los bucles como la sentencia switch.
Por lo tanto, continua con la línea
siguientes al bucle o el switch.
• Continue: Sirve para detener la ejecución
de un bucle y vuelve a evaluar su
condición.
• Return: Sirve para finalizar la ejecución
de un método.

© everis- CONFIDENCIAL
44 DERECHOS RESERVADOS
Métodos

• El uso de métodos tiene diversas ventajas:


– Agrupa código.
– Pueden ser llamados muchas veces.
• Facilita la lectura del código.
• Los métodos en Java pueden retornar un tipo de datos o
vacío (void).
• Los métodos pueden recibir parámetros.
• Los métodos se invocan usando su nombre y llenando
sus parámetros.
• Un método puede llamar a otro método.
• Los métodos se defines dentro del cuerpo de la clase.

© everis- CONFIDENCIAL
45 DERECHOS RESERVADOS
Métodos

© everis- CONFIDENCIAL
46 DERECHOS RESERVADOS
Paquetes (Package)

• Las clases se organizan


en paquetes.
• Para usar una clase de
otro paquete, se debe
importar la clase.
• Una excepción son las
clases del paquete
java.lang.
• El programador puede
crear sus propios
paquetes con el fin de
organizar su código.

© everis- CONFIDENCIAL
47 DERECHOS RESERVADOS
Normas de codificación

• El nombre de las clases comienza con mayúscula.


• El nombre de los métodos comienza con minúscula.
• El nombre de las variables comienza con minúscula.
• Si el nombre de la clase, el método o la variable consiste
de varias palabras, entonces las primeras letras de las
palabras siguientes deben comenzar con mayúscula.
• Ejemplos:
– int contadorAuxiliarTemporal = 0;
– public static void metodoQueNoRetornaNada(){}
– public class ClasePrincipal{}

© everis- CONFIDENCIAL
48 DERECHOS RESERVADOS
1 Introducción.
2 Lenguaje Java.
3 Arreglos.
4 Orientación a Objetos (OO).
5 Estructuras de datos.
6 Manejo de errores.
7 Acceso a base de datos (JDBC).
© everis- CONFIDENCIAL
49 DERECHOS RESERVADOS
Arreglos

• Son un conjunto o agrupación de variables del


mismo tipo cuyo acceso se realiza por índices.
• Los arreglos (arrays) de dos o más dimensiones
se denominan matrices que pueden tener tantas
dimensiones como se desee.
• Los arreglos en Java empiezan del subíndice
cero.
• Para acceder a una celda del arreglo se utiliza
su posición.
• Es posible conocer el largo de un arreglo.

© everis- CONFIDENCIAL
50 DERECHOS RESERVADOS
Arreglos

© everis- CONFIDENCIAL
51 DERECHOS RESERVADOS
Arreglos – Ejercicios

• Inicializar un arreglos con los primero 100


números (1-100).
• Inicializar un arreglo con los primeros 100
números pares ( 0,2,4,6,..) e imprimir los
primeros 10 números en el mismo ciclo.

© everis- CONFIDENCIAL
52 DERECHOS RESERVADOS
Arreglos – Solución

© everis- CONFIDENCIAL
53 DERECHOS RESERVADOS
Arreglos – Ejercicios

• Usar arreglos para crear la estructura piramidal.

© everis- CONFIDENCIAL
54 DERECHOS RESERVADOS
Arreglos – Solución

© everis- CONFIDENCIAL
55 DERECHOS RESERVADOS
1 Introducción.
2 Lenguaje Java.
3 Arreglos.
4 Orientación a Objetos.
5 Estructuras de datos.
6 Manejo de errores.
7 Acceso a base de datos (JDBC).
© everis- CONFIDENCIAL
56 DERECHOS RESERVADOS
Introducción e historia

• La Programación Orientada a Objetos (POO u


OOP según siglas en inglés) es un paradigma
de programación que define los programas en
términos de "clases de objetos“.
• Objetos que son entidades que combinan
estado (es decir, datos), comportamiento (esto
es, procedimientos o métodos) 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.

© everis- CONFIDENCIAL
57 DERECHOS RESERVADOS
Introducción e historia

• Esto difiere de los lenguajes procedurales


tradicionales, en los que los datos y los
procedimientos están separados y sin
relación.
• Estos métodos están pensados para
hacer los programas y módulos más
fáciles de escribir, mantener y reutilizar.

© everis- CONFIDENCIAL
58 DERECHOS RESERVADOS
Introducción e historia

• La POO anima al programador a pensar en los


programas principalmente en términos de tipos
de datos, y en segundo lugar en las operaciones
("métodos") específicas a esos tipos de datos.
• Los lenguajes procedurales animan al
programador a pensar sobre todo en términos
de procedimientos, y en segundo lugar en los
datos que esos procedimientos manejan.

© everis- CONFIDENCIAL
59 DERECHOS RESERVADOS
Introducción e historia

• Los programadores que emplean


lenguajes procedurales, escriben
funciones y después les pasan datos.
• Los programadores que emplean
lenguajes orientados a objetos definen
objetos con datos y métodos, y después
envían mensajes a los objetos diciendo
que realicen esos métodos en sí mismos.

© everis- CONFIDENCIAL
60 DERECHOS RESERVADOS
Introducción e historia

• Tiene su origen con el lenguaje Simula67, que


se usaba para simular naves y explosiones.
• Más 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 aparición de C++.
• Otros lenguaje incorporaron la OO, tal como
Ada, BASIC, Lisp y Pascal.

© everis- CONFIDENCIAL
61 DERECHOS RESERVADOS
Introducción e historia

• ActionScript • Lexico (en castellano)


• Ada 95 • Objective-C
• C++ • Ocaml
• C# • PHP 5
• Clarion • Python
• Delphi • Ruby
• Eiffel • Smalltalk
• Java • Visual Basic

© everis- CONFIDENCIAL
62 DERECHOS RESERVADOS
Introducción e historia

Simula67

Lexico

Eiffel C++

© everis- CONFIDENCIAL
63 DERECHOS RESERVADOS
Programación Orientada a Objetos
Programación procedural

• Modelo mental anómalo.


• Nuestra imagen del mundo se apoya en los seres, a los
que asignamos nombres sustantivos, mientras la
programación clásica se basa en el comportamiento,
representado usualmente por verbos.
• Es difícil modificar y extender los programas, pues suele
haber datos compartidos por varios subprogramas, que
introducen interacciones ocultas entre ellos.
• Es difícil mantener los programas.
• Es difícil reutilizar los programas.

© everis- CONFIDENCIAL
64 DERECHOS RESERVADOS
Programación Orientada a Objetos

• Objeto: entidad provista de un conjunto de


propiedades o atributos (datos) y de
comportamiento o funcionalidad ("métodos").
• 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 instanciación es la lectura de estas
definiciones y la creación de un objeto a partir
de ellas.

© everis- CONFIDENCIAL
65 DERECHOS RESERVADOS
Programación Orientada a Objetos

• Método: algoritmo asociado a un objeto (o a


una clase de objetos), cuya ejecución se
desencadena tras la recepción de un "mensaje".
• Desde el punto de vista del comportamiento, es
lo que el objeto puede hacer.
• Un método puede producir un cambio en las
propiedades del objeto, y/o la generación de un
"evento" con un nuevo mensaje para otro objeto
del sistema.

© everis- CONFIDENCIAL
66 DERECHOS RESERVADOS
Programación Orientada a Objetos

• Evento: un suceso en el sistema (tal como una


interacción del usuario con la máquina, o un
mensaje enviado por un objeto).
• El sistema maneja el evento enviando el
mensaje adecuado al objeto pertinente.
• Mensaje: una comunicación dirigida a un objeto,
que le ordena que ejecute uno de sus métodos
con ciertos parámetros asociados al evento que
lo generó.

© everis- CONFIDENCIAL
67 DERECHOS RESERVADOS
Programación Orientada a Objetos

• 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 ejecución de algún método.
• Estado interno: es una propiedad invisible de
los objetos, que puede ser únicamente accedida
y alterada por un método del objeto, y que se
utiliza para indicar distintas situaciones posibles
para el objeto (o clase de objetos).

© everis- CONFIDENCIAL
68 DERECHOS RESERVADOS
Programación Orientada a Objetos
La forma de pensar

© everis- CONFIDENCIAL
69 DERECHOS RESERVADOS
Programación Orientada a Objetos
La forma de pensar

© everis- CONFIDENCIAL
70 DERECHOS RESERVADOS
Programación Orientada a Objetos
La forma de pensar

© everis- CONFIDENCIAL
71 DERECHOS RESERVADOS
Programación Orientada a Objetos
La forma de pensar

© everis- CONFIDENCIAL
72 DERECHOS RESERVADOS
Programación Orientada a Objetos
La forma de pensar

© everis- CONFIDENCIAL
73 DERECHOS RESERVADOS
Programación Orientada a Objetos
Ejemplo

© everis- CONFIDENCIAL
74 DERECHOS RESERVADOS
Programación Orientada a Objetos
Ejemplo

© everis- CONFIDENCIAL
75 DERECHOS RESERVADOS
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.

© everis- CONFIDENCIAL
76 DERECHOS RESERVADOS
Objetos y clases

• Una función especial son los


constructores, que se ejecutan
al usar el operador “new”
inicializando la clase.
• Puede haber más de un
constructor.
• El constructor no retorna nada.
• Debe tener el nombre de la
clase.
• Existe uno por omisión (sin
parámetros).
• El constructor NO es un
método.

© everis- CONFIDENCIAL
77 DERECHOS RESERVADOS
Encapsulamiento u Ocultamiento

• Cada objeto está aislado del exterior.


• El aislamiento protege a los datos
asociados a un objeto contra su
modificación por quien no tenga derecho a
acceder a ellos.
• Esto elimina efectos secundarios e
interacciones no deseadas.

© everis- CONFIDENCIAL
78 DERECHOS RESERVADOS
Encapsulamiento u Ocultamiento

• El encapsulamiento de variables y métodos en


un componente de software provee dos
principales beneficios a los desarrolladores:
– Modularidad, esto es, el código fuente de un objeto
puede ser escrito, así como darle mantenimiento,
independientemente del código fuente de otros
objetos.
– Ocultamiento de la información, es decir, un objeto
tiene una "interfaz publica" que otros objetos pueden
utilizar para comunicarse con él.

© everis- CONFIDENCIAL
79 DERECHOS RESERVADOS
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 más generales e
ir derivando hacia las más particulares,
creando categorías, de la misma forma en
que piensa el ser humano.
• La herencia nos permite una forma de
armar una estructura con nuestras clases.

© everis- CONFIDENCIAL
80 DERECHOS RESERVADOS
Herencia
Ejemplo

• Queremos clasificar los animales (Perros,


Gatos y Salmones).
• Escribir el código desde cero para cada
uno de ellos sería tedioso y poco intuitivo.
• Los perros y gatos son mamíferos.
• Los salmones son peces.
• Y todos son animales.
• Sería lógico elaborar una clase que tenga
todas sus características en común.
© everis- CONFIDENCIAL
81 DERECHOS RESERVADOS
Herencia
Ejemplo

© everis- CONFIDENCIAL
82 DERECHOS RESERVADOS
Herencia
Ejemplo

© everis- CONFIDENCIAL
83 DERECHOS RESERVADOS
Herencia
Resumen

• Se basa en la existencia de relaciones de


generalización/especialización entre clases.
• Las clases se disponen en una jerarquía, donde
una clase hereda los atributos y métodos de las
clases superiores en la jerarquía.
• Una clase puede tener sus propios atributos y
métodos adicionales a lo heredado.
• Una clase puede modificar los atributos y
métodos heredados.
• La implementación de la herencia se realiza
mediante la clave: extends.

© everis- CONFIDENCIAL
84 DERECHOS RESERVADOS
Herencia
Resumen

• Las clases por encima en la jerarquía a una


clase dada, se denominan superclases.
• Las clases por debajo en la jerarquía a una
clase dada, se denominan subclases.
• Una clase puede ser superclase y subclase al
mismo tiempo.
• Tipos de herencia:
– Simple.
– Múltiple (no soportada en Java).

© everis- CONFIDENCIAL
85 DERECHOS RESERVADOS
Herencia
Ejercicio

• Haga el objeto Salmón.


• El salmón puede ser de agua dulce o de
agua salada.
• Agregue la velocidad máxima.

© everis- CONFIDENCIAL
86 DERECHOS RESERVADOS
Polimorfismo

• Polimorfismo en herencia.
• Sobre carga de constructores.
• Sobre carga de métodos.
• Sobre escritura de métodos.

© everis- CONFIDENCIAL
87 DERECHOS RESERVADOS
Polimorfismo

© everis- CONFIDENCIAL
88 DERECHOS RESERVADOS
Polimorfismo

© everis- CONFIDENCIAL
89 DERECHOS RESERVADOS
Clases abstractas

• Una clase abstracta no tiene definido el código


de todos sus métodos.
• 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 métodos abstractos.
• Una clase abstracta no puede ser instanciada.

© everis- CONFIDENCIAL
90 DERECHOS RESERVADOS
Clases abstractas
Ejemplo

© everis- CONFIDENCIAL
91 DERECHOS RESERVADOS
Clases abstractas
Ejemplo

© everis- CONFIDENCIAL
92 DERECHOS RESERVADOS
Clases abstractas
Ejemplo

© everis- CONFIDENCIAL
93 DERECHOS RESERVADOS
Interfaces

• Las interfaces en Java nos solucionan en parte


la no existencia de la herencia múltiple.
• Las interfaces son un tipo de clase especial que
no implementa ninguno de sus métodos.
• Todos sus métodos son abstractos. Por lo tanto
no se pueden instanciar.
• La declaración de una interface Java se realiza
mediante la clave: interface seguido de su
nombre.

© everis- CONFIDENCIAL
94 DERECHOS RESERVADOS
Interfaces

• El objetivo de un método abstracto es forzar una interfaz


(API) pero no una implementación.
• De las interfaces no se hereda, se implementa. Y se
realiza mediante la clave: implements.
• Una clase puede implementar múltiples interfaces.
• Una clase puede heredar de otra clase y a la vez
implementar múltiples interfaces.
• Una interface puede también definir constantes.
• Si una clase que implementa una interface, no
implementa todos sus métodos, deberá ser definida
como abstracta.

© everis- CONFIDENCIAL
95 DERECHOS RESERVADOS
Interfaces
Ejemplo

© everis- CONFIDENCIAL
96 DERECHOS RESERVADOS
Interfaces vs. Clase abstracta

• Una interface no puede implementar ningún


método.
• Una clase puede implementar n interfaces pero
solo heredar de una clase.
• Una interface no forma parte de la jerarquía de
clases. Clases dispares pueden implementar la
mismo interface.

© everis- CONFIDENCIAL
97 DERECHOS RESERVADOS
Clases, subclases, abstractas
e interfaces

• Haremos una clase que no herede de nadie cuando la clase


no pase la prueba de Es-Un.
• Haremos una subclase cuando necesitemos hacer una
especialización de la superclase mediante sobre escritura o
añadiendo nuevos métodos.
• Haremos una clase abstracta cuando queramos definir un
grupo genérico de clases y además tengamos algunos
métodos implementados que reutilizar. También cuando no
queramos que nadie instancie dicha clase.
• Haremos una interface cuando queramos definir un grupo
genérico de clases y no tengamos métodos implementados
que reutilizar. O cuando nos veamos forzados por la falta de
herencia múltiple en Java.

© everis- CONFIDENCIAL
98 DERECHOS RESERVADOS
Cuadro comparativo

• Lenguaje OO debe tener como mínimo:


a)Encapsulación.
b)Herencia.
c) Polimorfismo.
• Adicionalmente, en un lenguaje OO puede
suceder que:
d)Todos los tipos de datos predefinidos en el lenguaje
sean objetos.
e)Todos los tipos de datos que puedan ser definidos
por los programadores sean objetos.
f) Todas las posibles operaciones se realicen enviando
mensajes entre objetos.

© everis- CONFIDENCIAL
99 DERECHOS RESERVADOS
Cuadro comparativo

Características Fortran 77 C++ C# Java Smalltalk Eiffel

a) NO SI SI SI SI SI

b) NO SI SI SI SI SI

c) NO SI SI SI SI SI

d) NO NO NO NO SI SI

e) NO NO NO SI SI SI

f) NO NO NO NO SI SI

© everis- CONFIDENCIAL
100 DERECHOS RESERVADOS
Modificadores

• final:
– En un atributo: no modificable
– En un método: no se puede redefinir en un heredero
• static: pertenece a la clase (no a una instancia)
• synchronized: sincronizado (solo métodos)
• 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”, sólo puede ser
vista por otras clases en el mismo paquete.

© everis- CONFIDENCIAL
101 DERECHOS RESERVADOS
Frases finales

• Solamente hay dos cosas equivocadas en C++: el concepto


inicial y la implementación. (Bertrand Meyer, creador de
Eiffel).
• La programación orientada a objetos es, en cierto sentido,
sólo un truco de programación que usa indirección. Es un
truco que los buenos programadores llevan años usando.
(Bjarne Stroustrup, creador de C++).
• Convertir C en un lenguaje orientado a objetos es como tratar
de convertir un perro en un pulpo clavándole más 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).

© everis- CONFIDENCIAL
102 DERECHOS RESERVADOS
Frases finales

• Ah, Java. Todo el rendimiento de Smalltalk combinado


con la claridad sintáctica de C++. (Anónimo).
• 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 código al estilo Fortran
o Cobol en cualquier lenguaje de programación que
utilice. (Anónimo. Oído 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”. (Anónimo. bash.org)

© everis- CONFIDENCIAL
103 DERECHOS RESERVADOS
Frases finales

“Los objetos en el sentido de la orientación a


objetos han estado presentes entre nosotros
desde que se desarrolló la conciencia en la
especie humana, pero se ha tardado miles de
años en aprovecharlos como técnica. ¿Cuánto
tiempo más se necesitará para extraer el
máximo rendimiento de la OO? [...] Quizá
necesitemos un cambio conceptual antes que
una sucesión frenética de cambios técnicos.”
Howard Humphrey (2002)

© everis- CONFIDENCIAL
104 DERECHOS RESERVADOS
Orientación a objetos (OO)
Ejercicios 1 parte 1/3

• Desarrollar una clase llamada Punto que:


– Tenga dos atributos private de tipo double.
– Tenga un constructor con dos parámetros de tipo
double que inicialice los dos atributos.
– Tenga un constructor por omisión (sin parámetros)
que inicialice los dos atributos al valor que se quiera.
– Tenga un getter para cada uno de los atributos.
– Tenga un método calcularDistanciaDesde que recibe
un parámetro de tipo Punto y que devuelve un
double.

© everis- CONFIDENCIAL
105 DERECHOS RESERVADOS
Orientación a objetos (OO)
Ejercicios 1 parte 2/3

• Desarrollar una clase llamada Circulo que:


– Tenga dos atributos private de tipo Punto y double.
– Tenga un constructor con dos parámetros de tipo Punto y
double que inicialice los dos atributos.
– Tenga un constructor por omisión (sin parámetros) que inicialice
los dos atributos al valor que se quiera.
– Tenga un constructor con tres parámetros de tipo double que
inicialice los atributos.
– Tenga un getter para cada uno de los atributos.
– Tenga un método calcularDistanciaDesde que recibe un
parámetro de tipo Punto y que devuelve un double.
– Tenga un método calcularArea que no recibe ningún parámetro
y devuelve un double.
– Tenga un método calcularPerimetro que no recibe ningún
parámetro y
devuelve un double.

© everis- CONFIDENCIAL
106 DERECHOS RESERVADOS
Orientación a objetos (OO)
Ejercicios 1 parte 3/3

• Desarrollar una clase llamada Triangulo que:


– Tenga tres atributos private de tipo Punto.
– Tenga un constructor con tres parámetros de tipo Punto que
inicialice los tres atributos.
– Tenga un constructor por omisión (sin parámetros) que inicialice
los tres atributos al valor que se quiera.
– Tenga un constructor con seis parámetros de tipo double que
inicialice los tres atributos.
– Tenga un getter para cada uno de los atributos.
– Tenga un método calcularDistanciaDesde que recibe un
parámetro de tipo Punto y que devuelve un double.
– Tenga un método calcularArea que no recibe ningún parámetro
y devuelve un double.

© everis- CONFIDENCIAL
107 DERECHOS RESERVADOS
Orientación a objetos (OO)
Ejercicios 2 parte 1/4

• Desarrollar una clase llamada Asignatura


que:
– Tenga dos atributos private de tipo int (el
identificador) y de tipo double (la calificación).
– Tenga un constructor con un parámetro de
tipo int.
– Tenga un getter para cada uno de los
atributos.
– Tenga un setter para la calificación.

© everis- CONFIDENCIAL
108 DERECHOS RESERVADOS
Orientación a objetos (OO)
Ejercicios 2 parte 2/4

• Desarrollar una clase llamada Alumno que:


– Tenga tres atributos private de tipo Asignatura.
– Tenga un constructor con tres parámetros de tipo
Asignatura que inicialice los tres atributos.
– Tenga un constructor con tres parámetros de tipo int
que inicialice los tres atributos.
– Tenga un getter para cada uno de los atributos.

© everis- CONFIDENCIAL
109 DERECHOS RESERVADOS
Orientación a objetos (OO)
Ejercicios 2 parte 3/4

• Desarrollar una clase llamada Profesor que:


– Tenga un método ponerNotas que recibe un
parámetro de tipo Alumno y que no devuelve nada.
Pondrá una calificación aleatoria a cada una de las
asignaturas del alumno.
– Tenga un método calcularMedia que recibe un
parámetro de tipo Alumno y devuelve un double.
• Nota: Para calcular un número aleatorio
usaremos Math.random() que devuelve
un double entre 0.0 y 1.0.

© everis- CONFIDENCIAL
110 DERECHOS RESERVADOS
Orientación a objetos (OO)
Ejercicios 2 parte 4/4

• Desarrollar una clase llamada


AplicacionColegio que en su método main:
– Cree e inicialice tres Asignaturas.
– Cree un Alumno con las tres Asignaturas.
– Cree un Profesor que le ponga calificaciones
al Alumno y muestre por pantalla la media del
Alumno.

© everis- CONFIDENCIAL
111 DERECHOS RESERVADOS
Orientación a objetos (OO)
Ejercicios 3 parte 1/4

• Desarrollar una clase llamada Motor que:


– Tenga dos atributos private de tipo int (litros
de aceite) y de tipo int (CV).
– Tenga un constructor con un parámetro de
tipo int para los CV. Los litros de aceite por
omisión serán 0.
– Tenga un getter para cada uno de los
atributos.
– Tenga un setter para los litros.

© everis- CONFIDENCIAL
112 DERECHOS RESERVADOS
Orientación a objetos (OO)
Ejercicios 3 parte 2/4

• Desarrollar una clase llamada Auto que:


– Tenga un atributo private de tipo Motor, un atributo de
tipo String (marca), otro de tipo String (modelo) y otro
de tipo double con el precio acumulado con las
averías.
– Tenga un constructor con tres parámetros de tipo
String que inicialice la marca y el modelo y el motor.
– Tenga un getter para cada uno de los atributos.
– Un método acumularAveria que incrementará el
importe gastado en averías.

© everis- CONFIDENCIAL
113 DERECHOS RESERVADOS
Orientación a objetos (OO)
Ejercicios 3 parte 3/4

• Desarrollar una clase llamada Taller que:


– Tendrá tres atributos, un auto, un String con la avería
asociada y el número de autos que ha ido atendiendo.
– El taller solo podrá atender a un auto en cada momento.
Controlar esta condición.
– Tenga un método aceptarAuto que recibe un parámetro de
tipo Auto y la avería asociada. El taller solo podrá atender
a un auto en cada momento. Si ya está atendiendo uno,
que devuelva un false.
– Tenga un método devolverAuto que dejará al taller en
estado de aceptar un nuevo auto.

© everis- CONFIDENCIAL
114 DERECHOS RESERVADOS
Orientación a objetos (OO)
Ejercicios 3 parte 4/4

• Desarrollar una clase llamada AplicacionTaller que en su


método main:
– Cree un taller.
– Cree 2 autos.
– El taller irá aceptando los autos y devolviéndolos,
acumulando un importe aleatorio (Math.random()) de la
avería tratada.
– Si la avería del auto es “aceite” incrementar en 10 los litros
de aceite.
– Los autos entrarán al menos 2 veces en el taller.
– Mostrar la información de los autos al final del main.

© everis- CONFIDENCIAL
115 DERECHOS RESERVADOS
1 Introducción.
2 Lenguaje Java.
3 Arreglos.
4 Orientación a Objetos.
5 Estructuras de datos.
6 Manejo de errores.
7 Acceso a base de datos (JDBC).
© everis- CONFIDENCIAL
116 DERECHOS RESERVADOS
Estructuras de datos

• Es una forma de organizar un conjunto de


datos con el objetivo de facilitar la
manipulación de estos datos como un
todo o individualmente.

© everis- CONFIDENCIAL
117 DERECHOS RESERVADOS
Estructuras de datos
Clases básicas (String)

• java.lang.
– String.
– StringBuffer

© everis- CONFIDENCIAL
118 DERECHOS RESERVADOS
Estructuras de datos
Clases básicas (String)

• java.util.StringTokenizer

© everis- CONFIDENCIAL
119 DERECHOS RESERVADOS
Estructuras de datos
Clases básicas (String) – Ejercicios

• Recibir una frase como argumento de la


aplicación y ejecutar las siguientes
operaciones:
– Imprimir las palabras de la frase, una en cada
línea.
– Imprimir las palabras de la frase en mitad
mayúscula y mitad minúscula.
– Imprimir la frase escrita al revés.

© everis- CONFIDENCIAL
120 DERECHOS RESERVADOS
Estructuras de datos
Colecciones

• Una colección es simplemente un objeto que


agrupa varios elementos en uno solo.
• Se utilizan para guardar y manipular datos así
como transmitir información entre métodos.
• En Java tenemos un framework de colecciones:
– Interfaces: representaciones abstractas de las
colecciones que permiten usarlas sin conocer sus
detalles.
– Implementaciones: colecciones concretas.
– Algoritmos: métodos que permiten realizar
operaciones como búsquedas, ordenaciones, etc.

© everis- CONFIDENCIAL
121 DERECHOS RESERVADOS
Estructuras de datos
Colecciones

© everis- CONFIDENCIAL
122 DERECHOS RESERVADOS
Estructuras de datos
Colecciones

• Todas las colecciones se encuentran en el


paquete java.util.*;
• java.util.Collection es la raíz de la jerarquía de
las
colecciones.
• Existirán especializaciones que permitan
elementos duplicados o no, que permitan
ordenar los elementos o no, etc.
• Esta clase contiene la definición de todos los
métodos genéricos que deben implementar las
colecciones.

© everis- CONFIDENCIAL
123 DERECHOS RESERVADOS
Estructuras de datos
Colecciones (Iterator)

• El interfaz Iterator representa un componente


que permite iterar sobre los elementos de una
colección.
• Todas las colecciones ofrecen una
implementación de Iterator por medio del
método: public Iterator iterator(); Sus métodos
son:
– boolean hasNext(); // Si tiene mas elementos.
– Object next(); // Devuelve el primer elemento y se
queda apuntando al siguiente.

© everis- CONFIDENCIAL
124 DERECHOS RESERVADOS
Estructuras de datos
Colecciones (Set)

• El interfaz Set hereda del interfaz Collection.


Pero no añade la definición de ningún método
nuevo.
• Representa colecciones que no permiten tener
elementos duplicados.
• Para saber si un elemento está duplicado, hace
uso del método:
– public boolean equals(Object o);
• Existen distintas implementaciones de este
interfaz.

© everis- CONFIDENCIAL
125 DERECHOS RESERVADOS
Estructuras de datos
Colecciones (Set)

© everis- CONFIDENCIAL
126 DERECHOS RESERVADOS
Estructuras de datos
Colecciones (Set)

© everis- CONFIDENCIAL
127 DERECHOS RESERVADOS
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 posición.
– Insertar un elemento en una posición concreta.

© everis- CONFIDENCIAL
128 DERECHOS RESERVADOS
Estructuras de datos
Colecciones (List)

© everis- CONFIDENCIAL
129 DERECHOS RESERVADOS
Estructuras de datos
Colecciones (List)

© everis- CONFIDENCIAL
130 DERECHOS RESERVADOS
Estructuras de datos
Colecciones (List)

© everis- CONFIDENCIAL
131 DERECHOS RESERVADOS
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.

© everis- CONFIDENCIAL
132 DERECHOS RESERVADOS
Estructuras de datos
Colecciones

© everis- CONFIDENCIAL
133 DERECHOS RESERVADOS
Estructuras de datos
Colecciones (Map)

• Los métodos de esta interfaz son:


– Object put(Object key, Object value); // Inserta una
pareja.
– Object get(Object key); // Accede al valor de una
clave.
– Object remove(Object key); // Elimina una pareja.
– boolean containsKey(Object key); // Comprueba la
existencia de una clave.
– boolean containsValue(Object value); // Comprueba
la existencia de un valor.

© everis- CONFIDENCIAL
134 DERECHOS RESERVADOS
Estructuras de datos
Colecciones

© everis- CONFIDENCIAL
135 DERECHOS RESERVADOS
Estructuras de datos
Colecciones

© everis- CONFIDENCIAL
136 DERECHOS RESERVADOS
Estructuras de datos
Ejercicio 1/2

• Haga una clase Cliente, que tenga lo


siguiente:
– Un atributo String nombres.
– Un atributo String apellidos.
– Un atributo Date fnacimiento.
– Un atributo rut.
– Un método getEdad.
– Un constructor por omisión.
– Los getters y setters correspondientes.

© everis- CONFIDENCIAL
137 DERECHOS RESERVADOS
Estructuras de datos
Ejercicio 2/2

• Haga una clase AplicacionCliente que


permita ingresar clientes aceptando
repetición de rut y que imprima la
información de todos los clientes al salir
(use Collection).
• Haga una clase AplicacionCliente2 que
permita ingresar clientes sin repetición de
rut y que imprima la información de todos
los clientes al salir (use Map).

© everis- CONFIDENCIAL
138 DERECHOS RESERVADOS
1 Introducción.
2 Lenguaje Java.
3 Arreglos.
4 Orientación a Objetos.
5 Estructuras de datos.
6 Manejo de errores.
7 Acceso a base de datos (JDBC).
© everis- CONFIDENCIAL
139 DERECHOS RESERVADOS
Manejo de errores

• Una excepción es una condición anormal que se


produce en una porción de código durante su ejecución.
• La existencia de las excepciones permite:
– Encapsular en clases los errores.
– Separar el flujo de ejecución normal del tratamiento de errores.
• Las excepciones se pueden: o tratar o relanzar para que
sean tratadas por otro método del stack.
• Pueden ser:
– Verificadas : Requieren un control explícito (en tiempo de
compilación).
– No verificadas: No requieren un control explicito y pueden ocurrir
en cualquier momento (en tiempo de ejecución).

© everis- CONFIDENCIAL
140 DERECHOS RESERVADOS
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.

© everis- CONFIDENCIAL
141 DERECHOS RESERVADOS
Manejo de errores

• Se manejan mediante bloques try & catch:


try
{
// Código susceptible de lanzar una excepción.
}
catch(tipo-excepción ex)
{
// Código de tratamiento de la excepción.
}
catch(tipo-excepción ex)
{
// Código de tratamiento de la excepción.
}
finally
{
// Código que se ejecuta siempre.
}

© everis- CONFIDENCIAL
142 DERECHOS RESERVADOS
Manejo de errores
En tiempo de compilación

© everis- CONFIDENCIAL
143 DERECHOS RESERVADOS
Manejo de errores
En tiempo de ejecución

© everis- CONFIDENCIAL
144 DERECHOS RESERVADOS
Manejo de errores

• Las excepciones se pueden atrapar usando try-catch-


finally.
• Las excepciones pueden ser relanzadas, de esta
manera es otra parte del programa que se encargará de
atraparla.
• Muchas clases Java envían excepciones.
• Se pueden crear nuevas excepciones:
– Verificadas : heredando de
• java.lang.Exception
– No verificadas: heredando de
• java.lang.RuntimeException

© everis- CONFIDENCIAL
145 DERECHOS RESERVADOS
Manejo de errores
Atrapar excepciones

© everis- CONFIDENCIAL
146 DERECHOS RESERVADOS
Manejo de errores
Relanzar excepciones

© everis- CONFIDENCIAL
147 DERECHOS RESERVADOS
Manejo de errores
Ejercicio 1

• Haga un programa de conversión de monedas


con el siguiente menú:
– (Pesos,Dólar,Euros): P
– Ingreso la cantidad: 1570
– Su valor en Dólar es : 2.99
– Su valor en Euros es: 2.49
• Se deben manejar los posibles errores usando
excepciones.
• Los mensajes de error deben ser claros y
referentes al tipo de error.

© everis- CONFIDENCIAL
148 DERECHOS RESERVADOS
Manejo de errores
Ejercicio 2 1/2

• Modifique el ejercicio del cliente realizado en


“Estructura de datos” de la siguiente forma:
– El ingreso de cliente se realiza vía consola.
– Existe un único rut por cliente.
– Si se ingresa un rut ya existente debe permitir la
posibilidad de modificar el cliente.
– El formato de rut debe ser (999-9|k|K).
– Si las validaciones fallan se debe lanzar una
excepción de negocios.
– Al finalizar el ingreso de clientes estos deben ser
desplegadas en pantalla y ordenadas por fecha de
nacimiento de mayor a menor.
– Siga el sistema de navegación.

© everis- CONFIDENCIAL
149 DERECHOS RESERVADOS
Manejo de errores
Ejercicio 2 2/2

© everis- CONFIDENCIAL
150 DERECHOS RESERVADOS
1 Introducción.
2 Lenguaje Java.
3 Arreglos.
4 Orientación a Objetos.
5 Estructuras de datos.
6 Manejo de errores.
7 Acceso a base de datos (JDBC).
© everis- CONFIDENCIAL
151 DERECHOS RESERVADOS
Acceso a base de datos (JDBC)

• 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 estándar de conexión a cualquier base de
datos disponible en el mercado.
• Permite obtener los datos de manera cómoda y fácil en
ambientes cliente-servidor a través de Internet/Intranet.
• JDBC permite:
– Establecer una conexión con una base de datos.
– Enviar sentencias SQL.
– Procesar los resultados de estas sentencias.

© everis- CONFIDENCIAL
152 DERECHOS RESERVADOS
Acceso a base de datos (JDBC)

• La clase que se encarga de cargar inicialmente todos los


drivers JDBC es DriverManager.
• Una aplicación utiliza DriverManager para obtener un
objeto de tipo conexión Connection con una base de
datos. Dicha conexión 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 más resultados
que se devuelven como objetos de tipo ResultSet.

© everis- CONFIDENCIAL
153 DERECHOS RESERVADOS
Acceso a base de datos (JDBC)

• Los pasos para efectuar conexión a una


base de datos es:
– Cargar el driver de la base.
– Establecer una comunicación.
– Enviar sentencias a la base.
– Recuperar el resultado.
• Nota: Se debe agregar al CLASSPATH el
JAR del driver (depende de la BD).

© everis- CONFIDENCIAL
154 DERECHOS RESERVADOS
Acceso a base de datos (JDBC)

© everis- CONFIDENCIAL
155 DERECHOS RESERVADOS
Acceso a base de datos (JDBC)
Connection

• Las conexiones sirven para:


– Representar la conexión.
– Realizar commit y rollback.
– Controlar autocommit.
– Obtener acceso al catálogo de la base.
– Etc...

© everis- CONFIDENCIAL
156 DERECHOS RESERVADOS
Acceso a base de datos (JDBC)
Statment

• Para ejecutar SQL existen 3 formatos:


– Statement: SQL genérico
– PreparedStatement: SQL con parámetros
– CallableStatement: SQL con parámetros OUT
• Los 3 formatos se pueden usar para consultar y
actualizar.
– statement.executeQuery();
– statement.executeUpdate();
– statement.execute();

© everis- CONFIDENCIAL
157 DERECHOS RESERVADOS
Acceso a base de datos (JDBC)
Statment

• Statement es el más simple, ya que permite ejecutar


SQL directamente.

• PreparedStatement es preferible por su manejo de


parámetros.

© everis- CONFIDENCIAL
158 DERECHOS RESERVADOS
Acceso a base de datos (JDBC)
Resultset

• Para obtener resultados se requiere de otro


método: executeQuery
• El retorno es un objeto que permite iterar sobre
las filas una a una.

© everis- CONFIDENCIAL
159 DERECHOS RESERVADOS
Acceso a base de datos (JDBC)
Resultset

• Par leer los datos desde la fila actual del


ResultSet existen varios métodos:
– getInt(“colName”);
– getString(“colName”);
– getFloat(“colName”);
– getBigDecimal(“colName”);
– getDate(“colName”);: java.sql.Date
– getTime(“colName”); : java.sql.Time
– getAsciiStream(“colName”);
– getBinaryStream(“colName”);
– getObject(“colName”);

© everis- CONFIDENCIAL
160 DERECHOS RESERVADOS
Acceso a base de datos (JDBC)
MetaData

• Un objeto ResultSet contiene información


adicional a las filas: columnas, nombres de
campos, nulls, tablas, etc.

© everis- CONFIDENCIAL
161 DERECHOS RESERVADOS
Acceso a base de datos (JDBC)
Ejercicio 1

• 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.

© everis- CONFIDENCIAL
162 DERECHOS RESERVADOS
Acceso a base de datos (JDBC)
Ejercicio 2

• 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.

© everis- CONFIDENCIAL
163 DERECHOS RESERVADOS
Acceso a base de datos (JDBC)
Ejercicio 3

• 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 modificación de usuarios
existentes.

© everis- CONFIDENCIAL
164 DERECHOS RESERVADOS
Acceso a base de datos (JDBC)
Ejercicio 4

• Modifique el ejercicio 2 de “Manejo de


errores” para que cumpla con lo siguiente:
– Los clientes serán grabados en la tabla
cliente.
– La columna “rut” es la llave primaria (PK).

© everis- CONFIDENCIAL
165 DERECHOS RESERVADOS
© everis- CONFIDENCIAL
166 DERECHOS RESERVADOS

S-ar putea să vă placă și