View
218
Download
0
Category
Preview:
Citation preview
8/3/2019 5 Seminario Java
1/220
Seminario deSeminario deSeminario deSeminario deSeminario deSeminario deSeminario deSeminario deProgramacinProgramacinProgramacinProgramacinProgramacinProgramacinProgramacinProgramacin
Orientada a ObjetosOrientada a ObjetosOrientada a ObjetosOrientada a ObjetosOrientada a ObjetosOrientada a ObjetosOrientada a ObjetosOrientada a Objetos
El Lenguaje de Programacin JavaEl Lenguaje de Programacin JavaJimmy Vlez MuozJimmy Vlez Muozjvelez@ usb.edu.cojvelez@ usb.edu.co
8/3/2019 5 Seminario Java
2/220
Contenido del SeminarioContenido del SeminarioContenido del SeminarioContenido del SeminarioContenido del SeminarioContenido del SeminarioContenido del SeminarioContenido del SeminarioIntroduccin y Fundamentos de Java
Los Primeros Pasos en JavaEl Lenguaje de Programacin Java: Parte 1
Java en el Lado del Cliente (Applets)El Lenguaje de Programacin Java: Parte IIAcceso a Bases de Datos con Java: JDBC
Java en el Lado del Servidor (Servlets)
8/3/2019 5 Seminario Java
3/220
ObjetivosObjetivosObjetivosObjetivosObjetivosObjetivosObjetivosObjetivosConocer los principios fundamentales de la
programacin orientada a objetos con el LenguajeJava.Preparar a los participantes en el desarrollo deaplicaciones Java que accesan bases de datos.Entender los fundamentos del desarrollo de
aplicaciones Java, tanto en el lado del cliente como enel lado del servidor.
8/3/2019 5 Seminario Java
4/220
INTRODUCCIN YINTRODUCCIN YINTRODUCCIN YINTRODUCCIN YINTRODUCCIN YINTRODUCCIN YINTRODUCCIN YINTRODUCCIN YFUNDAMENTOS DEFUNDAMENTOS DEFUNDAMENTOS DEFUNDAMENTOS DEFUNDAMENTOS DEFUNDAMENTOS DEFUNDAMENTOS DEFUNDAMENTOS DE
JAVAJAVAJAVAJAVAJAVAJAVAJAVAJAVA
8/3/2019 5 Seminario Java
5/220
Origenes del Lenguaje JavaOrigenes del Lenguaje JavaOrigenes del Lenguaje JavaOrigenes del Lenguaje JavaOrigenes del Lenguaje JavaOrigenes del Lenguaje JavaOrigenes del Lenguaje JavaOrigenes del Lenguaje JavaProyecto Green financiado por SUN Microsystems
en 1991.James Gosling crea el lenguaje OAK, basado encaractersticas de C y C+ + .El nombre se cambia de OAK a JAVA, ya que existaotro lenguaje con ese nombre.
8/3/2019 5 Seminario Java
6/220
Origenes del Lenguaje JavaOrigenes del Lenguaje JavaOrigenes del Lenguaje JavaOrigenes del Lenguaje JavaOrigenes del Lenguaje JavaOrigenes del Lenguaje JavaOrigenes del Lenguaje JavaOrigenes del Lenguaje JavaEl nombre JAVA (Como se le conoce al caf en ingls)
se pone por sugerencia de un empleado de SUN.En 1992 el proyecto Green se ve en problemas.En 1993 la explosin de la WWW fue el caldo decult ivo de JAVA.
8/3/2019 5 Seminario Java
7/220
Origenes del Lenguaje JavaOrigenes del Lenguaje JavaOrigenes del Lenguaje JavaOrigenes del Lenguaje JavaOrigenes del Lenguaje JavaOrigenes del Lenguaje JavaOrigenes del Lenguaje JavaOrigenes del Lenguaje JavaJAVA fue diseado para aumentar el potencial de la
WWW y en el mes de Mayo de 1995 se hace sulanzamiento oficial.
8/3/2019 5 Seminario Java
8/220
Qu es JAVA?Qu es JAVA?Qu es JAVA?Qu es JAVA?Qu es JAVA?Qu es JAVA?Qu es JAVA?Qu es JAVA?Java es fundamentalmente una nueva forma de
computacin, basada en el poder de las redes y en laidea de que el mismo software puede correr endiferentes tipos de mquinas y sistemas operativos.
8/3/2019 5 Seminario Java
9/220
Java permite realizar cosas que antes eran
impensables:Los usuarios pueden accesar informacin remotamente deuna forma segura por medio de un Browser e Internet.
Aumento del uso de la computacin distribuida.Desarrollo de componentes.Industrializacin del proceso de desarrollo de software.
Por qu Java es Importante?Por qu Java es Importante?Por qu Java es Importante?Por qu Java es Importante?Por qu Java es Importante?Por qu Java es Importante?Por qu Java es Importante?Por qu Java es Importante?
8/3/2019 5 Seminario Java
10/220
Los programas escritos en JAVA corren en muchas
plataformas distintas gracias a la JVM o JavaVirtual Machine.
Cmo trabaja la plataforma Java?Cmo trabaja la plataforma Java?Cmo trabaja la plataforma Java?Cmo trabaja la plataforma Java?Cmo trabaja la plataforma Java?Cmo trabaja la plataforma Java?Cmo trabaja la plataforma Java?Cmo trabaja la plataforma Java?
8/3/2019 5 Seminario Java
11/220
Cmo trabaja la plataforma Java?Cmo trabaja la plataforma Java?Cmo trabaja la plataforma Java?Cmo trabaja la plataforma Java?Cmo trabaja la plataforma Java?Cmo trabaja la plataforma Java?Cmo trabaja la plataforma Java?Cmo trabaja la plataforma Java?
El software de Java est embebido en eldispositivo o se encuentra en el disco delcomputador.
El software contiene una interfaz de usuariopara la ejecucin de ordenes.
La JVM interpreta las instrucciones del software
escrito en JAVA y las ejecuta.
El SO brinda el soporte a la JVM para realizar lasoperaciones.
8/3/2019 5 Seminario Java
12/220
Caractersticas del Lenguaje JavaCaractersticas del Lenguaje JavaCaractersticas del Lenguaje JavaCaractersticas del Lenguaje JavaCaractersticas del Lenguaje JavaCaractersticas del Lenguaje JavaCaractersticas del Lenguaje JavaCaractersticas del Lenguaje Java
Simple Portable
Interpretado Orientado aObjetos
Seguro
Dinmico Multihilo
8/3/2019 5 Seminario Java
13/220
Java es SimpleJava es SimpleJava es SimpleJava es SimpleJava es SimpleJava es SimpleJava es SimpleJava es SimpleLa concepcin del Lenguaje fue simple desde su inicio.
Este lenguaje oculta toda la dificultad que traeprogramar con otros lenguajes como el C+ + y el usode punteros.
8/3/2019 5 Seminario Java
14/220
Java es un lenguaje que utiliza todas las caractersticas
de los lenguajes orientados a objetos:ClasesObjetos
EncapsulamientoHerenciaPolimorfismo
Java es Orientado a ObjetosJava es Orientado a ObjetosJava es Orientado a ObjetosJava es Orientado a ObjetosJava es Orientado a ObjetosJava es Orientado a ObjetosJava es Orientado a ObjetosJava es Orientado a Objetos
8/3/2019 5 Seminario Java
15/220
Java es PortableJava es PortableJava es PortableJava es PortableJava es PortableJava es PortableJava es PortableJava es PortableJava es portable gracias a su Mquina Virtual.
El compilador de Java genera cdigo transportableentre diferentes plataformas (bytecode).
Interpretadoresdel ByteCode
Windows 9x
Windows NT
Unix/Linux
Cdigo Fuente(.java)
Compilador de Java
ByteCode
(.class)
8/3/2019 5 Seminario Java
16/220
Java es InterpretadoJava es InterpretadoJava es InterpretadoJava es InterpretadoJava es InterpretadoJava es InterpretadoJava es InterpretadoJava es InterpretadoLa mquina virtual de Java Interpreta el bytecode
generado por el compilador.La lenta ejecucin de los programas y applets escritosen Java se debe en gran parte a este proceso.
Sin embargo la potencialidad que tiene Java se debe asu carcter interpretado.
8/3/2019 5 Seminario Java
17/220
El diseo de la seguridad es un asunto crucial en el
desarrollo de aplicaciones distribuidas.Hay cuatro aspectos de seguridad que Java tiene encuenta:
Polticas de SeguridadPrivacidadAutenticacinSeguridad
Java es SeguroJava es SeguroJava es SeguroJava es SeguroJava es SeguroJava es SeguroJava es SeguroJava es Seguro
8/3/2019 5 Seminario Java
18/220
Java remueve el manejo de memoria dinmica del
programador.Para Java el manejo de objetos se hace por medio dereferencias a estos.
El programador no debe preocuparse por reservar oliberar memoria.
Existe un colector de basura que lo hace todo porusted.
Java es DinmicoJava es DinmicoJava es DinmicoJava es DinmicoJava es DinmicoJava es DinmicoJava es DinmicoJava es Dinmico
8/3/2019 5 Seminario Java
19/220
Los programas, especialmente los programas de PC,
son usualmente programas de un solo hilo. La CPU nopuede actualizar la pantalla y hacer lectura y escrituraen el disco al mismo tiempo.
Java brinda el soporte para ejecutar varios hilos(procesos) al tiempo.
Java es MultihiloJava es MultihiloJava es MultihiloJava es MultihiloJava es MultihiloJava es MultihiloJava es MultihiloJava es Multihilo
8/3/2019 5 Seminario Java
20/220
Beneficios del Lenguaje JavaBeneficios del Lenguaje JavaBeneficios del Lenguaje JavaBeneficios del Lenguaje JavaBeneficios del Lenguaje JavaBeneficios del Lenguaje JavaBeneficios del Lenguaje JavaBeneficios del Lenguaje JavaEs un lenguaje ptimo para Internet.
No permite el uso de variables globales, ya que elnico espacio global es la jerarqua de clases.No utiliza punteros.Implementa un recolector de basura.No t iene un preprocesador como el de Cy C+ + .
Conjunto de clases ncleo para el manejo de redes,cadenas, hilos, errores, etc.
8/3/2019 5 Seminario Java
21/220
Servidores de aplicacionesHerramientas de desarrollo
Conectividad de Bases de DatosComercio ElectrnicoEntretenimientoServicios Financieros
SaludManufacturaMultimediaAdministracin de redes
Generadores de reportesAdministracin de SistemasTelecomunicacionesServidores WEB
Usos del Lenguaje JavaUsos del Lenguaje JavaUsos del Lenguaje JavaUsos del Lenguaje JavaUsos del Lenguaje JavaUsos del Lenguaje JavaUsos del Lenguaje JavaUsos del Lenguaje Java
8/3/2019 5 Seminario Java
22/220
Java SmallTalk Perl C C+ +Simple S S Regular Regular No
OO S S S No RegularRobusto S S S No SSeguro S Regular S No SInterpretado S S S No NoDinmico S S S No NoPortable S Regular No Regular RegularNeutral S Regular S No NoMultihilo S No S No NoRec. Basura S S No No No
Excepciones S S S No SRendimiento Alto Medio Medio Muy Alto Muy Alto
Java vs. otros Lenguajes a ObjetosJava vs. otros Lenguajes a ObjetosJava vs. otros Lenguajes a ObjetosJava vs. otros Lenguajes a ObjetosJava vs. otros Lenguajes a ObjetosJava vs. otros Lenguajes a ObjetosJava vs. otros Lenguajes a ObjetosJava vs. otros Lenguajes a Objetos
8/3/2019 5 Seminario Java
23/220
Recursos de Java en InternetRecursos de Java en InternetRecursos de Java en InternetRecursos de Java en InternetRecursos de Java en InternetRecursos de Java en InternetRecursos de Java en InternetRecursos de Java en Internetwww.javasoft.com
www.javalobby.orgwww.javaworld.comwww.javareport.comwww.jars.comwww.developer.com
www.sys-con.com/ javawww.sun.comwww.servlets.com
8/3/2019 5 Seminario Java
24/220
LOS PRIMEROSLOS PRIMEROSLOS PRIMEROSLOS PRIMEROSLOS PRIMEROSLOS PRIMEROSLOS PRIMEROSLOS PRIMEROSPASOS EN JAVAPASOS EN JAVAPASOS EN JAVAPASOS EN JAVAPASOS EN JAVAPASOS EN JAVAPASOS EN JAVAPASOS EN JAVA
El Java Developer Kit (JDK), La API deEl Java Developer Kit (JDK), La API deJava, Tipos de Aplicaciones, etc.Java, Tipos de Aplicaciones, etc.
8/3/2019 5 Seminario Java
25/220
El Java Developer Kit (JDK)El Java Developer Kit (JDK)El Java Developer Kit (JDK)El Java Developer Kit (JDK)El Java Developer Kit (JDK)El Java Developer Kit (JDK)El Java Developer Kit (JDK)El Java Developer Kit (JDK)El Kit de Desarrollo de Java, es un conjunto de
herramientas bsicas que proporcionan entre otrascosas, un interpretador de java, un compilador, undescompilador, un generador automtico de
documentacin en html, etc.Actualmente ya hay entornos de desarrollo integradoscompletos para Java, diferentes del JDK de Sun.
Symantec, Symantec Caf. Borland, JBuilder. Sun,Java WorkShop. Microsoft, Visual J+ + . IBM,VisualAge for Java, etc.
8/3/2019 5 Seminario Java
26/220
Tipos de Aplicaciones en JavaTipos de Aplicaciones en JavaTipos de Aplicaciones en JavaTipos de Aplicaciones en JavaTipos de Aplicaciones en JavaTipos de Aplicaciones en JavaTipos de Aplicaciones en JavaTipos de Aplicaciones en JavaJava Applets
Aplicaciones StandalonePaquetesJava ServletsJavaBeans
8/3/2019 5 Seminario Java
27/220
Java AppletsJava AppletsJava AppletsJava AppletsJava AppletsJava AppletsJava AppletsJava AppletsSon miniaplicaciones que se ejecutan por medio de un
Browser, a travs de una pgina HTML.Peticin de la
Pgina
...
8/3/2019 5 Seminario Java
28/220
Aplicaciones StandaloneAplicaciones StandaloneAplicaciones StandaloneAplicaciones StandaloneAplicaciones StandaloneAplicaciones StandaloneAplicaciones StandaloneAplicaciones StandaloneEstos aplicactivos de Java no necesitan un browser
para ser ejecutadosEstas aplicaciones se ejecutan con la ayuda de lamquina virtual de Java.
8/3/2019 5 Seminario Java
29/220
PaquetesPaquetesPaquetesPaquetesPaquetesPaquetesPaquetesPaquetesUn paquete en Java es un conjunto de clases que
guardan un propsito comn.Estos paquetes se encuentran constituidos en archivosque normalmente estn comprimidos en zip, jar, etc.
Paquete java.awt Paquete java.net
8/3/2019 5 Seminario Java
30/220
Java ServletsJava ServletsJava ServletsJava ServletsJava ServletsJava ServletsJava ServletsJava ServletsUn servlet de Java es una aplicacin que se ejecuta en
el servidor.Esta aplicacin no viaja hasta el cliente para serinterpretada por la mquina virtual del navegador.
Por el contrario el servlet lo interpreta la mquinavirtual del servidor.
8/3/2019 5 Seminario Java
31/220
JavaBeansJavaBeansJavaBeansJavaBeansJavaBeansJavaBeansJavaBeansJavaBeansLos JavaBeans son componentes de software reutilizables quepueden unirse visualmente en otros componentes, applets,aplicaciones y servlets, utilizando herramientas visuales dedesarrollo.Una herramienta de desarrollo que soporte JavaBeans,
mantiene los Beans en un paleta o caja de herramientas. Sepuede seleccionar un Bean de la paleta, arrastarlo dentro de unformulario, modificar su apariencia y su comportamiento, definir
su interaccin con otros Beans, y componer un applet, unaaplicacin, o un nuevo Bean, junto con otros Beans. Todo estose puede hacer sin escribir una lnea de cdigo.
8/3/2019 5 Seminario Java
32/220
Instalacin del Kit de Desarrollo de JavaInstalacin del Kit de Desarrollo de JavaInstalacin del Kit de Desarrollo de JavaInstalacin del Kit de Desarrollo de JavaInstalacin del Kit de Desarrollo de JavaInstalacin del Kit de Desarrollo de JavaInstalacin del Kit de Desarrollo de JavaInstalacin del Kit de Desarrollo de JavaJDK1.3 (Java 2), necesita de 60 MB de espacio en
disco.La variable CLASSPATH, se requiere para que elcompilador encuentre los paquetes y las clases que
usamos en nuestros programas.Es recomendable poner en el PATH del sistema la rutadonde se encuentra instalado el compilador y lasherramientas de Java, para que puedan ser invocadasdesde cualquier lugar.
8/3/2019 5 Seminario Java
33/220
La API de JavaLa API de JavaLa API de JavaLa API de JavaLa API de JavaLa API de JavaLa API de JavaLa API de JavaLa Interfaz de Programa de Aplicacin de JAVA, o
API, es un conjunto de clases desarrolladas por Sunpara ser usadas con el lenguaje de programacinJAVA.
Estas fueron diseadas para asistir al programador enel desarrollo de sus propias clases, applets, yaplicaciones.
8/3/2019 5 Seminario Java
34/220
Las clases en Java se agrupan en paquetes.
Entre estos paquetes tenemos:java.langjava.corba
java.awtjava.appletjava.iojava.sql
La API de JavaLa API de JavaLa API de JavaLa API de JavaLa API de JavaLa API de JavaLa API de JavaLa API de Java
8/3/2019 5 Seminario Java
35/220
Este paquete consiste de clases que son el corazn del
lenguaje JAVA. Este paquete incluye no sloenvolturas para los tipos de datos bsicos comoInteger y String, sino tambin la manera de manejar
errores por medio de las clases Throwable y Error.
Paquete java.langPaquete java.langPaquete java.langPaquete java.langPaquete java.langPaquete java.langPaquete java.langPaquete java.lang
8/3/2019 5 Seminario Java
36/220
El paquete java.io sirve como la biblioteca estndar de
entrada y salida para el lenguaje JAVA. Este paquetele permite un nmero ilimitado de posibilidades decomunicacin al proporcionarle tanto tipos sencillos
como la clase StringBufferInputStream o complejoscomo la clase RandomAccessFile.
Paquete java.ioPaquete java.ioPaquete java.ioPaquete java.ioPaquete java.ioPaquete java.ioPaquete java.ioPaquete java.io
8/3/2019 5 Seminario Java
37/220
Este paquete es, esencialmente, una variedad de clases
tiles que no pertenecen a ningn otro paquete. Entreestas clases prcticas se encuentran la clase Date,diseada para manipular y manejar las operaciones
con fechas, la clase Hashtable y los TADs (TiposAbstractos de Datos), como Stack y Vector.
Pauqte java.utilPauqte java.utilPauqte java.utilPauqte java.utilPauqte java.utilPauqte java.utilPauqte java.utilPauqte java.util
8/3/2019 5 Seminario Java
38/220
Ya que JAVA es un lenguaje basado en red, este
relativamente pequeo paquete resulta ser muy t il.Sobre todo, le proporciona la capacidad decomunicarse con otras fuentes de informacin creando
o conectndose a sockets o haciendo uso de los URLsy direcciones de Internet.
Paquete java.netPaquete java.netPaquete java.netPaquete java.netPaquete java.netPaquete java.netPaquete java.netPaquete java.net
8/3/2019 5 Seminario Java
39/220
El Abstract Window Toolkit (AWT) de JAVA contiene
los recursos que usted necesita para crear interfacesatractivas y tiles para sus applets. El AWT no slotiene herramientas de control, como el
LayoutManager y Container, sino que tambin cuentacon herramientas interactivas concretas, como Buttony TextField.
Paquete java.awtPaquete java.awtPaquete java.awtPaquete java.awtPaquete java.awtPaquete java.awtPaquete java.awtPaquete java.awt
8/3/2019 5 Seminario Java
40/220
Paquete java.appletPaquete java.appletPaquete java.appletPaquete java.appletPaquete java.appletPaquete java.appletPaquete java.appletPaquete java.appletEl paquete java.applet proporciona una sola clase y
tres interfaces, pero es uno de los paquetes ms usadosporque es la base de todos los applets. La clase Appletes de suma importancia porque es necesaria cuando se
crea un applet. Tambin es til la interfazAppletContext , la cual se usa para interacturar con elnavegador.
8/3/2019 5 Seminario Java
41/220
Una Mnima aplicacin en JavaUna Mnima aplicacin en JavaUna Mnima aplicacin en JavaUna Mnima aplicacin en JavaUna Mnima aplicacin en JavaUna Mnima aplicacin en JavaUna Mnima aplicacin en JavaUna Mnima aplicacin en Java/ / importamos los paquetes
import java.applet.* ;import java.awt.* ;/ / la clase que se hereda de Applet
public class HolaMundo extends Applet{public void paint(Graphics contexto){contexto.drawString("Mi Primer Applet",50,30);
}}
8/3/2019 5 Seminario Java
42/220
El archivo HTMLEl archivo HTMLEl archivo HTMLEl archivo HTMLEl archivo HTMLEl archivo HTMLEl archivo HTMLEl archivo HTML
< title> Mi Primer Applet < / title>< h1> El applet Hola Mundo :< / h1>
< applet code= HolaMundo.class width= 200 height= 100> < / applet>< / body>< / html>
8/3/2019 5 Seminario Java
43/220
El Lenguaje deEl Lenguaje deEl Lenguaje deEl Lenguaje deEl Lenguaje deEl Lenguaje deEl Lenguaje deEl Lenguaje deProgramacin JavaProgramacin JavaProgramacin JavaProgramacin JavaProgramacin JavaProgramacin JavaProgramacin JavaProgramacin Java
Parte 1: Comentarios, PalabrasParte 1: Comentarios, PalabrasReservadas, Operadores, Control de Flujo,Reservadas, Operadores, Control de Flujo,
Arreglos y Cadenas, etc.Arreglos y Cadenas, etc.
8/3/2019 5 Seminario Java
44/220
Comentarios en JavaComentarios en JavaComentarios en JavaComentarios en JavaComentarios en JavaComentarios en JavaComentarios en JavaComentarios en Java
Comentarios de una lnea:
/ / Este es un comentario de una sola lneaComentarios de varias lneas:/ * Este es un
comentario que tienevarias lneas * /
8/3/2019 5 Seminario Java
45/220
Palabras Reservadas del Lenguaje JavaPalabras Reservadas del Lenguaje JavaPalabras Reservadas del Lenguaje JavaPalabras Reservadas del Lenguaje JavaPalabras Reservadas del Lenguaje JavaPalabras Reservadas del Lenguaje JavaPalabras Reservadas del Lenguaje JavaPalabras Reservadas del Lenguaje Java
abstract boolean break bytecase cast catch char
class const continue defaultdo double else extendsfinal ninally float forfuture generic goto ifimplements import inner instanceof
int interface long nativenew null operator outerpackage private protected publicrest return short staticsuper switch synchronized thisthrow throws transient tryvar void volat ile while
8/3/2019 5 Seminario Java
46/220
Operadores en JavaOperadores en JavaOperadores en JavaOperadores en JavaOperadores en JavaOperadores en JavaOperadores en JavaOperadores en Java
Los operadores realizan algunas funciones en uno o
dos operandos. Los operadores que requieren unoperador se llaman operadores unarios.Los operadores que requieren dos operandos se llaman
operadores binarios.Los operadores unarios en Java pueden utilizar lanotacin de prefijo o de sufijo.
8/3/2019 5 Seminario Java
47/220
Operadores en JavaOperadores en JavaOperadores en JavaOperadores en JavaOperadores en JavaOperadores en JavaOperadores en JavaOperadores en Java
Podemos encontrar los siguientes tipos:
AritmticosRelacionalesCondicionales
DesplazamientoAsignacin
8/3/2019 5 Seminario Java
48/220
Resumen de Operadores en JavaResumen de Operadores en JavaResumen de Operadores en JavaResumen de Operadores en JavaResumen de Operadores en JavaResumen de Operadores en JavaResumen de Operadores en JavaResumen de Operadores en Java
Tipo Operadores
Aritmticos + ,-,* ,/ ,% ,+ + ,--Relacionales > ,> = ,< ,< = ,= = ,!=
Condicionales &&,| | ,!
Desplazamiento > > ,< < ,> > > ,&,| ,^,~
Asignacin + = ,-= ,* = ,/ = ,%= ,&= ,
| = ,^= ,< < = ,> > = ,> > > =
8/3/2019 5 Seminario Java
49/220
Variables y Tipos de DatosVariables y Tipos de DatosVariables y Tipos de DatosVariables y Tipos de DatosVariables y Tipos de DatosVariables y Tipos de DatosVariables y Tipos de DatosVariables y Tipos de Datos
Todas las variables en el lenguaje Java deben tener un
tipo de dato. El tipo de la variable determina losvalores que la variable puede contener y lasoperaciones que se pueden realizar con ella.
Existen dos categorias de datos principales en ellenguaje Java: los tipos primitivos y los tiposreferenciados.
Los tipos primitivos contienen un slo valor e incluyenlos tipos como los enteros, coma flotante, loscaracteres, etc...
8/3/2019 5 Seminario Java
50/220
Tipos de Datos Primit ivosTipos de Datos Primit ivosTipos de Datos Primit ivosTipos de Datos Primit ivosTipos de Datos Primit ivosTipos de Datos Primit ivosTipos de Datos Primit ivosTipos de Datos Primit ivos
Tipo Tamao Descripcin
byte 8 bits Entero 1 byteshort 16 bits Entero cortoint 32 bits Entero
long 64 bits Entero largofloat 32 bits Pres. simpledouble 64 bits Pres. doble
char 16 bits 1 carcterboolean 1 bit true/ false
8/3/2019 5 Seminario Java
51/220
Nombres de VariablesNombres de VariablesNombres de VariablesNombres de VariablesNombres de VariablesNombres de VariablesNombres de VariablesNombres de Variables
Debe ser un identificador legal de Java comprendido
en una serie de caracteres Unicode. Unicode es unsistema de codificacin que soporta texto escrito endistintos lenguajes humanos.Unicode perminte la
codificacin de 34.168 caracteres.No puede ser el mismo que una palabra clave o elnombre de un valor booleano (true or false)
No deben tener el mismo nombre que otras variablescuyas declaraciones aparezcan en el mismo mbito.
8/3/2019 5 Seminario Java
52/220
Declaracin de VariablesDeclaracin de VariablesDeclaracin de VariablesDeclaracin de VariablesDeclaracin de VariablesDeclaracin de VariablesDeclaracin de VariablesDeclaracin de Variables
Sintxis:
TipoDeDato identificador= valor inicial;Ejemplos:
int contador= 0;
char letra;double PI= 3.141592654;
8/3/2019 5 Seminario Java
53/220
Control de FlujoControl de FlujoControl de FlujoControl de FlujoControl de FlujoControl de FlujoControl de FlujoControl de Flujo
Las sentencias de control de flujo determinan el orden
en que se ejecutarn las otras sentencias dentro delprograma. El lenguaje Java soporta varias sentenciasde control de flujo, incluyendo:
Toma de decisionesCiclos o buclesExcepciones
Rompimiento de flujo
8/3/2019 5 Seminario Java
54/220
if (ejecucin condicional)if (ejecucin condicional)if (ejecucin condicional)if (ejecucin condicional)if (ejecucin condicional)if (ejecucin condicional)if (ejecucin condicional)if (ejecucin condicional)
Sintxis:
if (expresin lgica)sentencias; expresinlgica
sentencia
obloque
if l ( j i di i l di i )if l ( j i di i l di i )if l ( j i di i l di i )if l ( j i di i l di i )
8/3/2019 5 Seminario Java
55/220
if - else (ejecucin condicional dicotmica)if - else (ejecucin condicional dicotmica)if - else (ejecucin condicional dicotmica)if - else (ejecucin condicional dicotmica)if - else (ejecucin condicional dicotmica)if - else (ejecucin condicional dicotmica)if - else (ejecucin condicional dicotmica)if - else (ejecucin condicional dicotmica)
Sintxis:
if (expresin lgica)sentencia1;else
sentencia2;
expresin
lgica
sentencia1o
bloque1
sentencia2o
bloque2
true false
i h ( j i di i l l i l )i h ( j i di i l l i l )i h ( j i di i l l i l )i h ( j i di i l l i l )i h ( j i di i l l i l )i h ( j i di i l l i l )i h ( j i di i l l i l )i h ( j i di i l l i l )
8/3/2019 5 Seminario Java
56/220
switch (ejecucin condicional mltiple)switch (ejecucin condicional mltiple)switch (ejecucin condicional mltiple)switch (ejecucin condicional mltiple)switch (ejecucin condicional mltiple)switch (ejecucin condicional mltiple)switch (ejecucin condicional mltiple)switch (ejecucin condicional mltiple)
Sintxis:
switch(expresin){case constante1: sentencia1;case constante2: sentencia2;
......default: sentencia por defecto;
}
i h ( j i di i l l i l )i h ( j i di i l l i l )i h ( j i di i l l i l )i h ( j i di i l l i l )it h ( j i di i l lti l )it h ( j i di i l lti l )it h ( j i di i l lti l )it h ( j i di i l lti l )
8/3/2019 5 Seminario Java
57/220
Evaluacin de laExpresin
cte1
cte2
default
switch (ejecucin condicional mltiple)switch (ejecucin condicional mltiple)switch (ejecucin condicional mltiple)switch (ejecucin condicional mltiple)switch (ejecucin condicional mltiple)switch (ejecucin condicional mltiple)switch (ejecucin condicional mltiple)switch (ejecucin condicional mltiple)
lista de sentencias pordefault
lista de sentencias 2
lista de sentencias 1
break
breaktrue
true
true
true
true
false
false
f (it i b l )f (it i b l )f (it i b l )f (it i b l )f (it i b l )f (it i b l )f (it i b l )f (it i b l )
8/3/2019 5 Seminario Java
58/220
for (iteracin o bucle)for (iteracin o bucle)for (iteracin o bucle)for (iteracin o bucle)for (iteracin o bucle)for (iteracin o bucle)for (iteracin o bucle)for (iteracin o bucle)
Sintxis:
for(exp.Inicializacin;exp.lgica;exp.iteracin)sentencia;Evaluacin de la expresin de
inicializacin
Evaluacin de la expresin deiteracin
sentencia o bloque
ExpresinLgica
true
false
hil (it i b l )hil (it i b l )hil (it i b l )hil (it i b l )hil (it i b l )hil (it i b l )hil (it i b l )hil (it i b l )
8/3/2019 5 Seminario Java
59/220
while (iteracin o bucle)while (iteracin o bucle)while (iteracin o bucle)while (iteracin o bucle)while (iteracin o bucle)while (iteracin o bucle)while (iteracin o bucle)while (iteracin o bucle)
Sintxis:
while(expresin lgica)sentencia;
sentencia o bloque
ExpresinLgica
true
false
d hil (it i b l )d hil (it i b l )d hil (it i b l )d hil (it i b l )do while (iteracin o bucle)do while (iteracin o bucle)do while (iteracin o bucle)do while (iteracin o bucle)
8/3/2019 5 Seminario Java
60/220
do-while (iteracin o bucle)do-while (iteracin o bucle)do-while (iteracin o bucle)do-while (iteracin o bucle)do-while (iteracin o bucle)do-while (iteracin o bucle)do-while (iteracin o bucle)do-while (iteracin o bucle)
Sintxis:
do {sentencia;} while (expresin lgica);
sentencia o bloque
ExpresinLgica
truefalse
break (bifurcacin incondicional)break (bifurcacin incondicional)break (bifurcacin incondicional)break (bifurcacin incondicional)break (bifurcacin incondicional)break (bifurcacin incondicional)break (bifurcacin incondicional)break (bifurcacin incondicional)
8/3/2019 5 Seminario Java
61/220
break (bifurcacin incondicional)break (bifurcacin incondicional)break (bifurcacin incondicional)break (bifurcacin incondicional)break (bifurcacin incondicional)break (bifurcacin incondicional)break (bifurcacin incondicional)break (bifurcacin incondicional)
Sintxis:
break;
sentencia;break;
ExpresinLgica
true
false
break (bifurcacin incondicional)break (bifurcacin incondicional)break (bifurcacin incondicional)break (bifurcacin incondicional)break (bifurcacin incondicional)break (bifurcacin incondicional)break (bifurcacin incondicional)break (bifurcacin incondicional)
8/3/2019 5 Seminario Java
62/220
break (bifurcacin incondicional)break (bifurcacin incondicional)break (bifurcacin incondicional)break (bifurcacin incondicional)break (bifurcacin incondicional)break (bifurcacin incondicional)break (bifurcacin incondicional)break (bifurcacin incondicional)
Sintxis:
continue;
sentencia;
continue;
ExpresinLgica
true
false
Arreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de Caracteres
8/3/2019 5 Seminario Java
63/220
Arreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de Caracteres
Un arreglo es un tipo compuesto de variables del
mismo tipo.Estas variables pueden ser a su vez de tipos simples(tipos primitivos) o compuestos (objetos).
Los arreglos pueden ser de una o ms dimensiones, ycada dimensin se especifica con un par de corchetes.
Arreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de Caracteres
8/3/2019 5 Seminario Java
64/220
Arreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de Caracteres
Sintxis para la declacin de arreglos:
tipo identificador[];tipo[] identificador;
Ej: int numeros[];
El tamao del arreglo se debe especificar por medio deloperador new:identificador = new tipo[tamao];
Ej: numeros = new int[100];
El ndice de un arreglo inicia desde la posicin 0, y estedebe ser declarado como un tipo de dato entero (int).
Arreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de Caracteres
8/3/2019 5 Seminario Java
65/220
Arreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de Caracteres
Declaracin de matrices:
float matriz[][];matriz = new float[3][2];
En este caso el primer valor de los corchetes especifica
que la matriz tiene 3 filas, y el segundo valor declaraque la matriz tiene 2 columnas.
(0,0) (0,1)(1,0) (1,1)(2,0) (2,1)
Filas
Columnas
Arreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de Caracteres
8/3/2019 5 Seminario Java
66/220
Arreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de Caracteres
En Java las cadenas de caracteres son manejadas por
la clase String.Los literales tipo cadena son en realidad instancias dela clase String.
Los objetos de tipo String pueden realizar operacionestales como determinar su longitud, trabajar con cadauno de los caracteres, extraer subcadenas, etc.
Arreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de Caracteres
8/3/2019 5 Seminario Java
67/220
Arreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de Caracteres
Sintxis de declaracin de cadenas:
String identificador= "valor inicial";Ej: String cadena= "Hoy es un da fro";
Para declarar cadenas tambin se puede hacer uso del
constructor de clase:String cadena;
cadena = new String("Hoy es un da fro");
O simplemente declararla y luego inicializarla:String cadena;
cadena = "Hoy es un da fro";
Arreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de Caracteres
8/3/2019 5 Seminario Java
68/220
Arreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de Caracteres
Operaciones sobre cadenas:
length() : devuelve la longitud de la cadenacharAt(indice): devuelve el carcter en el ndiceequals(String): devuelve true si los String son iguales
equalsIgnoreCase(String): compara ignorando maysculasy minsculas.startsWith(String): devuelve true si el objeto inicia con el
String especificado.endsWith(String): devuelve true si el objeto termina con elString especificado.
Arreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de Caracteres
8/3/2019 5 Seminario Java
69/220
Arreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de CaracteresArreglos y Cadenas de Caracteres
Continuacin ...
indexOf(char): determina la posicin de la primeraocurrencia de un carcter.substring(inicio, fin): devuelve un String de una cadena
iniciando en la posicin de inicio y terminando unaposicin antes del fin.valueOf(tipo primitivo): mtodo esttico que devuelve la
cadena correspondiente al tipo que se le pase comoargumento.
EjerciciosEjerciciosEjerciciosEjerciciosEjerciciosEjerciciosEjerciciosEjercicios
8/3/2019 5 Seminario Java
70/220
Ejercicios ....Ejercicios ....Ejercicios ....Ejercicios ....Ejercicios ....Ejercicios ....Ejercicios ....Ejercicios ....
Variables
Control de flujoArreglosCadenas de caracteres
JAVA EN EL LADO DEL CLIENTEJAVA EN EL LADO DEL CLIENTEJAVA EN EL LADO DEL CLIENTEJAVA EN EL LADO DEL CLIENTEJAVA EN EL LADO DEL CLIENTEJAVA EN EL LADO DEL CLIENTEJAVA EN EL LADO DEL CLIENTEJAVA EN EL LADO DEL CLIENTE
8/3/2019 5 Seminario Java
71/220
JAVA EN EL LADO DEL CLIENTEJAVA EN EL LADO DEL CLIENTEJAVA EN EL LADO DEL CLIENTEJAVA EN EL LADO DEL CLIENTEJAVA EN EL LADO DEL CLIENTEJAVA EN EL LADO DEL CLIENTEJAVA EN EL LADO DEL CLIENTEJAVA EN EL LADO DEL CLIENTE
Desarrollo de AppletsDesarrollo de Applets
Los AppletsLos AppletsLos AppletsLos AppletsLos AppletsLos AppletsLos AppletsLos Applets
8/3/2019 5 Seminario Java
72/220
Los AppletsLos AppletsLos AppletsLos AppletsLos AppletsLos AppletsLos AppletsLos Applets
Un applet es un programa que corre enun navegador que sea compatible con
Java.Los applets tienen restricciones para
brindar una mayor seguridad.
Restricciones de los AppletsRestricciones de los AppletsRestricciones de los AppletsRestricciones de los AppletsRestricciones de los AppletsRestricciones de los AppletsRestricciones de los AppletsRestricciones de los Applets
8/3/2019 5 Seminario Java
73/220
Un applet no puede cargar libreras nidefinir mtodos nativos.
No puede leer ni escribir ficheros en elHost en el que se est ejecutando.
No puede realizar conexiones en laRed, excepto con el Host del que fuecargado.
Restricciones de los AppletsRestricciones de los AppletsRestricciones de los AppletsRestricciones de los Appletsest cc o es de os pp etsRestricciones de los AppletsRestricciones de los Appletsest cc o es de os pp ets
Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...
8/3/2019 5 Seminario Java
74/220
No puede arrancar ningn programaen el Host donde se est ejecuando.
No puede leer ciertas propiedades delsistema.
Las ventanas que proporcionan losapplets tienen un aspecto diferente alas de cualquier aplicacin.
Co t uac Co t uac Co t uac Co t uac
Capacidades de los AppletsCapacidades de los AppletsCapacidades de los AppletsCapacidades de los AppletsCapacidades de los AppletsCapacidades de los AppletsCapacidades de los AppletsCapacidades de los Applets
8/3/2019 5 Seminario Java
75/220
Los Applets pueden hacer conexiones alhost del que fueron cargados.
Los Applets que se ejecutan dentro deun navegador Web pueden hacer quese muestren pginas HTML de unaforma muy sencilla.
p ppp ppp ppp ppp ppp ppp ppp pp
Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...
8/3/2019 5 Seminario Java
76/220
Los Applets pueden invocar mtodos pblicos de otrosApplets que se encuentren en la misma pgina.Los Applets que se han cargado desde un directorio
local (desde un directorio en el CLASSPATH delusuario) no tienen ninguna restriccin como los appletscargados a travs de la Red.
Aunque la mayora de los applets paran su ejecucincuando el usuario abandona la pgina, no tienenporque hacerlo.
Ciclo de carga de un AppletCiclo de carga de un AppletCiclo de carga de un AppletCiclo de carga de un AppletCiclo de carga de un AppletCiclo de carga de un AppletCiclo de carga de un AppletCiclo de carga de un Applet
8/3/2019 5 Seminario Java
77/220
El archivo HTML es cargado.El tag < applet> es detectado.EL archivo .class es bajado desde el servidor.Las clases referenciadas por el applet sondetectadas y bajadas al cliente.
Son llamados los mtodos init() y start().El applet es mostrado en el browser.
g ppg ppg ppg ppg ppg ppg ppg pp
Ciclo de Vida de un AppletCiclo de Vida de un AppletCiclo de Vida de un AppletCiclo de Vida de un AppletCiclo de Vida de un AppletCiclo de Vida de un AppletCiclo de Vida de un AppletCiclo de Vida de un Applet
8/3/2019 5 Seminario Java
78/220
init():Llamado la primera vez que el applet es cargado.start():Llamado despus del mtodo init(), y cada vezque el browser regresa a la pgina en la cual el applet
est contenido.stop():Llamado cada vez que el browser deja la pginaWeb, donde el applet est contenido.
destroy():Llamado justo antes de que el browser secierre completamente.
pppppppppppppppp
La Clase AppletLa Clase AppletLa Clase AppletLa Clase AppletLa Clase AppletLa Clase AppletLa Clase AppletLa Clase Applet
8/3/2019 5 Seminario Java
79/220
ppppppppApplet
s etStub (stub : App letStub ) : void
is Active() : bo ole an
getDocum entBas e() : UR L
getCodeBa se () : URL
ge tParam eter(na m e : String ) : String
ge tApp letCon text() : App letCo ntext
res ize(w idth : int, he igh t : int) : void
resize(d : Dim ens ion) : void
s how Status(m s g : String) : void
getIm age (url : UR L) : Im agegetIm age (url : UR L, nam e : String) : Im age
ge tAudio Clip (url : UR L) : Audio Clip
ge tAudio Clip (url : UR L, nam e : String) : Audio Clip
ge tApp letInfo() : String
ge tLocale() : Locale
ge tParam eterInfo() : String[][]pla y(url : UR L) : void
play(url : URL, nam e : String) : void
in it() : vo id
s tart() : void
s top() : void
de s troy() : void
( f rom applet)
Entrada de Datos desde el AppletEntrada de Datos desde el AppletEntrada de Datos desde el AppletEntrada de Datos desde el AppletEntrada de Datos desde el AppletEntrada de Datos desde el AppletEntrada de Datos desde el AppletEntrada de Datos desde el Applet
8/3/2019 5 Seminario Java
80/220
Para introducir datos (valores, cadenas detexto) desde el applet se utilizan campos detexto (TextField).
Todos los datos digitados son capturadoscomo cadenas de texto.
Es necesario convertir estas cadenas a sucorrespondiente valor cuando se trata denmeros (flotantes, enteros, etc.).
Las Envolturas (Wrappers)Las Envolturas (Wrappers)Las Envolturas (Wrappers)Las Envolturas (Wrappers)Las Envolturas (Wrappers)Las Envolturas (Wrappers)Las Envolturas (Wrappers)Las Envolturas (Wrappers)
8/3/2019 5 Seminario Java
81/220
Son clases con mtodos que permiten hacerconversiones entre tipos de datos.Los tipos de datos primitivos no forman partede ninguna jerarqua de clases y se pasan porvalor a los mtodos.
Java proporciona clases para envolver cadauno de los t ipos primit ivos transformandolosen objetos referenciables .
Jerarqua de Clases NumberJerarqua de Clases NumberJerarqua de Clases NumberJerarqua de Clases NumberJerarqua de Clases NumberJerarqua de Clases NumberJerarqua de Clases NumberJerarqua de Clases Number
8/3/2019 5 Seminario Java
82/220
Short
$ MIN_VALUE : s ho rt = - 32 76 8
$ MAX_VALU E : sho rt = 32 767
valu e : s hort
( from lang)
Num b er
$ s erialVersionU ID : long = - 87424488 24652 07896 5L
intValu e() : int
longValue() : long
floatValu e() : float
dou bleValue() : dou ble
byteValue() : byte
s hortValue() : s hort
(from lan g)
Byte
$ MIN_VALU E : byte = - 128
$ MAX_VALU E : byte = 1 27
value : byte
(from lan g)
Integer
( from la ng)
Long
( from la ng)
Float
( f rom l ang)
Double
( f rom l ang)
Utilizacin de EnvolturasUtilizacin de EnvolturasUtilizacin de EnvolturasUtilizacin de EnvolturasUtilizacin de EnvolturasUtilizacin de EnvolturasUtilizacin de EnvolturasUtilizacin de Envolturas
8/3/2019 5 Seminario Java
83/220
Crear la referencia a la envoltura:Float NumeroFlotante;
Crear el objeto:NumeroFlotante = new Float(3.15);NumeroFlotante = new Float("3 .15");
Utilizar los mtodos:double valor = NumeroFlotante.doubleValue();
String strvalor = NumeroFlotante.toString();
Ejercicios ...Ejercicios ...Ejercicios ...Ejercicios ...Ejercicios ...Ejercicios ...Ejercicios ...Ejercicios ...
8/3/2019 5 Seminario Java
84/220
Crear una GUI.Utilizar las
Envolturas.
El Paquete AWTEl Paquete AWTEl Paquete AWTEl Paquete AWTEl Paquete AWTEl Paquete AWTEl Paquete AWTEl Paquete AWT
8/3/2019 5 Seminario Java
85/220
Abstract WindowAbstract Window
ToolkitToolkit
El paquete AWTEl paquete AWTEl paquete AWTEl paquete AWTEl paquete AWTEl paquete AWTEl paquete AWTEl paquete AWT
8/3/2019 5 Seminario Java
86/220
El AWT es un conjunto completo deelementos de interfaz de usuario que incluyeventanas, mens, botones, casillas de
verificacin, barras de desplazamiento, etc.Incluye el manejo de contenedores.
Incluye el sistema de control de eventos.Mecanismos para distribucin de componentesen la pantalla.
Jerarqua Parcial del AWTJerarqua Parcial del AWTJerarqua Parcial del AWTJerarqua Parcial del AWTJerarqua Parcial del AWTJerarqua Parcial del AWTJerarqua Parcial del AWTJerarqua Parcial del AWT
8/3/2019 5 Seminario Java
87/220
Component
(from awt)
Canvas
(from awt)
Container
(from awt)
TextComponent
(from awt)Button
(from awt)
Panel
(from awt)
Window
(from awt)
TextField
(from awt)
Applet
(f rom apple t)
Frame
(from awt)
Dialog
(from awt)
Componentes (La clase Component)Componentes (La clase Component)Componentes (La clase Component)Componentes (La clase Component)Componentes (La clase Component)Componentes (La clase Component)Componentes (La clase Component)Componentes (La clase Component)
8/3/2019 5 Seminario Java
88/220
Un componente es un elemento grfico quesirve de interfaz al usuario de una aplicacin.A los componentes tambin se le llamancontroles.La clase Component es una clase abstracta que
define los elementos comunes de cadacomponente, como el color, tamao, mtodoscomo mostrar, manejar eventos, etc.
Algunos Mtodos de ComponentAlgunos Mtodos de ComponentAlgunos Mtodos de ComponentAlgunos Mtodos de ComponentAlgunos Mtodos de ComponentAlgunos Mtodos de ComponentAlgunos Mtodos de ComponentAlgunos Mtodos de Component
8/3/2019 5 Seminario Java
89/220
boolean action(Event,Object)Rectangle bounds()
synchronized void disable()void enable(boolean condicion)synchronized void enable()Color getBackground()
Font getFont()Color getForeground()
Container getParent()boolean handleEvent(Event evt)
synchronized void hide()boolean keyDown(Event evt, int key)boolean keyUp(Event evt, int key)boolean mouseDown(Event evt, int x,
int y)boolean mouseDrag(Event evt, int x,int y)boolean mouseEnter(Event evt, int x,
int y)
Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...
8/3/2019 5 Seminario Java
90/220
boolean mouseExit(Event evt, int x, int y)boolean mouseMove(Event evt, int x, int y)boolean mouseUp(Event evt, int x, int y)void move(int x, int y)
void nextFocus()void requestFocus()void setBackground(Color)void setForeground(Color)
void show()
Contenedores (La clase Container)Contenedores (La clase Container)Contenedores (La clase Container)Contenedores (La clase Container)Contenedores (La clase Container)Contenedores (La clase Container)Contenedores (La clase Container)Contenedores (La clase Container)
8/3/2019 5 Seminario Java
91/220
Un contenedor es un componente quepuede incluir a otros componentes
(incluso a otros contenedores).Todos los contenedores del paqueteawt derivan de la clase abstractaContainer.Los principales contenedores son:
Panel, ScrollPane, Window.
Algunos Mtodos de la Clase ContainerAlgunos Mtodos de la Clase ContainerAlgunos Mtodos de la Clase ContainerAlgunos Mtodos de la Clase ContainerAlgunos Mtodos de la Clase ContainerAlgunos Mtodos de la Clase ContainerAlgunos Mtodos de la Clase ContainerAlgunos Mtodos de la Clase Container
8/3/2019 5 Seminario Java
92/220
Component add(String info, Componentcomp)Component add(Component comp, int pos)Component add(Component comp)
int countComponents()void remove(Component comp)void setLayout(LayoutManager)
Cmo aadir componentes a un contenedor?Cmo aadir componentes a un contenedor?Cmo aadir componentes a un contenedor?Cmo aadir componentes a un contenedor?Cmo aadir componentes a un contenedor?Cmo aadir componentes a un contenedor?Cmo aadir componentes a un contenedor?Cmo aadir componentes a un contenedor?
8/3/2019 5 Seminario Java
93/220
Mtodo add(...):add(Componente);
Cmo distribuir los componentes en elCmo distribuir los componentes en elCmo distribuir los componentes en elCmo distribuir los componentes en elCmo distribuir los componentes en elCmo distribuir los componentes en elCmo distribuir los componentes en elCmo distribuir los componentes en elcontenedor?contenedor?contenedor?contenedor?contenedor?contenedor?contenedor?contenedor?
8/3/2019 5 Seminario Java
94/220
Los Administradores de Diseo:Un administrador de diseo es un objeto que controla eltamao y posicin de los componentes de un contenedor.
Por defecto, todos los objetos Container tiene un objetoLayoutManager que controla su distribucin.Para los objetos de la clase Panel, el controlador dedisposicin por defecto es un objeto de la clase FlowLayout.
Para los objetos de la clase Window, el controlador dedisposicin por defecto es un objeto de la clase
BorderLayout.
Ejemplos de los Administradores de DiseoEjemplos de los Administradores de DiseoEjemplos de los Administradores de DiseoEjemplos de los Administradores de DiseoEjemplos de los Administradores de DiseoEjemplos de los Administradores de DiseoEjemplos de los Administradores de DiseoEjemplos de los Administradores de Diseo
8/3/2019 5 Seminario Java
95/220
Tipos de Administradores de DiseoTipos de Administradores de DiseoTipos de Administradores de DiseoTipos de Administradores de DiseoTipos de Administradores de DiseoTipos de Administradores de DiseoTipos de Administradores de DiseoTipos de Administradores de Diseo
8/3/2019 5 Seminario Java
96/220
FlowLayoutBorderLayoutCardLayoutGridLayoutGridBagLayout
Administradores Definidos por el ProgramadorPosicionamiento Absoluto
FlowLayoutFlowLayoutFlowLayoutFlowLayoutFlowLayoutFlowLayoutFlowLayoutFlowLayout
8/3/2019 5 Seminario Java
97/220
Coloca los componentes en filamientras quepan en el contenedor, en
este ltimo caso los coloca en lasiguiente fila.El orden en que se ubican es segn elorden en que se agreguen alcontenedor.
setLayout(new FlowLayout());
BorderLayoutBorderLayoutBorderLayoutBorderLayoutBorderLayoutBorderLayoutBorderLayoutBorderLayout
8/3/2019 5 Seminario Java
98/220
Coloca y ajusta el tamao de loscomponentes de manera que llenen
completamente el contenedor.BorderLayout tiene cinco reas: North,South, East, West, y Center.setLayout(new BorderLayout());
Para adicionar los componentes:
add("North",botonOk);
CardLayoutCardLayoutCardLayoutCardLayoutCardLayoutCardLayoutCardLayoutCardLayout
8/3/2019 5 Seminario Java
99/220
CardLayout ayuda a manejar dos o mscomponentes (normalmente ejemplares de laclase Panel) que comparten el mismo espacio.
Cada componente tiene un CardLayout que lomaneja como si jugaran a cartas o lascolocaran en una pila, donde slo es visible lacarta superior.Se puede elegir la carta que se est mostrando.
Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...
8/3/2019 5 Seminario Java
100/220
setLayout(new CardLayout());Para adicionar el componente:
add("nombre", componente);Para moverse entre los componentes:public void first(Container parent)
public void next(Container parent)
public void previous(Container parent)
public void last(Container parent)
public void show(Container parent, String name)
GridLayoutGridLayoutGridLayoutGridLayoutGridLayoutGridLayoutGridLayoutGridLayout
8/3/2019 5 Seminario Java
101/220
Coloca los componentes en filas ycolumnas segn el mtodo constructor
elegido y los parmetros especificados.Constructores:public GridLayout(int rows, int columns)
public GridLayout(int rows, int columns, inthorizontalGap, int verticalGap)
setLayout(new GridLayout(2,3));
GridBagLayoutGridBagLayoutGridBagLayoutGridBagLayoutGridBagLayoutGridBagLayoutGridBagLayoutGridBagLayout
8/3/2019 5 Seminario Java
102/220
Es el ms flexible de los administradores dediseo.En este administrador los componentes no
estn restringidos a celdas e incluso puedenocupar ms de una celda.
Las caractersticas y restricciones para cadacomponente que se agregar al contenedorcon este layout se especifican por medio de un
objeto GridBagConstrains
Posicionamiento AbsolutoPosicionamiento AbsolutoPosicionamiento AbsolutoPosicionamiento AbsolutoPosicionamiento AbsolutoPosicionamiento AbsolutoPosicionamiento AbsolutoPosicionamiento Absoluto
8/3/2019 5 Seminario Java
103/220
Los componentes se pueden ubicar dela forma que lo determine el
programador, sin necesidad de utilizarun administrador de diseo
Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...
8/3/2019 5 Seminario Java
104/220
Se pone el administrador en null:setLayout(null);
Se adicionan los componentes:add(botonOK);
Se ubican y se dimensionan:botonOk.reshape(x,y,ancho,alto);
Los Componentes del AWTLos Componentes del AWTLos Componentes del AWTLos Componentes del AWTLos Componentes del AWTLos Componentes del AWTLos Componentes del AWTLos Componentes del AWT
8/3/2019 5 Seminario Java
105/220
Clases:ButtonCheckbox
ChoiceLabelListScrollbarCanvasTextFieldPanelTextArea
Button: Botones de AccinButton: Botones de AccinButton: Botones de AccinButton: Botones de AccinButton: Botones de AccinButton: Botones de AccinButton: Botones de AccinButton: Botones de Accin
8/3/2019 5 Seminario Java
106/220
Constructores:Button()Button(String)
Mtodos:String getLabel()void setLabel(String)
Label: Etiquetas de TextoLabel: Etiquetas de TextoLabel: Etiquetas de TextoLabel: Etiquetas de TextoLabel: Etiquetas de TextoLabel: Etiquetas de TextoLabel: Etiquetas de TextoLabel: Etiquetas de Texto
8/3/2019 5 Seminario Java
107/220
Constructores:Label()Label(String)
Label(String, int)
Mtodos:getText()
setText(String)getAlignment()
setAlignment(int)
Label.RIGHT, Label.LEFT, Label.CENTER
Checkbox: Casillas de Verificacin y Botones deCheckbox: Casillas de Verificacin y Botones deCheckbox: Casillas de Verificacin y Botones deCheckbox: Casillas de Verificacin y Botones deCheckbox: Casillas de Verificacin y Botones deCheckbox: Casillas de Verificacin y Botones deCheckbox: Casillas de Verificacin y Botones deCheckbox: Casillas de Verificacin y Botones deRadioRadioRadioRadioRadioRadioRadioRadio
8/3/2019 5 Seminario Java
108/220
Constructores:Checkbox()Checkbox(String)
Checkbox(String,CheckboxGroup,boolean)
Mtodos:String getLabel()void setLabel(String)boolean getState()void setState(boolean)
TextField: Campos de TextoTextField: Campos de TextoTextField: Campos de TextoTextField: Campos de TextoTextField: Campos de TextoTextField: Campos de TextoTextField: Campos de TextoTextField: Campos de Texto
8/3/2019 5 Seminario Java
109/220
Constructores:TextField(int)TextField(String,int)
Mtodos:void setEchoCharacter(char)String getText()
void setText(String)int getColumns()void Select(int ,int)
void SelectAll()void setEditable(boolean)
Choice: Combos de SeleccinChoice: Combos de SeleccinChoice: Combos de SeleccinChoice: Combos de SeleccinChoice: Combos de SeleccinChoice: Combos de SeleccinChoice: Combos de SeleccinChoice: Combos de Seleccin
8/3/2019 5 Seminario Java
110/220
Constructores:Choice()
Mtodos:void addItem(String)int countItems()String getItem(int )
int getSelectedIndex()String getSelectedItem()void select(String)
void select(int)
List: Listas de SeleccinList: Listas de SeleccinList: Listas de SeleccinList: Listas de SeleccinList: Listas de SeleccinList: Listas de SeleccinList: Listas de SeleccinList: Listas de Seleccin
8/3/2019 5 Seminario Java
111/220
Constructores:List()List(int filas, boolean multipleseleccin)
Mtodos:addItem(String, int pos)addItem(String)
void clear()int countItems()String getItem(int pos)void delItem(int pos)
int getSelectedIndex()
Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...
8/3/2019 5 Seminario Java
112/220
Mtodos:int [] getSelectedIndexes()String getSelectedItem()String[] getSelectedItems()void select(int pos)
Panel: Objeto ContenedorPanel: Objeto ContenedorPanel: Objeto ContenedorPanel: Objeto ContenedorPanel: Objeto ContenedorPanel: Objeto ContenedorPanel: Objeto ContenedorPanel: Objeto Contenedor
8/3/2019 5 Seminario Java
113/220
Constructor:Panel()
Crear el Panel:Panel panel1;panel1 = new Panel();
Adicionar componentes:panel1.add(Component);
TextArea: Areas de TextoTextArea: Areas de TextoTextArea: Areas de TextoTextArea: Areas de TextoTextArea: Areas de TextoTextArea: Areas de TextoTextArea: Areas de TextoTextArea: Areas de Texto
8/3/2019 5 Seminario Java
114/220
Constructores:TextArea()TextArea(int filas, int columnas)Textarea(String, int filas, int columnas)
TextArea(String)
Mtodos:void appendText(String)int getColumns()int getRows()
void replaceText(string, int inicio, int fin)
Ejercicios ...Ejercicios ...Ejercicios ...Ejercicios ...Ejercicios ...Ejercicios ...Ejercicios ...Ejercicios ...
8/3/2019 5 Seminario Java
115/220
Manejo deComponentes.
Administradoresde Diseo.
MANIPULACION DE EVENTOSMANIPULACION DE EVENTOSMANIPULACION DE EVENTOSMANIPULACION DE EVENTOSMANIPULACION DE EVENTOSMANIPULACION DE EVENTOSMANIPULACION DE EVENTOSMANIPULACION DE EVENTOS
8/3/2019 5 Seminario Java
116/220
El Ratn y el TecladoEl Ratn y el Teclado
Programacin con EventosProgramacin con EventosProgramacin con EventosProgramacin con EventosProgramacin con EventosProgramacin con EventosProgramacin con EventosProgramacin con Eventos
8/3/2019 5 Seminario Java
117/220
Interfaces Grficas de Usuario (GUI) comogeneradoras de eventos.Los objetos esperan a que ocurran eventos
para "actuar" de manera especfica.El flujo de control del programa ya no essecuencial, sino ms bien interacciones entreagentes externos a la palicacin con losobjetos de software.
Modelos de Manipulacin de EventosModelos de Manipulacin de EventosModelos de Manipulacin de EventosModelos de Manipulacin de EventosModelos de Manipulacin de EventosModelos de Manipulacin de EventosModelos de Manipulacin de EventosModelos de Manipulacin de Eventos
8/3/2019 5 Seminario Java
118/220
El modelo porherencia.
El modelo pordelegacin.
El Modelo por HerenciaEl Modelo por HerenciaEl Modelo por HerenciaEl Modelo por HerenciaEl Modelo por HerenciaEl Modelo por HerenciaEl Modelo por HerenciaEl Modelo por Herencia
8/3/2019 5 Seminario Java
119/220
Aprovecha la jerarqua de clases paratener clases especializadas en manejareventos.Mientras que el mtodo de la clase quemaneja los eventos, no indique que se
procese el evento, este subir por elrbol de objetos, hasta que algn
objeto lo detecte y lo procese.
Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...
8/3/2019 5 Seminario Java
120/220
Versiones anteriores a java 1.1 utilizan este modelopara manejar los eventos.Slo subclases de Component manejan eventossobreescribiendo el mtodo action(), para botones y losotros componentes, y handleEvent() para las barras dedesplazamiento.El retorno de "true" termina de procesar el evento,mientras que "false" sigue propagando el evento.
Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...
8/3/2019 5 Seminario Java
121/220
En este modelo los eventos sonentregados a los componentes, sinimportar que puedan ser manejados ono.Por este motivo NO es el modelo ms
adecuado para manejar eventos.
Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...
8/3/2019 5 Seminario Java
122/220
Botn
Panel
Area de Texto
Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...
8/3/2019 5 Seminario Java
123/220
El Modelo por DelegacinEl Modelo por DelegacinEl Modelo por DelegacinEl Modelo por DelegacinEl Modelo por DelegacinEl Modelo por DelegacinEl Modelo por DelegacinEl Modelo por Delegacin
8/3/2019 5 Seminario Java
124/220
A partir de la versin 1.1 de Java, se reemplaza elmodelo de herencia.En el modelo por delegacin, objetos de cualquier tipopueden registrarse como sensibles a eventos (Listeners)realizados sobre otros objetos fuente.Las propiedades del evento (Event), son propagadas delobjeto fuente al Listener mediante una llamada a unmtodo del Listener.
Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...
8/3/2019 5 Seminario Java
125/220
Es el objeto fuente quien recibedirectamente el evento de un agenteexterno y verifica si "es de inters" deuno o ms Listeners.Se crea un objeto evento y llama al
mtodo apropiado de cada Listener"interesado" para pasarle el evento.
Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...
8/3/2019 5 Seminario Java
126/220
Algunos Tipos de ListenersAlgunos Tipos de ListenersAlgunos Tipos de ListenersAlgunos Tipos de ListenersAlgunos Tipos de ListenersAlgunos Tipos de ListenersAlgunos Tipos de ListenersAlgunos Tipos de Listeners
8/3/2019 5 Seminario Java
127/220
Tipos Descripcin
WindowListener Eventos con las ventanas(cerrar una ventana)
MouseListener Eventos al presionar elmouse sobre componentes
MouseMotionListener Movimiento del Mouse
sobre componentesComponentListener Ocultamiento o visibilidad
de los componentesFocusListener El componente obtiene el
foco
ListSelectionListener Seleccin de items detablas o listas
ActionListener Clicks sobre botones,Enter sobre campos, etc.
Ejemplo de ActionListenerEjemplo de ActionListenerEjemplo de ActionListenerEjemplo de ActionListenerEjemplo de ActionListenerEjemplo de ActionListenerEjemplo de ActionListenerEjemplo de ActionListener
import java.awt.*;
8/3/2019 5 Seminario Java
128/220
import java.applet.*;
import java.awt.event.*;
public class Beeper extends Applet implements ActionListener{
Button button;
TextField campo;
public void init() {
button = new Button("Click Me");
campo = new TextField(50);
add(button);
add(campo);
campo.setEditable(false);button.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button)
campo.setText("Se Presion el Botn"); }}
Ejemplo de MouseListenerEjemplo de MouseListenerEjemplo de MouseListenerEjemplo de MouseListenerEjemplo de MouseListenerEjemplo de MouseListenerEjemplo de MouseListenerEjemplo de MouseListener
public class MouseEventDemo ... implements MouseListener {
8/3/2019 5 Seminario Java
129/220
...//where initialization occurs:
//Register for mouse events on blankArea and applet (panel).
blankArea.addMouseListener(this);addMouseListener(this);
...
public void mousePressed(MouseEvent e) {
saySomething("Mouse pressed; # of clicks: "
+ e.getClickCount(), e);
}
public void mouseReleased(MouseEvent e) {saySomething("Mouse released; # of clicks: "
+ e.getClickCount(), e);
}
...
Ejercicios ...Ejercicios ...Ejercicios ...Ejercicios ...Ejercicios ...Ejercicios ...Ejercicios ...Ejercicios ...
8/3/2019 5 Seminario Java
130/220
Eventos porHerencia.
Eventos porDelegacin.
EL LENGUAJE DE PROGRAMACION JAVAEL LENGUAJE DE PROGRAMACION JAVAEL LENGUAJE DE PROGRAMACION JAVAEL LENGUAJE DE PROGRAMACION JAVAEL LENGUAJE DE PROGRAMACION JAVAEL LENGUAJE DE PROGRAMACION JAVAEL LENGUAJE DE PROGRAMACION JAVAEL LENGUAJE DE PROGRAMACION JAVAPARTE IIPARTE IIPARTE IIPARTE IIPARTE IIPARTE IIPARTE IIPARTE II
8/3/2019 5 Seminario Java
131/220
Clases, Objetos,Clases, Objetos,Mtodos,Interfaces, ...Mtodos,Interfaces, ...
Clases en JavaClases en JavaClases en JavaClases en JavaClases en JavaClases en JavaClases en JavaClases en Java
8/3/2019 5 Seminario Java
132/220
Las clases permiten definir la estructuray comportamiento que van a tener losobjetos.Declaracin:
Modificador class NombreClase extends NombreSuperClase implemets
NombreInterface { Variables; mtodos; }
Lo subrayado es opcional.
ModificadoresModificadoresModificadoresModificadoresModificadoresModificadoresModificadoresModificadores
8/3/2019 5 Seminario Java
133/220
public: La clase se puede accesar por fuera delpaquete en que se encuentra.final: La clase no puede ser una superclase.
abstract: La clase solo tiene la declaracin delos mtodos pero no estn implementados aun.No se permite crear instancias de este tipo declases.
Variables de InstanciaVariables de InstanciaVariables de InstanciaVariables de InstanciaVariables de InstanciaVariables de InstanciaVariables de InstanciaVariables de Instancia
8/3/2019 5 Seminario Java
134/220
Las variables de instancia son aquellasque se encuentran declaradas dentro dela clase.Estas variables pueden ser declaradas apartir de los t ipos primit ivos o a partir
de otras clases.
MtodosMtodosMtodosMtodosMtodosMtodosMtodosMtodos
8/3/2019 5 Seminario Java
135/220
Los mtodos son las operaciones quedenotan el comportamiento de losobjetos del tipo de clase.Declaracin:
EspecificadorDeAcceso Modificador TipoRetorno NombreMtodo
(parmetros) throws ListaExcepciones
Lo subrayado es opcional.
Especificadores de AccesoEspecificadores de AccesoEspecificadores de AccesoEspecificadores de AccesoEspecificadores de AccesoEspecificadores de AccesoEspecificadores de AccesoEspecificadores de Acceso
8/3/2019 5 Seminario Java
136/220
Sirven para restringir el acceso a un mtodo.
public: El mtodo puede ser accesado por todas las clases sinimportar su jerarqua o su paquete.protected: El mtodo solo puede ser accesado por las clases delpaquete actual. Pero no por otras clases de otro paquete.
friendly: Mtodos accesibles a la clase actual y a clases que sehereden de esta clase.private: Solo pueden ser vistas dentro de la misma clase.private protected: se puede accesar por la clase y cualquier subclasepero no al resto del paquete ni a ninguna clase por fuera del paquete.
Modificadores de AccesoModificadores de AccesoModificadores de AccesoModificadores de AccesoModificadores de AccesoModificadores de AccesoModificadores de AccesoModificadores de Acceso
8/3/2019 5 Seminario Java
137/220
Permiten establecer las propiedades de un mtodo, tales como
donde ser visible y como las subclases de la clase interactuarncon este.
static: Los mtodos y variables se comparten para las diferentesinstancias de la clase.abstract: mtodos declarados pero no implementados en la clase.final: Cuando se usa permite que los mtodos de una clase no seanredefinidas en las subclases.
native: Mtodos que se quieren usar pero que no estn escritos enjava.Synchronized: Mtodo sincronizado para el manejo de hilos.
Invocacin de MtodosInvocacin de MtodosInvocacin de MtodosInvocacin de MtodosInvocacin de MtodosInvocacin de MtodosInvocacin de MtodosInvocacin de Mtodos
8/3/2019 5 Seminario Java
138/220
Para invocar un mtodo de un objetose necesita especificar:A qu objeto pertenece el mtodo.Qu mtodo es el que se invocara.Los parmetros requeridos por el mtodo.
Para la invocacin de mtodos seutiliza el operador punto (.)
Objeto.mtodo(parmetros);
Clases Abstractas en JavaClases Abstractas en JavaClases Abstractas en JavaClases Abstractas en JavaClases Abstractas en JavaClases Abstractas en JavaClases Abstractas en JavaClases Abstractas en Java
Una clase abstracta es aquella clase que define
8/3/2019 5 Seminario Java
139/220
Una clase abstracta es aquella clase que define
uno o ms mtodos abstractos.Las clases abstractas no se pueden instanciar.
Un mtodo abstracto se declara pero no seimplementa. Este mtodo se debe implementaren las clases derivadas.
Para su definicin se utiliza la palabrareservada abstract.
El Constructor de ClaseEl Constructor de ClaseEl Constructor de ClaseEl Constructor de ClaseEl Constructor de ClaseEl Constructor de ClaseEl Constructor de ClaseEl Constructor de Clase
8/3/2019 5 Seminario Java
140/220
Es un mtodo de clase que tiene el mismonombre de la clase.Este mtodo es utilizado para inicializar las
variables de instancia de la clase.El mtodo constructor es invocadoautomticamente al crear instancias de la clasecon el operador new.El constructor no puede retornar valores.
Creacin de ObjetosCreacin de ObjetosCreacin de ObjetosCreacin de ObjetosCreacin de ObjetosCreacin de ObjetosCreacin de ObjetosCreacin de Objetos
8/3/2019 5 Seminario Java
141/220
Para crear un objeto de una clase ytener una variable de referencia seutiliza el operador new.Sintaxis:
NombreClase objeto= new NombreClase();
Ejemplo:Circulo objetocirculo = new Circulo();
Herencia de ClasesHerencia de ClasesHerencia de ClasesHerencia de ClasesHerencia de ClasesHerencia de ClasesHerencia de ClasesHerencia de Clases
8/3/2019 5 Seminario Java
142/220
Para utilizar herencia se necesita definiruna clase base o superclase y una clasederivada que se extienda de lasuperclase.Esquema general:
class superclase { ... }
class derivada extends superclase { ... }
Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...Continuacin ...
8/3/2019 5 Seminario Java
143/220
La real potencia de la herencia no essolo el hecho de adquisicin depropiedades y mtodos de lasuperclase, sino la facilidad de especializar la subclase con mtodos
y propiedades adicionales.En el caso de los mtodos se permitir
redefinir los heredados (polimorfismo).
Sobreescritura de MtodosSobreescritura de MtodosSobreescritura de MtodosSobreescritura de MtodosSobreescritura de MtodosSobreescritura de MtodosSobreescritura de MtodosSobreescritura de Mtodos
8/3/2019 5 Seminario Java
144/220
Los mtodos pueden sobreescribirse en cadauna de las subclases de una superclase, demanera que cuando sea invocado, se ejecute
de acuerdo a la subclase del objeto en lainvocacin.En algunos casos es necesario hacer referencia
a las mtodos de la superclase, en estos casoses necesario utilizar (this y super).
Sobrecarga de MtodosSobrecarga de MtodosSobrecarga de MtodosSobrecarga de MtodosSobrecarga de MtodosSobrecarga de MtodosSobrecarga de MtodosSobrecarga de Mtodos
8/3/2019 5 Seminario Java
145/220
Los mtodos dentro de una misma clasepueden llamarse con el mismo nombre.La diferencia debe encontrarse en losparmetros.Esta diferenciacin puede estar en los
tipos de datos, la cantidad o el ordende los parmetros.
InterfacesInterfacesInterfacesInterfacesInterfacesInterfacesInterfacesInterfaces
8/3/2019 5 Seminario Java
146/220
Una Interface es una clase que defineun conjunto de mtodos, pero no losimplementa.Una clase que implementa la interfacecumple con implementar todos los
mtodos de la interface para agregaralgn comportamiento.
Ejercicios ...Ejercicios ...Ejercicios ...Ejercicios ...Ejercicios ...Ejercicios ...Ejercicios ...Ejercicios ...
8/3/2019 5 Seminario Java
147/220
Declaracin deClases.Herencia deClases.Polimorfismo.
Clases Abstractas.
Introduccin a lasIntroduccin a lasIntroduccin a lasIntroduccin a lasIntroduccin a lasIntroduccin a lasIntroduccin a lasIntroduccin a las
Bases de DatosBases de DatosBases de DatosBases de DatosBases de DatosBases de DatosBases de DatosBases de DatosRelacionalesRelacionalesRelacionalesRelacionalesRelacionalesRelacionalesRelacionalesRelacionales
8/3/2019 5 Seminario Java
148/220
Conceptos BsicosConceptos Bsicos
Una base de datos es un conjunto de datosorganizados de tal manera que facilite la extraccin de
Bases de DatosBases de DatosBases de DatosBases de DatosBases de DatosBases de DatosBases de DatosBases de Datos
8/3/2019 5 Seminario Java
149/220
g q
informacin.El DBMS es el conjunto de herramientas de softwareque administra el acceso a los datos, permitiendo su
almacenamiento, consulta y actualizacin.
Cliente/ servidor implica distribucin de aplicacionesy/ o datos en una red de computadoras.
Plataforma Cliente ServidorPlataforma Cliente ServidorPlataforma Cliente ServidorPlataforma Cliente ServidorPlataforma Cliente ServidorPlataforma Cliente ServidorPlataforma Cliente ServidorPlataforma Cliente Servidor
8/3/2019 5 Seminario Java
150/220
y p
Componentes:Cliente (presentacin y GUI)Servidor (DBMS,WEB,GroupWare)Middleware (software que corre tanto en el cliente comoen el servidor. Protocolos de transporte, Sistema operativode red, Servicios)
Cliente
S i i
Componentes Cliente/ ServidorComponentes Cliente/ ServidorComponentes Cliente/ ServidorComponentes Cliente/ ServidorComponentes Cliente/ ServidorComponentes Cliente/ ServidorComponentes Cliente/ ServidorComponentes Cliente/ Servidor
8/3/2019 5 Seminario Java
151/220
DBMS
Servicios
ODBC,JDBC,HTTP
Transporte
TCP/IP
OS
Middleware
Es un modelo de datos basado en dos teorasmatemticas: La teora de relaciones y la Lgica de
Modelo RelacionalModelo RelacionalModelo RelacionalModelo RelacionalModelo RelacionalModelo RelacionalModelo RelacionalModelo Relacional
8/3/2019 5 Seminario Java
152/220
predicados de primer orden.Presentado por Codd en 1970.Este modelo presenta una estructura y reglas deintegridad.
8/3/2019 5 Seminario Java
153/220
Operaciones RelacionalesOperaciones RelacionalesOperaciones RelacionalesOperaciones RelacionalesOperaciones RelacionalesOperaciones RelacionalesOperaciones RelacionalesOperaciones Relacionales
Restriccin o Seleccin.Proyeccin.
8/3/2019 5 Seminario Java
154/220
y
Producto cartesiano.Unin.
Diferencia.Interseccin.Conjuncin o Join Relacional.
Asignacin, Insercin, Eliminacin y Actualizacin.
Diseo de Bases de DatosDiseo de Bases de DatosDiseo de Bases de DatosDiseo de Bases de DatosDiseo de Bases de DatosDiseo de Bases de DatosDiseo de Bases de DatosDiseo de Bases de Datos
Dos etapas en el diseo:Diseo lgico.
8/3/2019 5 Seminario Java
155/220
Diseo fsico.El diseo lgico es independiente de la tecnologa autilizar
El diseo fsico es la implementacion del diseo lgicoen una tecnologa de bases de datos particular.
El modelamiento de datos es la principal tcnica parael diseo lgico de datos.
Modelamiento E/ RModelamiento E/ RModelamiento E/ RModelamiento E/ RModelamiento E/ RModelamiento E/ RModelamiento E/ RModelamiento E/ R
8/3/2019 5 Seminario Java
156/220
Compuesto por:Entidades.Datos de las entidades.
Reglas del negocio (interrelaciones).Cardinalidad de las interrelaciones.
Diagrama E/ RDiagrama E/ RDiagrama E/ RDiagrama E/ RDiagrama E/ RDiagrama E/ RDiagrama E/ RDiagrama E/ R
8/3/2019 5 Seminario Java
157/220
Persona
#Cdula
*Nombre
*Direccin
oTelfono
Depto
#ID
*Nombre
Pertenece
ConformadoControlado por
Controla
La integridad referencial permite definir relacionesentre tablas a travs de los valores de los datos
Integridad del ModeloIntegridad del ModeloIntegridad del ModeloIntegridad del ModeloIntegridad del ModeloIntegridad del ModeloIntegridad del ModeloIntegridad del Modelo
8/3/2019 5 Seminario Java
158/220
(columnas) de estas tablas.Integridad de entidad.Integridad referencial.Integridad de columna.Integridad de usuario.
SQL: Structured Query LanguajeSQL: Structured Query LanguajeSQL: Structured Query LanguajeSQL: Structured Query LanguajeSQL: Structured Query LanguajeSQL: Structured Query LanguajeSQL: Structured Query LanguajeSQL: Structured Query Languaje
Es un lenguaje interactivo que permite realizarconsultas y actualizacin a bases de datos.
8/3/2019 5 Seminario Java
159/220
Este leguaje puede ser embebido en lenguajes comoC,C+ + , COBOL o JAVA.Lenguaje de Definicin de Datos (DDL)Lenguaje de Manipulacin de Datos (DML)Lenguaje de Control de Datos (DCL)
Sentencias:Create
SQL: DDLSQL: DDLSQL: DDLSQL: DDLSQL: DDLSQL: DDLSQL: DDLSQL: DDL
8/3/2019 5 Seminario Java
160/220
DropAlter
Create:create table NombreTabla (NombreColumna tipomodificadores, ...)
Sentencias:Select
SQL: DMLSQL: DMLSQL: DMLSQL: DMLSQL: DMLSQL: DMLSQL: DMLSQL: DML
8/3/2019 5 Seminario Java
161/220
InsertUpdateDelete
Select:select NombreColumna, ...
SQL: DMLSQL: DMLSQL: DMLSQL: DMLSQL: DMLSQL: DMLSQL: DMLSQL: DML
8/3/2019 5 Seminario Java
162/220
from NombreTablawhere Condicin
Insert:insert into NombreTabla (NombreColumna, ...) values(valor, ...)
Update:update NombreTabla
SQL: DMLSQL: DMLSQL: DMLSQL: DMLSQL: DMLSQL: DMLSQL: DMLSQL: DML
8/3/2019 5 Seminario Java
163/220
set NombreColumna= valor ...where NombreColumna = valor
Delete:delete from NombreTablawhere NombreColumna = valor
Sentencias:Grant
SQL: DCLSQL: DCLSQL: DCLSQL: DCLSQL: DCLSQL: DCLSQL: DCLSQL: DCL
8/3/2019 5 Seminario Java
164/220
RevokeCommitRollBack
Son las filas que satisfacen el resultado de una consulta(query).
El ResultSetEl ResultSetEl ResultSetEl ResultSetEl ResultSetEl ResultSetEl ResultSetEl ResultSet
8/3/2019 5 Seminario Java
165/220
El numero de filas retornadas en un result set puede serigual a cero, una o muchas.El acceso a las filas de datos se hace una por una, y de
esto se encargan los cursores.Muchos DBMS crean cursores automticamente
cuando el conjunto de resultados es generado.
Una transaccin es un conjunto de una o mssentencias SQL, que en conjunto hacen una unidad
TransaccinTransaccinTransaccinTransaccinTransaccinTransaccinTransaccinTransaccin
8/3/2019 5 Seminario Java
166/220
lgica de trabajo.Una transaccin termina cuando se hace un commit oun rollback, dependiendo de si se los SQL se
efectuaron con o sin xito.
Un procedimiento almacenado es un conjunto desentencias SQL que pueden ser llamadas bajo un
Procedimiento AlmacenadoProcedimiento AlmacenadoProcedimiento AlmacenadoProcedimiento AlmacenadoProcedimiento AlmacenadoProcedimiento AlmacenadoProcedimiento AlmacenadoProcedimiento Almacenado
8/3/2019 5 Seminario Java
167/220
nombre.EL DBMS compila el procedimiento antes dealmacenarlo, y no es recompilado en su ejecucin,
mejorando as el desempeo de su ejecucin.
MetadatosMetadatosMetadatosMetadatosMetadatosMetadatosMetadatosMetadatos
Usualmente guardamos datos en la base de datos quehacen referencia a los hechos de la vida del negocio.
8/3/2019 5 Seminario Java
168/220
Para almacenar esos datos es necesario que la base dedatos tenga en su interior las descripciones de losdatos donde se almacenaran estos hechos.
A estos datos se le llaman metadatos.
Ejercicio ...Ejercicio ...Ejercicio ...Ejercicio ...Ejercicio ...Ejercicio ...Ejercicio ...Ejercicio ...
Modelamiento E/ RModelo Relacional de
8/3/2019 5 Seminario Java
169/220
Datos
Acceso a Bases deAcceso a Bases deAcceso a Bases deAcceso a Bases deAcceso a Bases deAcceso a Bases deAcceso a Bases deAcceso a Bases deDatos Con JavaDatos Con JavaDatos Con JavaDatos Con JavaDatos Con JavaDatos Con JavaDatos Con JavaDatos Con Java
8/3/2019 5 Seminario Java
170/220
JDBC: Java DataBase ConectivityJDBC: Java DataBase Conectivity
JDBC es la API estndar de acceso a bases de datosusando el lenguaje de programacin Java.
Qu es JDBC?Qu es JDBC?Qu es JDBC?Qu es JDBC?Qu es JDBC?Qu es JDBC?Qu es JDBC?Qu es JDBC?
8/3/2019 5 Seminario Java
171/220
Esta API se incluye con el kit de desarrollo de Javaversin 1.1 y posteriores.
Sun Microsystems crea una nueva API debido a queODBC utiliza funciones de bajo nivel que no son
Java no Usa ODBC DirectamenteJava no Usa ODBC DirectamenteJava no Usa ODBC DirectamenteJava no Usa ODBC DirectamenteJava no Usa ODBC DirectamenteJava no Usa ODBC DirectamenteJava no Usa ODBC DirectamenteJava no Usa ODBC Directamente
8/3/2019 5 Seminario Java
172/220
compatibles 100% con Java, como lo son lospunteros.Sun se une a Intersolv para desarrollar un puente entre
JDBC y ODBC, ya que el acceso a bases de datos conODBC es un modelo estndar.
CGI: es un mtodo lento y adems propicia errores enlas aplicaciones, ya que requiere el uso de al menos dos
Por qu Utilizar JDBC y no CGI?Por qu Utilizar JDBC y no CGI?Por qu Utilizar JDBC y no CGI?Por qu Utilizar JDBC y no CGI?Por qu Utilizar JDBC y no CGI?Por qu Utilizar JDBC y no CGI?Por qu Utilizar JDBC y no CGI?Por qu Utilizar JDBC y no CGI?
8/3/2019 5 Seminario Java
173/220
lenguajes de programacin (Java y C C+ + ).C y C+ + no son lenguajes 100% portables.
Existen cuatro niveles de controladores JDBC.Nivel 1: Puente JDBC-ODBC.
Tipos de Controladores JDBCTipos de Controladores JDBCTipos de Controladores JDBCTipos de Controladores JDBCTipos de Controladores JDBCTipos de Controladores JDBCTipos de Controladores JDBCTipos de Controladores JDBC
8/3/2019 5 Seminario Java
174/220
Nivel 2: Parcialmente hecho en Java.Nivel 3: Protocolo de Red. 100% Java.Nivel 4: Protocolo Nativo de la BD. 100% Java.
Desarrollado por JavaSoft.Usa el driver ODBC especfico para la Base de Datos.
Nivel 1Nivel 1Nivel 1Nivel 1Nivel 1Nivel 1Nivel 1Nivel 1
8/3/2019 5 Seminario Java
175/220
Requiere que el ODBC se encuentre disponible en lamquina cliente donde se ejecuta la aplicacin JAVA.
Aplicacin
JDBC Driver Manager
Puente JDBC ODBC Cliente
Driver de Nivel 1Driver de Nivel 1Driver de Nivel 1Driver de Nivel 1Driver de Nivel 1Driver de Nivel 1Driver de Nivel 1Driver de Nivel 1
8/3/2019 5 Seminario Java
176/220
Puente JDBC-ODBC
ODBC Driver Manager
ODBC (DB2) ODBC (Oracle)
DBMS (DB2) DBMS (Oracle)
Cliente
Servidor
Utiliza JAVA para hacer llamadas al API de acceso(protocolo) del DBMS que debe estar disponible en el
li
Nivel 2Nivel 2Nivel 2Nivel 2Nivel 2Nivel 2Nivel 2Nivel 2
8/3/2019 5 Seminario Java
177/220
cliente.El cliente provee la conectividad y acceso a la base dedatos.
El driver es una implementacin parcialmente hecho enJAVA.
Driver de Nivel 2Driver de Nivel 2Driver de Nivel 2Driver de Nivel 2Driver de Nivel 2Driver de Nivel 2Driver de Nivel 2Driver de Nivel 2
Aplicacin
JDBC Driver Manager
Puente ClientePuente
8/3/2019 5 Seminario Java
178/220
PuenteJDBC-ProtocoloDBMS
JDBC-CAE
CAE (DB2) SQL*Net (Oracle)
DBMS (DB2) DBMS (Oracle)
Cliente
Servidor
PuenteJDBC-ProtocoloDBMS
JDBC-SQL*Net
Utiliza los protocolos de red que vienen con el JDKpara conectarse a un servidor.
E l id t d l i i t
Nivel 3Nivel 3Nivel 3Nivel 3Nivel 3Nivel 3Nivel 3Nivel 3
8/3/2019 5 Seminario Java
179/220
En el servidor se traducen los requerimientos atransacciones del DBMS.No requiere cdigo ejecutable en el lado del cliente (del
API de acceso al DBMS).El protocolo de red que se utiliza es genrico, por lotanto el mismo driver puede acceder a diferentesDBMS.
Driver de Nivel 3Driver de Nivel 3Driver de Nivel 3Driver de Nivel 3Driver de Nivel 3Driver de Nivel 3Driver de Nivel 3Driver de Nivel 3
Aplicacin
JDBC Driver Manager
ClienteDriver JDBC Protocolo genrico de red
8/3/2019 5 Seminario Java
180/220
Middleware Middleware
DBMS (DB2) DBMS (Oracle)
Cliente
Servidor
Driver JDBC Protocolo genrico de red
Driver completamente escrito en JAVA.Comunica directamente a la base de datos con el
protocolo de red del DBMS
Nivel 4Nivel 4Nivel 4Nivel 4Nivel 4Nivel 4Nivel 4Nivel 4
8/3/2019 5 Seminario Java
181/220
protocolo de red del DBMS.Esta comunicacin directa se implementa a travs deconexiones de red (sockets).
Driver de Nivel 4Driver de Nivel 4Driver de Nivel 4Driver de Nivel 4Driver de
Recommended