5 seminario java

Upload: aprender-libre

Post on 07-Apr-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 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