2008 05 19 POO Utilizando JAVA

download 2008 05 19 POO Utilizando JAVA

of 168

Transcript of 2008 05 19 POO Utilizando JAVA

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    1/168

    Desarrollo de Sistemas

    utilizandoJAVA

    Jess M. Olivares Ceja

    [email protected]

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    2/168

    AGENDA

    Historia de JAVA

    Iniciando el uso de JAVA

    Modelacin de la Realidad (Abstraccin)

    Elementos de Programacin Orientada a Objetos

    Elementos del Lenguaje JAVA

    Aplicaciones usando JAVA

    GUI usando SwingAppletsThreadscliente/servidorJDBC (base de datos)ServletsJSP

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    3/168

    Presentacin

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    4/168

    Historia de Java

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    5/168

    Breve historia de Java

    En 1990 James Gosl inginicia el desarroll el lenguaje OaKcomo unavariante de C++ en la empresa SUN (Stanford University Network) con laintencin de operar cualquier mecanismo informtico (como licuadoras,lavaplatos, microondas, etc.) mediante un programas sencillos y simples

    que se distribuyen a travs de una red

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    6/168

    Breve historia de Java

    En 1994 se tuvo una versin del lenguaje que sera Java y se pretendaabandonar por falta de un enfoque apropiado y para cerrarlo el equipo dedesarrollo se reuni con Scott McNealy(presidente ejecutivo de SUN)

    quien vio un gran potencial en el nuevo lenguaje y lo apoy personalmente

    hasta su lanzamiento al mercado, para esto le cambi el nombre a Javay conel propsito de utilizarlo como plataforma para desarrollos en Internet.

    En mayo de 1995 se hizo la presentacin en pblico de Java incluyndoloen el navegador Netscapegenerando as millones de copias en poco tiempo.

    Actualmente es uno de los lenguajes ms difundidos para desarrollo deaplicaciones multiplataformas que aprovechan la infraestructura de Internet

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    7/168

    Caractersticas de Java

    .java .java.java

    .class .class.class

    Mquina Virtual de Javajava.exe java appletviewer

    Hardware

    UNIX LinuxWindows Solaris

    compilacin

    carga

    ejecucin

    Java es un lenguaje Orientado a Objetosbasado en Clases, usa herenciasimple, es multiplataformae interpretado(mediante la JVM, Maquina Virtual

    de Java, Java Virtual Machine), tiene diferentes tipos de programas:consola, applets, servlets y beans; los applets y servlets se usan

    directamente en Internet

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    8/168

    Iniciando el Uso de JAVA

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    9/168

    Recursos para Utilizar Java

    Kit de desarrollo (Software Development Kit, SDK), que incluye el compiladory la mquina virtual de Java, se obtiene del sitio de SUN

    java.sun.com

    el archivo:j2sdk-1_4_2-windows-i586.exe para Win98, 2000

    jdk-1_5_0-windows-i586.exe para WinXP 1.5 o superior

    API (Application Program Interface, Interfase del Programador de Aplicaciones)

    de Java:

    java.sun.com/api

    Editar e invocador del compilador, se sugiere el uso de JCreator del sitio:

    www.jcreator.com

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    10/168

    Referencias de Java

    Almanaque de Java www.javaalmanac.com

    El Libro electrnico Thinking in Java (Bruce Eckel)www.mindview.net/Books/TIJ

    Tutorial de Java (SUN)java.sun.com/docs/books/tutorial

    Sitio de Oscar Gonzlez www.cic.ipn.mx/ute/ogonzalez

    Tutorial de Java www.ulpgc.es/otros/tutoriales/java

    Sitio de Jess Olivares www.jesusolivares.com/java

    El libro 1001 Tips para programar en Java de Mark C. Chang

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    11/168

    Instalacin del Compilador y del Editor

    La instalacin del Compilador en Windows requiere dar doble click al archivo :

    j2sdk-1_4_2-windows-i586.exeo

    jdk-1_5_0-windows-i586.exe

    (durante la instalacin se sugiere dar las opciones por omisin)

    La instalacin del Editor JCreator en Windows, se hace despus deinstalar el compilador, requiere dar doble click al archivo:

    setup.exe

    (durante la instalacin se sugiere dar las opciones por omisin)

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    12/168

    Primer programa de Java

    class Hola{

    public static voidmain(String args[]){

    System.out.println("hola amigos");}

    }

    El editor JCreator se activa mediante el icono:

    La compilacin se hace presionando el cono:

    La ejecucin se hace mediante el cono:

    versin 2.5 versin 3.5

    Hola

    public static void main(String [])

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    13/168

    Descripcin de la clase Hola

    classindica que Hola es una clase.

    publicindica que el mtodo maines visible desde la Maquina Virtual deJava (JVM, Java Virtual Machine)

    staticse utiliza para generar mtodos de clase que NO requieren de unobjeto para su ejecucin

    voidse coloca para indicar que el mtodo mainNO devuelve valores

    String []indica que el mtodo mainrecibe argumentos (de la lnea decomando al ejecutarse)

    System.out.println( )tiene la sintaxis CLASE.OBJETO.METODO y seutiliza para desplegar objetos String

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    14/168

    Entrada/Salida de la Consola

    import java.io.*;

    class Hola{

    public static voidmain(String args[])throws IOException{BufferedReader consola = new BufferedReader(

    new InputStreamReader(System.in));

    // DESPLEGA UN INDICADOR PARA LEER UN DATOSystem.out.print("Dato> ");

    // LEE UNA cadena DE LA CONSOLA

    String cadena = consola.readLine();

    // DESPLEGA LA cadena LEIDASystem.out.println("Hola " + cadena);

    }}

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    15/168

    Suma de dos nmerosimport java.io.*;

    class Hola{

    public static voidmain(String args[]) throws IOException{BufferedReader consola = new BufferedReader(new InputStreamReader(System.in));

    int a, b ;

    // LEE EL dato ASystem.out.print("Dato A> ");String cadena = consola.readLine();

    a = Integer.parseInt(cadena);

    // LEE EL dato B

    System.out.print("Dato B> ");String cadena = consola.readLine();

    b = Integer.parseInt(cadena);

    // DESPLEGA LA SUMA

    System.out.println( + a + + + b + = + (a+b));}

    }

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    16/168

    Modelacin de la Realidad

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    17/168

    REALIDADMODELO

    Abstraccin

    La Abstraccines una operacinmental que permite colocaren el plano de la mente, los detalles relevantes, de una parte

    de la realidad que interesa modelar

    (abstraer es simplificar)

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    18/168

    REALIDADMODELO

    Modelo

    Un Modeloes una representacin abstracta de una parte de larealidad

    Se utiliza para conocer, entender, predecir, simular o explicar larealidad modelada

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    19/168

    REALIDAD MODELO

    Datos

    Acciones

    Modelacin

    Los Modelos Inf ormticosgeneralmente contienen:

    (nmeros, letreros, fotos, msica)

    y (procesos, rutinas, mtodos, procedimientos, reglas)

    Datos

    Acciones

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    20/168

    Sistema de Informacin

    Datos Procesos

    Entrada Salida

    Estructura

    Un Sistema de Info rmacin es un modelo informtico con:

    entrada(s), salida(s), datos, procesos y la estructura

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    21/168

    Dos Sistemas de Informacin

    c5 8 4 5 8 4( )+*+*

    Datos: 5 8 4Procesos: * +

    Estructura: es el orden en que aplican los procesos sobre los datos(representado con las lneas continuas)

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    22/168

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    23/168

    Programacin Dirigida por Sintaxis (PDS)

    La PDS*es un mtodo quese utiliza para encontrar loselementos de un Sistemade Informacin a partir del

    lenguaje del usuario.

    Se buscan datos, procesosy estructuras

    * autor: Fernando Galindo Soria

    El sistema tiene

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    24/168

    Elementos de un Sistema de Informacin

    Los elementos de informacin encontrados son datos y acciones.

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    25/168

    Elementos de un Sistema de Informacin

    Los elementos de informacin encontrados son datos y acciones.

    Estos elementos se agrupan cuando estn relacionados en estructuras

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    26/168

    Encapsulacin

    Se llama Encapsulacin cuando se colocan juntos propiedades

    y mtodos en una unidad.Se adicionan mtodos (lneas punteadas) que permiten asignar o recuperar

    valores de las propiedades

    A partir de esta encapsulacin se genera el concepto de clase

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    27/168

    Clase: Pila de datos

    push(dato) pop()

    Con la Encapsulacin se pretende que las propiedades queden

    ocultas para el usuario de la clase.Para manejar un objeto de la clase Pila se usan

    los mtodos push(dato)para almacenar y pop()para recuperar

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    28/168

    Clase

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    29/168

    Elementos de una ClasePropiedad

    nombre

    Una Propiedades un dato de Tipo Primitivo (TDP) o un objeto.

    Por ejemplo, una variable x, nombrePersona, imagen, archivo.

    Grficamente representamos a una propiedad como un rectngulo su nombregeneralmente se escribe con minsculas,si aparece ms de una palabra,

    al inicio de cada una se escribe letra mayscula

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    30/168

    Elementos de una ClaseMtodo

    despliega()

    Un Mtodoes un proceso abstracto y contiene un conjunto finito de instrucciones.

    Grficamente representamos a un mtodo con un crculo, su nombre es similaral de las propiedades y termina con parntesis donde van los parmetros.

    Al conjunto de mtodos de una clase se le llama la Interfase de la Clase. Lasclases y mtodos de Java se encuentran descritos en la API

    (Application Program Interface) java.sun.com/api

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    31/168

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    32/168

    Clase Automovil

    class Automovil{// PROPIEDADESString color ;int velocidadMaxima ;

    // MTODOSvoid asignaColor(String _color){

    color = _color;}

    String indicaColor(){

    return color;}

    }

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    33/168

    Interfase

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    34/168

    Interfase

    Runnable

    run() stop()

    Una Interfasees un conjunto de mtodos SIN propiedades que indicaCuales son las acciones que se deben llevar a cabo pero SIN desarrollar cada

    Una de esas acciones.Se coloca con la palabra reservada de Java: implements

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    35/168

    Interfase Runnable

    interface Runnable{

    void run();void start(String cadena);

    }

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    36/168

    Objeto

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    37/168

    Objeto

    circulo

    x

    despliega()

    y

    mueve()

    Un Objetoes una instancia (caso particular) de una clase.

    El nombre de un objeto es una referencia hacia las propiedades y mtodos.Un objeto apunta hacia propiedades y mtodos y es relocalizable,

    esto significa que No apunta hacia una direccin de memoria especfica.

    Grficamente se representa de forma similar que una clase la diferencia es quegeneralmente el nombre de un objeto se inicia con minsculas.

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    38/168

    Objeto

    circulo

    despliega() mueve()

    Un Objetodebe utilizarse sin hacer referencia a las propiedades que lo forman.El acceso a sus propiedades y la recuperacin de valores debe hacerse a travs

    de sus mtodos nicamente.

    (aunque SI es posible accesar sus propiedades directamente precedidas del nombre del objeto)

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    39/168

    Objetos de la Clase Automovil

    class Agencia{public static voidmain(String args[]){// OBJETOSAutomovil autoDeportivo = new Automovil();

    Automovil camioneta = new Automovil();

    // INVOCACIN DE MTODOSautoDeportivo.asignaColor("azul");camioneta.asignaColor("rojo");

    System.out.println("autoDeportivo color " +autoDeportivo.indicaColor());System.out.println("camioneta color " +camioneta.indicaColor());

    }

    }

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    40/168

    Constructor

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    41/168

    Constructor

    Figura

    Figura()

    Un Const ructores un mtodo pblico que lleva el mismo nombre de la clasea la que pertenece.

    Se ejecuta automticamente cuando se crea una instancia de la clase (objeto),generalmente el desarrollador lo utiliza para asignar valores iniciales a las

    propiedades del objeto.En Java automticamente cada clase tiene un

    constructor con el mismo nombre de la clase sin argumentos de entrada.

    Si el usuario escribe su propio constructor entonces debe utilizarlo.

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    42/168

    Clase Automovil con un Constructor

    class Automovil{

    String color ;

    Automovil(String _color){

    color = _color;}void asignaColor(String _color){

    color = _color;

    }String indicaColor(){

    return color;}

    }class Autos{public static void main(String args[])

    {// OBJETOS DE LA CLASE Automovil USANDO EL CONSTRUCTORAutomovil autoDeportivo = new Automovil("azul");Automovil camioneta = new Automovil("rojo");

    System.out.println("autoDeportivo color " + AutoDeportivo.indicaColor());System.out.println("camioneta color " + Camioneta.indicaColor());

    }}

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    43/168

    Sobrecarga de Mtodos

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    44/168

    Sobrecarga de mtodos

    La Sobrecargase da cuando se usa en una misma clase,el mismo nombre de un mtodo pero con diferentes argumentos.

    Las operaciones de los mtodos, generalmente, son diferentes.

    Cualquier mtodo en una clase es posible sobrecargarlo, tanto losconstructores como los mtodos de clase o de instancia

    Figura

    Figura() Figura(String)

    S b d t d

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    45/168

    Sobrecarga de mtodosclass Automovil{String color ;

    Automovil(){

    color = "blanco";}

    Automovil(String _color){

    color = _color;}

    void asignaColor(String _color){

    color = _color;}String indicaColor(){

    return color;}

    }

    class Autos{public static voidmain(String args[]){

    Automovil autoDeportivo = new Automovil("azul");Automovil camioneta = new Automovil();

    System.out.println("autoDeportivo color " + AutoDeportivo.indicaColor());System.out.println("camioneta color " + Camioneta.indicaColor());

    }}

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    46/168

    Propiedades y Mtodos de Clase

    P i d d Mt d d Cl

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    47/168

    Propiedades y Mtodos de Clase

    Las Pro p iedades y Mtodos de Clase se crean una sola vez en cada clase ylos comparten los objetos (instancias) de esa clase.

    Se identifican porque los precede la palabra reservada static.

    Automovil

    static cuenta

    static Contador()

    color

    Automovil()

    asignaColor()

    indicaColor()

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    48/168

    Propiedades y Mtodos de Clase en Ejecucin

    Automovil

    static cuenta

    static Contador()

    camioneta

    color

    Automovil()

    asignaColor()

    indicaColor()

    autoDeportivo

    color

    Automovil()

    asignaColor()

    indicaColor()

    Mt d P i d d d Cl

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    49/168

    Mtodos y Propiedades de Claseclass Automovil{String color ; // PROPIEDAD DE OBJETOstatic int cuenta; // PROPIEDAD DE CLASE

    // CONSTRUCTORESAutomovil(){

    color = "blanco";cuenta++;

    }Automovil(String _color){

    color = _color;cuenta++;

    }// METODOS DE INSTANCIAvoid asignaColor(String _color){

    color = _color;}String indicaColor()

    {return color;

    }// METODO DE CLASEstatic void contador(){

    System.out.println("Creadas "+ cuenta+ " instancias");

    }

    }

    class Autos

    {public static voidmain(String args[]){// SE INVOCA AL METODO DE CLASE SIN CREAR OBJETOAutomovil.contador();Automovil.cuenta = 8;Automovil autoDeportivo = new Automovil();

    // EL METODO DE CLASE INVOCADO DESDE UN OBJETO

    autoDeportivo.contador();Automovil camioneta = new Automovil("rojo");camioneta.contador();

    System.out.println("autoDeportivo color "+ autoDeportivo.indicaColor());

    System.out.println("camioneta color "+ camioneta.indicaColor());

    Automovil.contador();}

    }

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    50/168

    Clonacin de Objetos

    Cl i

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    51/168

    Clonacin

    La Clonacin de un objeto consiste en generar una copia del mismoen otra localidad de memoria,

    en vez de solamente referenciarlo mediante otra variable.

    circulo

    x

    despliega()

    y

    mueve()

    clonCirculo

    x

    despliega()

    y

    mueve()

    apuntadorCirculo

    // COPIA DE REFERENCIACirculo apuntadorCirculo = circulo;

    Circulo circulo = new Circulo();

    // CLONACINCirculo clonCirculo = circulo.clone();

    Cl i d bj t

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    52/168

    Clonacin de un objetoclass Persona implements Cloneable{String nombre ;

    String direccion ;

    public Persona(String _nombre ,String _direccion){

    nombre = _nombre;direccion = _direccion;

    }public Object clone(){Cloneable clon = new Persona(nombre ,direccion);

    return clon;}void asignaDireccion(String _direccion){

    direccion = _direccion;}void despliega(){

    System.out.println("Nombre: " + nombre +" Direccin: " + direccion);

    }}

    Clonacin de n objeto

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    53/168

    Clonacin de un objetoclass Clon{

    public static void main(String arg[])

    {Persona juan = new Persona("Juan" ,"Lomas"); // SE CREA EL OBJETO juan

    juan.despliega(); // SE DESPLIEGAN LOS DATOS DE juanSystem.out.println("Clonando a Juan");

    Persona copiaJuan = (Persona)juan.clone(); // SE CLONA EL OBJETO juan

    Persona otroApuntadorJuan = juan; // OTRO OBJETO APUNTA A juan

    copiaJuan.asignaDireccion("Iztapalapa"); // CAMBIO DE DIRECCION AL CLONjuan.despliega(); // DESPLIEGA LOS DATOS DE juancopiaJuan.despliega(); // DESPLIEGA LOS DATOS DEL CLONotroApuntadorJuan.despliega(); // DESPLIEGA LOS DATOS DEL OTRO APUNTADOR

    otroApuntadorJuan.asignaDireccion("C.U."); // CAMBIO DE DIRECCION A juan

    juan.despliega(); // DESPLIEGA LOS DATOS DE juanotroApuntadorJuan.despliega(); // DESPLIEGA LOS DATOS DEL OTRO APUNTADOR

    }}

    Liberacin de Memoria

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    54/168

    Liberacin de Memoria

    Se hace automticamente mediante el Recolector deBasura (Garbage Collector) cuando a un objeto nadie lo

    apunta

    A diferencia de C++, JAVA no cuenta con mtodosDestructor en las clases, esto se hace automticamente

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    55/168

    Relaciones entre clases

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    56/168

    Relaciones entre Clases:

    Herencia

    ComposicinAgregacin

    Asociacin

    Las relaciones entre clases permiten la reutilizacin de cdigo

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    57/168

    Herencia

    La Herenciaes una relacin entre clases en donde la subclase clase hereda laspropiedades y mtodos de la superclase.

    Se representa mediante relaciones es_uncon una flecha con punta huecadirigida de la clase derivada a la superclase.

    Persona

    ProfesorAlumno

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    58/168

    Obtencin de las relaciones de herencia

    Las Relaciones de Herenciase obtienen mediante la generalizacin yla especializacin.

    La Generalizacinse hace a partir de un conjunto de clases y se bscauna clase que las generaliza (agrupa)

    La Especializacinse genera cuando a partir de una clase genrica seobtienen clases que son casos particulares de la misma

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    59/168

    S b it

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    60/168

    Sobreescritura

    Se le llama Sobreescri turacudndo un mtodo existente en una superclase sedeclara en una subclase y ambos tienen el mismo nombre,

    en este caso el mtodo de la clase derivada sobreescribe a la superclase.En este ejemplo el mtodo pinta() de Circulo sobrescribe al de Figura mientras que

    Triangulo utiliza el mtodo pinta() que hereda de Figura

    TrianguloCirculo

    Figura

    pinta()

    pinta()

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    61/168

    Polimorfismo

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    62/168

    Polimorfismo

    El Pol imor f ismo se da cuando un mtodo aparece en dos clases diferentescon el mismo nombre y argumentos.

    El comportamiento generalmente es diferente

    Triangulo

    Figura

    pinta()

    Circulo

    x

    Isoceles

    base

    altura

    pinta()

    Cuadrado

    y

    color

    radio

    pinta()pinta()

    lado

    Polimorfismo

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    63/168

    Polimorfismo

    // DECLARA EL ARREGLO DE OBJETOSFigura arreglo[] = new Figura[6];

    // DETERMINA QUE OBJETO SE ALMACENA EN CADA ELEMENTOarreglo[0] = new Circulo(20,30,10 ,Color.blue);arreglo[1] = new Triangulo(50,220,Color.red);arreglo[2] = new Circulo(200,100,40 ,Color.cyan);

    arreglo[3] = new Cuadrado(120,40,30,Color.green);arreglo[4] = new Triangulo(250,70,Color.gray);arreglo[5] = new Isoceles(173 ,204 ,50 ,66

    ,new Color(0100 ,150 ,0xFF));

    // LLAMA AL METODO pinta PARA CADA ELEMENTO APLICANDO POLIMORFISMOfor(int i=0; i < arreglo.length; i++)

    arreglo[i].pinta();

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    64/168

    Composicin

    ChasisLlanta

    Motor

    Automovil

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    65/168

    Composicin

    La Composic inconsiste en incluir (o formar) una clase a otra(s) como unapropiedad para crear clases complejas. En este caso se reutiliza la interfase

    de las clases componente. Las clases estn unidas mediante la relacin parte_decon una flecha con punta de rombo. Los objetos que lo componen son privados

    Llanta

    Automovil

    Motor

    Chasis

    Composicin

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    66/168

    Composicinclass Automovil{String marca ;Motor motor ;Chasis chasis ;Llanta llanta[] = new Llanta[4];;

    Automovil(String _marca)

    { marca = _marca;motor = new Motor(4);chasis = new Chasis(azul);for( int i = 0; i < llanta.length; i++ )

    llanta[i] = new Llanta(deportiva);}

    void asignaMotor(Motor _motor){

    motor = _motor;}

    }

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    67/168

    Agregacin

    La Agregacines una relacin que permite crear clases complejasmediante la agrupacin de una coleccin de una clase existente

    (es una forma ms dbil que la composicin).Las clases estn unidas mediante la relacin parte_decon una flecha con

    punta de rombo hueca. En Java las implementaciones de Collectionson ejemplos de esta relacin

    BosqueArbol

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    68/168

    Asociacin

    Cuantificacin de las Relaciones

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    69/168

    Paquetes

    Paquetes

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    70/168

    Paquetes

    Un Paquete agrupa a un conjunto de clases se indica en un programa conla palabra reservada import subdirectorio1.subdirectorio2.clase

    En la variable de ambiente CLASSPATH debe estar la ruta de la ubicacin de lasclases que forman al paquete subdirectorio1\subdirectorio2

    Escuela

    Materia

    Profesor Salon

    Alumno

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    71/168

    Paquetes definidos por el usuario

    package

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    72/168

    Accesibilidad

    Accesibilidad

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    73/168

    Accesibilidad

    La Accesibi l idadse indica con el calificador public, private, protected o abstracten las propiedades y mtodos de una clase.

    Accesibilidad Clases Subclases Paquete Todas

    public si si si si

    protected si si si

    friendly" si si

    private protected si si

    private si

    La mismaclase llama

    al mtodo

    La subclasellama al

    mtodo

    Las clases delmismo paquete

    llaman al mtodo

    Cualquierclase llama

    al mtodo

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    74/168

    Elementos del LenguajeJAVA

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    75/168

    Comentarios

    Comentarios

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    76/168

    Comentarios

    while( x < 5 ) // COMENTARIO

    En Java existen tres tipos de comentarios:

    De Res to de Lnea:

    De Var ias Lneas:

    /* COMENTARIO QUE OCUPAVARIAS LINEAS*/

    De Documentacin:

    /** programa.javaESTE ES UN COMENTARIO DE DOCUMENTACION,UTILIZADO POR EL PROGRAMA javadoc*/

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    77/168

    Palabras Reservadas

    Palabras reservadas

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    78/168

    Palabras reservadas

    Las Palabras Reservadas son aquellas que tienen un uso especfico en ellenguaje Java y No deben utilizarse como identificadores de usuario.

    Las que llevan asterisco (*) en la tabla estn reservadas para uso futuro

    abstract boolean break byte case

    catch char class *const continue

    default do double else extends

    final finally float for *future

    *generic *goto if implements import

    *inner instanceof int interface long

    native new null *operator *outerpackage protected public *rest return

    short static super switch synchronized

    this throw throws *transient try

    *var void volatile while

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    79/168

    Identificadores de Usuario

    Identificadores de usuario

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    80/168

    Identificadores de usuario

    X

    y

    $temporal

    _auxiliar

    UnaClase

    Los Ident i f icadores de Usuario se usan para nombrar variables (tipos primitivos,u objetos), mtodos o clases.

    Se escriben con una inicial que puede ser letra mayscula o minscula, subraya (_)o el signo de pesos ($) seguidos por una secuencia de letras, nmeros o subraya.Letra significa cualquier smbolo unicode que represente una letra en cualquier

    idioma, es un valor entre cero y 65536.

    La longitud mxima de un identificador es de 64 caracteres y no deben existirespacios entre los smbolos que lo forman

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    81/168

    Tipos de Datos Primitivos

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    82/168

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    83/168

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    84/168

    Operadores de Java

    Operadores

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    85/168

    Operadores

    Los Operadores son smbolos (o grupos de smbolos) que representanacciones que se aplican sobre literales o variables de Java.

    En la tabla se muestran los operadores de Java con su precedencialos de precedencia menor se ejecutan primero de izquierda a derecha

    PRECEDENCIA OPERADORES1 . [ ] ( ) new

    2 ++ -- ! ~ instanceof

    3 * / %4 + -

    5 > >>>

    6 < > =

    7 == !=

    8 &

    9 ^10 |

    11 &&

    12 ||

    13 ? :

    14 = op=

    15 ,

    Los operadores son representaciones con una

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    86/168

    bolita y varias lneas que entran dependiendodel nmero de parmetros que requieren.

    Ejemplo:

    ~

    Ejemplo:

    5

    4

    3

    8

    20

    5 + 4 + 3 + 8 = 20

    EJEMPLO DE PROCEDENCIA DE OPERADORES

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    87/168

    Sea la expresin: x = 5 * 8 3 / 2 + 6 > 40

    En esta se colocan debajo de cada operador su precedencia

    x = 5 8 3 2 6 40

    como la precedencia va de izquierda a derecha y de mayor a menor lasoperaciones se ejecutan como sigue:

    5 * 8 - 3 / 2 + 6 > 40

    La precedencia se cambia con parntesis. Ejemplo:

    *3

    -4

    /3

    +4

    >6

    5 * 8 + 4

    3 4

    5 * (8 + 4)

    3 1 4

    5 * 8 + 4 5 * (8 + 4)

    Promocin

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    88/168

    La Promocin se hace automticamente en Java cuando se aplica algn operador,se asigna el tipo ms grande a los operadores que aparecen en la expresin,

    por ejemplo se estn sumando un int con un float, la suma se efectua promoviendoel int a float y de esta forma el resultado es float

    Si se tiene:

    int x ;double y , PI = 3.1416;

    x = 5;

    y = x + PI;

    en este caso se promociona xal tipo doubleantes de hacer la suma,la promocin es automtica

    Disfraz (casting)

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    89/168

    ( g)

    Un Casting se utiliza cuando se quiere cambiar el tipo de un resultadodiferente al que se obtiene normalmente, por ejemplo int cuando el resultado es float.

    El tipo de dato del casting se escribe entre parntesis

    Si se tiene:

    int x ;double y , PI = 3.1416;

    x = (int) PI;

    en este caso disfraza a PIde tipo intpara asignarle valor a Xaunquese pierde precisin (los decimales se pierden en este caso)

    Si fuera al revs de un inta un floatno se pierde precisin y no es

    necesario hacer el casting porque se hace una promocin

    Disfraz (casting)

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    90/168

    ( g)

    Un Casting se utiliza en Vector para reasignar la clase de un Objeto quetiene almacenado

    Si se tiene un Vector, para recuperar un elemento se hace un casting:

    Cliente juan ;Vector clientes = new Vector();

    juan = (Cliente)clientes.get(2);

    clientes.get(2) me devuelve el Object de la posicin 2 del vector.

    Vector es un arreglo dinmico de objetos numerados desde cero hasta n1. El tamao del vector se conoce con el mtodo size().

    Bsqueda de un dato en un Vector

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    91/168

    q

    Si se tiene un Vector, para recuperar un elemento se hace un casting:

    String busco = juan ;Vector clientes = new Vector(9843);

    int i ;

    for( i = 0; i < clientes.size(); i++ ){

    Cliente cte = (Cliente)clientes.get(i);

    if( cte.getNombre().equals(busco) == true)

    break;

    }

    if( i < clientes.size() )

    System.out.println(ENCONTRE AL CLIENTE + busco);

    Bsqueda de un dato en un Vector

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    92/168

    q

    Si se tiene un Vector, para recuperar un elemento se hace un casting:

    String busco = juan ;Vector clientes = new Vector(9843);

    int i ;

    for( i = 0; i < clientes.size(); i++ ){

    if( ((Cliente)clientes.get(i)).getNombre().equals(busco) )

    break;

    }

    if( i < clientes.size() )

    System.out.println(ENCONTRE AL CLIENTE + busco);

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    93/168

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    94/168

    Flujo de Control

    Estructuras de Control

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    95/168

    Secuencia

    Las Estructuras de Contro l se utilizan para controlar el flujo de ejecucin delas instrucciones en los mtodos de Java.

    Decisin

    Iteracin

    while

    A

    c

    do-while

    A

    c

    for

    A

    c

    v=inicial

    actualizav

    Recursin

    if

    B

    c

    A

    switch

    e

    A1 A2 A3

    A

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    96/168

    Estructuras de Paralelismo yConcurrencia

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    97/168

    Excepciones

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    98/168

    Jerarqua de Java de Excepciones

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    99/168

    Jerarqua de Java de Excepciones

    Las Excepciones se organizan en una Jerarqua, donde la clase Exception

    es la de nivel superior, por lo que es comn para atrapar cualquier excepcincolocar Exception dentro del catch

    Exception

    ClassNotFoundException IOException

    Excepciones Definidas por el Usuario

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    100/168

    Excepciones Definidas por el Usuario

    Una Excepcin Defin ida por el Usuariose hace

    con una clase derivada de Exceptionen este ejemplo MiExcepcionse utiliza como culquier excepcin

    Exception

    MiExcepcion

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    101/168

    Interfaz Grfica de Usuario (GUI)

    GUIJLabel

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    102/168

    Interfase

    Grfica de

    Usuario

    (Graphical User Interface)

    Componentes

    Distribucin

    Contenedores

    Eventos

    Sencillos

    Complejos

    JTextFieldJButtonJTextArea

    JTable

    JTree

    FlowLayout

    GridLayout

    BorderLayoutnull

    JFrame

    JApplet

    CanvasActionListener

    MouseListener

    KeyListener

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    103/168

    Interfase Hombre-Mquina

    AWT (Abstract Window Toolkit): clase Frame

    Swing: clase JFrame

    Las Interfases Grficas de Usuario (GUI) se implementanen Java con las clases AWT y Swing

    Es mejor usar Swing porque sustituye a la AWT desde la versin 1.1

    Generalmente los programas de consola GUIse derivan de la clase Frame o JFrame

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    104/168

    Ejemplos03-GUI

    En los ejemplos que acompaan esta presentacin hay ejemplos enla carpeta 03-GUI donde se encuentran componentes y eventos;

    tanto de AWT como de Swing

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    105/168

    Interfase Hombre-Mquina

    AWT: clase Applet

    Swing: clase JApplet

    Las Interfases Grficas de Usuario (GUI) que se ejecutanen un Navegador de Internet se derivan de la clase Applet o JApplet

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    106/168

    Eventos

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    107/168

    Eventos

    KeyListenerMouseListener

    MouseMoveListener

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    108/168

    Applets

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    109/168

    Ejemplos04-Applet

    Los ejemplos de Applets se encuentran en la carpeta 04-Applettanto de AWT como de Swing

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    110/168

    Applet

    Se sugiere que los Applets sean pequeos por eltiempo de transferencia y carga que emplean antes de su ejecucin

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    111/168

    Graficacin 2D, 3D y dimensin Fractal

    06-2D07-3D

    05-ecuacion

    Los ejemplos de Graficacin en 2D, 3D y dimensin Fractal se

    encuentran en las carpetas 06-2D, 07-3D y 05-ecuacion en los Ejemplosque acompaan a esta presentacin

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    112/168

    Paralelismo y Concurrencia

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    113/168

    Paralelismo y Concurrencia

    Thread

    Los ejemplos de ParalelismoyConcurrencia en Java se encuentran enla carpeta 08-hebra en los Ejemplos que acompaan a esta presentacin.Se tiene paralelismo real cuando se cuenta con varios procesadores

    Hilo (Thread)

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    114/168

    El diagrama de flujo representa un proceso.Un Hilo (thread) es el flujo de ejecucin de un proceso.

    Las lneas de colores representan diferentes hilos (threads) del proceso.

    Proceso Multihilo (Multithread)

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    115/168

    Es cuando de un mismo proceso se encuentran enejecucin varios hilos (threads) simultneamente

    (paralelismo)

    run()

    main()

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    116/168

    Redes

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    117/168

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    118/168

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    119/168

    Arquitectura cliente/servidor

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    120/168

    SERVIDOR CLIENTE

    ServerSocket servicio

    Socket

    Servidor

    IPpuerto

    Socket

    ServidorIP

    puerto

    ClienteIP

    puerto

    PrintStream salida DataInputStream entrada

    DataInputStream entrada PrintStream salida

    LECTURA

    String dato = entrada.readline();

    ESCRITURA

    salida.println(mensaje);

    Nota: si se usa Printstream, cadamensaje debe terminar con \n

    ServidorIP

    puerto

    ClienteIP

    puerto

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    121/168

    Comunicacin Cliente/Servidor

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    122/168

    En la comunicacin cliente/servidor existen tres etapas:

    DECLARACIN

    Se establecen lossockets y los flujos de

    entrada y salida

    CONEXIN

    Se hace en dos partes:servidor que esperacliente que enlaza

    INTERACCIN

    Se usan los flujos deentrada y salida para

    leer y escribir

    Cliente/Servidor Multithread

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    123/168

    Server Socket

    SERVIDOR CLIENTE

    Escucha

    run () enviar ()

    recibe ()enviar ()

    enviar ()

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    124/168

    Base de Datos con Java (JDBC)

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    125/168

    Acceso a Base de Datos (JDBC)

    ClassDriverManager

    ConnectionStatementResultSet

    Los ejemplos de Acceso a Base de Datos con JDBC se encuentranen la carpeta 10-bd en los Ejemplos que acompaan a esta presentacin

    BASE DE DATOS CON JAVA

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    126/168

    Una base de datos es una coleccin de datos interrelacionados donde se tieneuna mnima redundancia y se garantiza la integridad y seguridad.

    Se considera formada por un conjunto de tablas y de ndices.Cada tabla est formada por varios atributos y registros llamados tuplas.

    Los nombres de tablas con sus atributos dan origen al llamado Esquema de laBD.

    Mediante los ndices se logra un acceso ms rpido a la informacin que una

    bsqueda secuencial.

    BD

    Persona rfc

    Pasatiempo

    TABLAS

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    127/168

    Esquema de la BD (Diccionario de datos)PersonaRfc A 20 registro Federal de CausantesNombre A 50 nombre de la personaDireccin A 50 direccin donde vive

    Telfono A 30 su telfono

    PasatiempoClave A 3 clave del pasatiempoDescripcin A 30 descripcin del pasatiempoLugar A 20 lugar en que se lleva a cabo

    PersonaRFC Nombre Direccin Lugar

    Pasatiempo

    Clave Descripcin Lugar

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    128/168

    Sistema

    Manejador deBase de Datos

    BD

    escribe lee

    Esquema de la BD

    Ejemplo:

    Access

    Oracle

    Informix

    MySQL

    Postgress

    ARQUITECTURA DE ACCESO A UNA BD USANDO JAVA

    JDBC (Java Database Connectivity)

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    129/168

    JDBC (Java Database Connectivity)

    Driver Manager

    odbc:jdbc

    Aplicacin

    JAVA

    SMBD

    BD

    Esquema de la BD

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    130/168

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    131/168

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    132/168

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    133/168

    Base de Datos Remota

    BASE DE DATOS REMOTA

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    134/168

    Driver Manager

    odbc:jdbc

    SERVIDOR

    BD

    SMBD

    Access

    SMBD

    MySQL

    SMBD

    ORACLE

    ESQUEMA DE LA

    BD

    cliente

    INTERNET

    SERVIDOR

    HTML

    htmlapplet

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    135/168

    Servlets

    Servlets

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    136/168

    SERVIDORServlets

    Servlet

    navegador

    navegador

    navegador

    INTERNET

    CLIENTESERVIDOR

    Navegador: Netscape, IExplorer, Firefox

    invocacin yparmetros

    HTML

    Un Servletes un programa Java que simplifica el modelo Cliente/Servidor.

    Se invoca desde un navegador de Internet mediante un archivo HTML,

    se ejecuta en el servidor y genera una salida en formato HTML.

    SERVLETS

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    137/168

    CLIENTE SERVIDOR

    Navegador

    Servlet

    Invocacin yparmetros

    Mtodos de invocacinGET POST

    html

    Un Servlet se invoca con una liga o con un botn en una estructura de HTML.

    Existen dos Mtodos de Invocacinde un Servlet: GET y POST.Con GET los parmetros son visibles en la lnea de direccin y ocupan un

    mximo de 1024 bytes.

    Con POST los parmetros se pasan por un socket interno y tienen mayorcapacidad

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    138/168

    Ejemplo de un Servlet

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    139/168

    Lectura de parmetros

    Proceso

    Resultados

    Base de Datos con Servlets

    CLIENTE SERVIDOR

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    140/168

    Tomcat

    CLIENTE SERVIDOR

    html

    html

    html

    htmlDriver Manager

    odbc:jdbc

    SMBD

    Access

    SMBD

    MySQL

    SMBD

    ORACLE

    ESQUEMA DE LABD

    html

    html

    Servlet

    SESIONES

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    141/168

    Un objeto sesin (de la clase Sess ion )se almacena en elservidor para mantener la informacin del navegador durante

    la comunicacin Cliente/Servidor

    Session

    SESIONES

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    142/168

    Session

    HTTP HTTP HTTP

    Un Objeto Session (Sesin) almacena datos compartidos

    entre diferentes pginas HTML.

    Este objeto se almacena en el navegador y su periodo devida es: Page (pgina), Session (Sesin), Application

    NAVEGADOR

    Se recomienda consultar

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    143/168

    http://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/index.html

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    144/168

    JSP

    ARQUITECTURA JSP

    (JAVA SERVER PAGES)

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    145/168

    SERVIDOR WEB

    AplicacinHTML + JSP

    B

    E

    A

    N

    S

    navegador

    navegador

    navegador

    INTERNET

    CLIENTE SERVIDOR

    Navegador: Netscape, Iexplorer, Firefox

    JSP

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    146/168

    Los JSP se utilizan para generar pginas HTMLdinmicas mediante la incrustacin de cdigo fuente

    JAVA en una pgina HTML.

    Al ejecutar el JSP se sustituye el cdigo JAVA por suresultado quedando solamente una pgina HTML.

    JSP

    JSP

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    147/168

    navegadorServidor WEB

    JSP

    Compilacin

    (La primera vez)

    Pgina html

    html

    1.- El navegador enva una pgina html

    2.- El JSP lee los parmetros del archivo html (si es laprimera vez que se invoca se compila)

    3.- Se procesa el archivo JSP y se genera la respuesta enotro archivo html

    4.- El navegador despliega el archivo html que tiene larespuesta

    Bean

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    148/168

    get

    get

    set

    Se llama Bean a una clase que cuenta con mtodos get y set paracada uno de las propiedades de la clase, adems de otros mtodos.

    JSP que suma dos nmeros

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    149/168

    Acceso a Base de Datos con JSP

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    150/168

    BEANUn Bean es un componente software que tiene la particularidad de

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    151/168

    p q pser reutilizable y as evitar la tediosa tarea de programar los

    distintos componentes uno a uno. Se puede decir que existen conla finalidad de ahorrarnos tiempo al programar. Es el caso de lamayora de componentes que manejan los editores visuales mscomunes. Los que hayan utilizado Visual Studio, Eclipse o Delphi

    por ejemplo, ya estarn familizarizados con ellos.

    Bean viene del ingls "frijol", y su idea principal es que sereaprovechan "frijoles" que ya han sido creados por otros

    desarrolladores. Sabiendo esto, un Bean puede representar desdeun botn, un grid de resultados, un panel contenedor o un simple

    campo de texto, hasta otras soluciones mucho ms complejas

    como conexiones a bases de datos, etc.Son bastante conocidas las EJB (Enterprise JavaBeans) que

    ofrecen numerosos Beans para Java.

    Referencias sobre BEAN

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    152/168

    Define que son los JAVA BEANShttp://www.sc.ehu.es/sbweb/fisica/cursoJava/applets/javaBeans/intro.htm

    Describe los EJBhttp://java.sun.com/products/ejb/

    Diferencia entre Bean y EJBhttp://www.osmosislatina.com/java/ejb.htm

    Interface Serializablehttp://www.chuidiang.com/java/rmi/rmiParametros.html#PAR%C1METROS_Serializ

    able

    Tutorial en Castellanohttp://www.programacion.com/java/tutorial/beans/8/

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    153/168

    Abstraccin de Procesos

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    154/168

    B

    Con la Abs traccin de procesos se cambian losbloques de cdigo (B) repetidos por el llamado a una

    rutina (proceso, funcin o mtodo)

    Se simplifica el programa

    B B

    return

    Abstraccin de Procesos

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    155/168

    float areaCirculo(float r)

    { t1 = r * ra = t1 * 3.1416regresa a

    }

    lee r

    t1 = r * ra = t1 * 3.1416desplega a

    Una Rut inase crea asignndole un nombre a un grupo deinstrucciones

    Cuando seinvoca se usa solamente el nombre con sus parmetros

    Reutilizacin de Cdigo

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    156/168

    Con los procesos abstractos es posible la Reutilizacin de Cdigoen variosProgramas o Sistemas al utilizarlos como una unidad probada

    B

    B

    B

    B

    B

    B

    Abstraccin de Datos

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    157/168

    Con la abstraccin de datosse ocultan los datosaccesndolos mediante procesos abstractos

    Por ejemplo, en una Pila (stack), se aplican las procesos Push()o Pop() sin ocuparnos del tipo de dato del argumento

    A

    3.1415926

    x = Pop()

    Push(elefante)

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    158/168

    Evolucin de la Realidad

    Evolucin de las Plataformas de Desarrollo deSistemas

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    159/168

    1960 1970 1980 1990 2000

    COBOL

    Lenguaje C

    C++, Java

    t

    # usuarios

    Evolucin de los Paradigmas deProgramacin

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    160/168

    PROGRAMACIN FUNCIONALLispScheme

    PROGRAMACIN LGICAPrologParlog

    PROGRAMACIN ESTRUCTURADAAlgolC

    PROGRAMACIN ORIENTADA A OBJETOSC++Java

    PROGRAMACIN ORIENTADA A AGENTESen desarrollo

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    161/168

    Construyamos Sistemas Evolutivos

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    162/168

    REALIDAD REALIDADREALIDAD

    Sistema Evolutivo

    Un Sistema Evolutivoes capaz de percibir la realidad paragenerar y mantener un modelo de la realidad en forma automtica

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    163/168

    Proyecto Final

    Conclusiones

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    164/168

    El lenguaje Java es muy amplio en su funcionalidad y actualmentecontinua su desarrollo

    Como se mencion antes, an estn en desarrollo otros paradigmas

    As como el universo evoluciona, as estn evolucionando las herramientasy paradigmas de programacin

    Es posible que el siguiente paradigma est en tu pensamiento

    PROPONLO!

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    165/168

    tlazokamati

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    166/168

    tlazokamati

    gracias a ti por leer estedocumento

    www.jesusolivares.com

    Clase Hola Amigos

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    167/168

    Hola

    public static main(String)

    Main es publicporque debe ser visible desde afuera de la clase

    Calculadora

    limpia()

    acumulador

    suma(double)

    resta(double)

    por(double)

    divide(double)

    muestra()

    Diagrama de clases

    rbol binario

  • 8/14/2019 2008 05 19 POO Utilizando JAVA

    168/168

    rbol binario

    O insertaO busca

    Nodo

    O nodo

    rbol