You are on page 1of 17

Aplicaciones Empresariales en Java Programacin en Java

PROGRAMACIN EN JAVA
BREVE HISTORIA DE JAVA Java data de 1991, en el que un grupo de ingenieros de Sun Microsystems liderados por Patrick Naughton, Sun Fellow y James Gosling, deseaban disear un lenguaje de computadoras que se pudiera utilizar para dispositivos de consumo como los computadores de TV por Cable. Estos dispositivos poseen pocos recursos de procesamiento y de almacenamiento de memoria. Era importante que el lenguaje no estuviera asociado a una sola arquitectura. Esto llevo a resucitar el modelo de compacidad y neutralidad respecto a la plataforma creado hace varios aos por Niklaus Wirth inventor de Pascal. Este es el inicio de un lenguaje transportable y del concepto de mquinas virtuales. El personal de Sun tena experiencia en UNIX as que basaron al lenguaje Java a partir de C y C++. Gosling decidi llamarlo en sus inicios Oak y luego lo bautizaron como Java. En 1992, el proyecto Green gener su primer producto denominado *7, que se trataba de un control remoto inteligente. Lamentablemente este producto no tuvo xito en el mercado. Mientras suceda todo esto en Sun, la parte del internet que es la WWW se iba haciendo cada vez ms grande. La clave de la web es el navegador. En 1994, casi todo el mundo usaba Mosaica(un navegador comercial que surgi del Centro de Supercompuadoras de la Universidad de Illinois en 1994). Este navegador fue escrito en gran parte por Mark Andreesen estudiante universitario que ms tarde sera cofundador y jefe de tecnologa de Netscape. A mediados de 1994, Gosling inicia la construccin de un navegador escrito en Java desarrollado por Patrick Naughton y Jonathan Payne y lo denominador HotJava. Este navegador introduce el concepto de Applets (programas con interfaz grfica que funcionan en un navegador web). Sun public su primera versin de Java a principios de 1996. Esta versin careca de credibilidad entre los programadores por su escasa aplicabilidad. La versin 1.1 correga errores de la versin anterior y se agrega el modelo de eventos para programacin grfica. En 1998 aparece la versin Java 1.2 que reemplaza en antiguo conjunto de herramientas de Interfaz Grfica por un modelo sofisticado y escalable denominado Swing. En diciembre de 1998 se cambia el nombre por Java 2 Standard Edition Software Developer Kit versin 1.2. Adems, se presentaron otras dos ediciones: Micro Edition para dispositivos mviles y Enterprise Edition para servidores. ARQUITECTURA DE JAVA El lenguaje de programacin Java salt a la escena de internet y consigui instantneamente un ttulo de celebridad. Un lenguaje con una ingeniera muy slida. Su caracterstica de proteccin y seguridad para programadores y usuarios. Propietario de Sun hoy de Oracle. Java es el mejor lenguaje de programacin usado por buenos programadores Java es una plataforma con una gran biblioteca de clases. Basado en C y C++ con fundamento de Pascal. Java es toda una plataforma, con una enorme biblioteca con una gran cantidad de cdigo reutilizable y con un entorno de ejecucin que ofrece servicios tales como: seguridad, adaptabilidad entre sistemas operativos y recoleccin automtica de basura. Como programador, se necesita un lenguaje que tenga una sintaxis agradable y una semntica comprensible. Versiones de Java: Java 2 Standard Edition J2SE: Estructuras Fundamentales, Clases y Objetos, Interfaz Grfica de Usuario (GUI), Acceso a Base de Datos (JDBC)

ESPOCH FIE - Ing. Jorge Huilca Palacios

Pgina 1

Aplicaciones Empresariales en Java Programacin en Java

Java 2 Enterprise Edition J2EE: hoy se la denomina Java Enterprise Edition (JEE) orientada al desarrollo web, programacin de redes, componentes distribuidos (RMI, Corba, EJB, Servicios Web) Java 2 Micro Edition J2ME: orientado a dispositivos mviles

A dems han aparecido nuevas tecnologas Java FX: para la creacin de Rich Internet Applications (RIAs), esto es, aplicaciones web que tienen las caractersticas y capacidades de aplicaciones de escritorio, incluyendo aplicaciones multimedia interactivas Java Card: es una tecnologa que permite ejecutar de forma segura pequeas aplicaciones Java (applets) en tarjetas inteligentes (SIM) y similares dispositivos empotrados Java TV: implementacin de Java que se ejecuta en diferentes dispositivos relacionados con la TV: desde top boxes para televisin por cable y satelital hasta lectores de discos

La evolucin de Java en cuanto a su desarrollo interno de clases: Versiones Versin 1.0 Versin 1.1 Versin 1.2 Versin 1.3 Versin 1.4 Versin 5.0 Versin 6 No. de Clases 211 clases 477 clases 1524 clases 1840 clases 2723 clases 3279 clases 3777 clases

Las caractersticas de Java son: Sencillo: Programacin de forma sencilla. Utiliza prcticas actuales. Muy parecido a C++. Carece de muchas caractersticas errneas (punteros). En java se genera mucho cdigo. Hoy existen Entornos de Desarrollo Integrados (IDE) que mejoran la productividad. Si se est acostumbrado a entornos visuales (Visual Basic, .NET, Delphi) no le resultar fcil. Orientado a Objetos: El diseo orientado a objetos es una tcnica de programacin que se centra en los datos y en las relaciones. Las capacidades orientadas a objetos de Java son las mismas de C++. En Java no existe herencia mltiple, sobrecarga de operadores. Aparecen conceptos de interfaces, serializacin y construcciones de GUI. Distribuido: Java posee una extensa biblioteca para tratar protocolos de red (TCP/IP, FTP y HTTP). Manejo fcil de sockets. Fcil invocacin a mtodos remotos entre objetos distribuidos (RMI, CORBA, EJB, Servicios Web). Una arquitectura especfica denominada Java 2 Enterprise Edition. Robusto: Fiable para el cliente y el programador. Mejorado el modelo de punteros. Existen clases que representan las diferentes estructuras de datos (arreglos, listas, rboles, mapas) Seguro: Java est diseado para entornos distribuidos. Protegidos para ataques como: Desbordar la pila de ejecucin (virus), Corromper la memoria (punteros) y L/E de archivos sin permiso (applets) Neutro en su Arquitectura: El compilador genera un archivo neutro denominado bytecode independiente de la arquitectura. La traduccin a cdigo objeto se denomina JIT (Just In Time). Modelo adoptado por .NET. Hace ms de 20 aos Niklaus Wirth con el sistema UCSD Pascal empleaba la misma tcnica.

ESPOCH FIE - Ing. Jorge Huilca Palacios

Pgina 2

Aplicaciones Empresariales en Java Programacin en Java

Adaptable: A diferencia de C y C++ no existen aspectos dependientes de la plataforma. Los tipos primitivos estn bien especificados. Las cadenas son Unicode. Ej. Interfaz Grfico de Usuario utilizando Swing. Interpretado: el intrprete de Java puede ejecutar directamente bytecodes de Java en cualquier mquina a la que se haya adaptado el intrprete. Las herramientas de desarrollo de Java son lentas. Multihilo: Ejecucin en mltiples procesadores. No planifica. Deja que el Sistema Operativo lo planifique. Fcil manejo para el desarrollador ERRORES POPULARES DE JAVA Java es una extensin de HTML Yo uso XML as que no necesito de Java Java es un lenguaje de programacin fcil de aprender Java llegar a convertirse en un lenguaje de programacin universal para todas las plataformas Java tan solo es un buen lenguaje de programacin Ahora que existe C#, Java a quedado obsoleto Java es un lenguaje privado, y por tanto habra que evitarlo Todos los programas en Java se ejecutan en una pgina web

JAVA DEVELOPMENT KIT (JDK) Es un software que provee herramientas de desarrollo para la creacin de programas en java. En los sistemas Windows sus variables de entorno son: JAVAPATH: es un path completo del directorio donde esta instalado el JDK. CLASSPATH: son las librerias o clases de usuario. PATH: variable donde se agrega la ubicacin de JDK

Los programas ms importantes que se incluyen son:

ESPOCH FIE - Ing. Jorge Huilca Palacios

Pgina 3

Aplicaciones Empresariales en Java Programacin en Java

Appletviewer: es un visor de applet para generar sus vistas previas,ya que un applet carece de mtodo main y no se puede ejecutar con el programa java. Javac: es el compilador de JAVA. java: es el intrprete de JAVA. javadoc: genera la documentacin de las clases java de un programa.

ENTORNOS DE DESARROLLO Java funciona en las siguientes plataformas operativas: Solaris, Linux, Windows y Macintosh. Los Entornos de Desarrollo Integrados (IDE) ms utilizados en el desarrollo de Java son: Eclipse (www.eclipse.org) Eclipse es un entorno de desarrollo integrado de cdigo abierto multiplataforma para desarrollar lo que el proyecto llama "Aplicaciones de Cliente Enriquecido", opuesto a las aplicaciones "Cliente-liviano" basadas en navegadores. Esta plataforma, tpicamente ha sido usada para desarrollar entornos de desarrollo integrados (del ingls IDE), como el IDE de Java llamado Java Development Toolkit (JDT) y el compilador (ECJ) que se entrega como parte de Eclipse (y que son usados tambin para desarrollar el mismo Eclipse). Eclipse es tambin una comunidad de usuarios, extendiendo constantemente las reas de aplicacin cubiertas. Eclipse fue desarrollado originalmente por IBM como el sucesor de su familia de herramientas para VisualAge. Eclipse es ahora desarrollado por la Fundacin Eclipse, una organizacin independiente sin nimo de lucro que fomenta una comunidad de cdigo abierto y un conjunto de productos complementarios, capacidades y servicios. NetBeans (www.netbeans.org) NetBeans es un entorno de desarrollo, hecho principalmente para el lenguaje de programacin Java. Existe adems un nmero importante de mdulos para extender el NetBeans IDE. NetBeans IDE es un producto libre y gratuito sin restricciones de uso. NetBeans es un proyecto de cdigo abierto de gran xito con una gran base de usuarios, una comunidad en constante crecimiento, y con cerca de 100 socios en todo el mundo. Sun MicroSystems fund el proyecto de cdigo abierto NetBeans en junio de 2000 y contina siendo el patrocinador principal de los proyectos. La plataforma NetBeans permite que las aplicaciones sean desarrolladas a partir de un conjunto de componentes de software llamados mdulos. Un mdulo es un archivo Java que contiene clases de java escritas para interactuar con las APIs de NetBeans y un archivo especial (manifest file) que lo identifica como mdulo. Las aplicaciones construidas a partir de mdulos pueden ser extendidas agregndole nuevos mdulos. Debido a que los mdulos

ESPOCH FIE - Ing. Jorge Huilca Palacios

Pgina 4

Aplicaciones Empresariales en Java Programacin en Java

pueden ser desarrollados independientemente, las aplicaciones basadas en la plataforma NetBeans pueden ser extendidas fcilmente por otros desarrolladores de software. JDeveloper(www.oracle.com/technology/products/jdev/index.html) JDeveloper es un entorno de desarrollo integrado desarrollado por Oracle Corporation para los lenguajes Java, HTML, XML, SQL, PL/SQL, Javascript, PHP, Oracle ADF, UML y otros. Es un software propietario pero gratuito desde 2005. Las primeras versiones de 1998 estaban basadas en el entorno JBuilder de Borland, pero desde la versin 9i de 2001 est basado en Java, no estando ya relacionado con el cdigo anterior de JBuilder. BlueJ (bluej.org) BlueJ es un entorno integrado de desarrollo (de sus siglas en ingls IDE - Integrated Development Environment) para el lenguaje de programacin Java, desarrollado principalmente con propsitos educacionales, pero tambin es adecuado para el desarrollo de software a pequea escala. BlueJ fue desarrollado para apoyar la enseanza y el aprendizaje de la programacin orientada a objetos, y como resultado, su diseo difiere de otros entornos de desarrollo. La pantalla principal muestra grficamente la estructura de clases de una aplicacin en desarrollo (en un diagrama muy parecido a UML), y los objetos pueden ser creados y probados interactivamente. Combinado con una interfaz de usuario simple, esta facilidad de interaccin permite experimentar de manera fcil con los objetos en desarrollo. Los conceptos de la orientacin a objetos (clases, objetos, comunicacin a travs de llamadas a mtodos) son representados visualmente en el diseo de interaccin en la interfaz. EJERCICIOS PROPUESTOS No.1 1. 2. 3. Realice la instalacin del JDK y del IDE capturando cada una de las pantallas y describiendo las opciones de instalacin Realice una investigacin sobre las semejanzas y diferencias de los diferentes IDEs de desarrollo Realice una investigacin sobre la nueva versin del JDK 7

ESTRUCTURA DE UN PROGRAMA El lenguaje de programacin Java es sensible al contexto, es decir respeta maysculas y minsculas. Todo programa en Java vive dentro de una clase. Una clase debe escribirse en Mayscula la primera letra. El nombre del archivo debe ser el mismo nombre de la clase. El compilador, para iniciar la ejecucin, busca al mtodo o funcin main. Segn la Java Language Especification (JLE), el mtodo main se tiene que declarar como public Las llaves {} delimitan un bloque de programacin. Toda sentencia termina con punto y coma (;). Se usan las comillas ( ) para trabajar con en cadenas de caracteres. Las funciones o mtodos emplean el separador punto (.). An cuando un mtodo o funcin no admita parmetros, son necesarios los parntesis. Los comentarios pueden ser una lnea (//) o de varias lneas (/**/). Los comentarios no forma parte del bytecode o ejecutable.

ESPOCH FIE - Ing. Jorge Huilca Palacios

Pgina 5

Aplicaciones Empresariales en Java Programacin en Java

TIPOS DE DATOS Java es un lenguaje de comprobacin estricta de tipos, es decir Java no siempre realiza una conversin automtica de los tipos de datos. Java contiene tipos primitivos y avanzados de datos. Entre los tipos primitivos tenemos las siguientes categoras: Enteros, Coma Flotante, Carcter y Lgico. En cada una de las categoras tenemos tipo especficos como se detalla a continuacin: Enteros: Nmeros que carecen de parte fraccionaria Tipo byte short int long Tamao 1 byte 2 bytes 4 bytes 8 bytes Rango -128 hasta 127 -32768 hasta 32767 -2147483648 hasta 2147483647 -9223372036854775808 hasta 9223372036854775807

Coma Flotante: Nmeros con parte fraccionaria. El tipo utilizando en la mayora de aplicaciones es double Tipo float double Tamao 4 byte 8 bytes Rango 3.40282347E+38 6 7 cifras decimales 79769313486231570E+308 15 cifras decimales

Caracter char: Caracteres del UNICODE de 16 bits. UTF-16. Se representa el carcter encerrado entre apstrofes. Ejm A Lgico boolean: Dos posibles valores: true y false Variables Las variables se declaran ubicando primero el tipo. Se puede tener mltiples declaraciones en una sola lnea. Java obliga a inicializar las variables. Se puede declarar las variables en cualquier lugar. Se recomienda ubicar las variables tan cerca del lugar en que se utilice por primera vez.

ESPOCH FIE - Ing. Jorge Huilca Palacios

Pgina 6

Aplicaciones Empresariales en Java Programacin en Java

Constantes En Java para la declaracin de constante se utiliza la palabra final. Para constantes, se acostumbra a poner en MAYUSCULAS.

Operadores Aritmticos Operadores aritmticos +,-,*,/ Mdulo o residuo % Operadores de Aritmtica Binaria: X+=10 equivale a X=X+10 Operadores de incremento y decremento o Prefijo ++i, --i o Sufijo i++, i--

Operadores Relacionales Igualdad == Desigualdad != Y lgico && O lgico || Operadores habituales >,>=,<,<= Operador ternario C1?expresin1:expresin2

Cadenas de Caracteres Son secuencia de caracteres UNICODE, Java no posee un tipo primitivo para representar una cadena de caracteres. Se utiliza la clase String. Las variables u objetos de tipo String poseen los siguientes mtodos o funciones: Mtodo length() proporciona el nmero de caracteres Mtodo charAt(n) extrae un carcter Mtodo substring(inicio,fin-1) extrae una subcadena

ESPOCH FIE - Ing. Jorge Huilca Palacios

Pgina 7

Aplicaciones Empresariales en Java Programacin en Java

Para la concatenacin se utiliza el signo +. No utilice == , != para la comparacin entre cadenas. En su lugar utilice los mtodos o funciones: Mtodo equals(cadena) comprueba la igualdad Mtodo equalsIgnoreCase(cadena) comprueba la igualdad sin distincin

LECTURA DE DATOS Para imprimir un resultado se utiliza println() o print(). Desde JDK 5.0 existe una forma sencilla de lectura de datos utilizando la clase Scanner. La lectura se realiza con nextLine(), next(), nextInt(), etc. Se debe importar el paquete java.util. El paquete java.lang est importado por defecto Scanner in = new Scanner(System.in); String mensaje=in.nextLine(); La clase Scanner no es apropiada para la lectura de claves desde consola. A partir del JDK 6.0 se introduce la clase Console para este propsito. Console cons = System.console(); String username = cons.readLine("User name: "); char[] passwd = cons.readPassword("Password: "); Por motivos de seguridad, se devuelve un arreglo de caracteres en la clave. ESTRUCTURAS CONDICIONALES Se utiliza la sentencia if. La condicin debe ir entre parntesis. Si las sentencias son ms de una, utilice los delimitadores de bloque. La sentencia if resulta complicada si tenemos varias opciones. En el switch la opcin nicamente es entera If (condicin) sentencia else sentencia

switch(opcion) { case 1: break;

ESPOCH FIE - Ing. Jorge Huilca Palacios

Pgina 8

Aplicaciones Empresariales en Java Programacin en Java

default: break; } ESTRUCTURAS REPETITIVAS El bucle while ejecuta una sentencia mientras se cumpla la condicin. El bucle while hace la comprobacin en la parte superior. El bucle do while ejecuta primero la sentencia y despus comprueba la condicin. while (Condicin) sentencia

do sentencia while(Condicin); El bucle for es un bucle determinado que tiene una iteracin controlada. A partir del JDK 5 se presenta otra alternativa para recorrer elementos de una matriz. Se denomina el for each for (inicio;condicin;contador) sentencia

for(variable:coleccin) sentencia EXCEPCIONES Cuando un programa Java viola las restricciones semnticas del lenguaje (se produce un error), la mquina virtual Java comunica este hecho al programa mediante una excepcin. Muchas clases de errores pueden provocar una excepcin, desde un desbordamiento de memoria o un disco duro estropeado hasta un disquete protegido contra escritura, un intento de dividir por cero o intentar acceder a un vector fuera de sus lmites. Cuando esto ocurre, la mquina virtual Java crea un objeto de la clase exception o error y se notifica el hecho al sistema de ejecucin. Se dice que se ha lanzado una excepcin (Throwing Exception). Un mtodo se dice que es capaz de tratar una excepcin (Catch Exception) si ha previsto el error que se ha producido y prev tambin las operaciones a realizar para recuperar el programa de ese estado de error. En el momento en que es lanzada una excepcin, la mquina virtual Java recorre la pila de llamadas de mtodos en busca de alguno que sea capaz de tratar la clase de excepcin lanzada. Para ello, comienza examinando el mtodo donde se ha producido la excepcin; si este mtodo no es capaz de tratarla, examina el mtodo desde el que se realiz la llamada al mtodo donde se produjo la excepcin y as sucesivamente hasta llegar al ltimo de ellos. En caso de que ninguno de los mtodos de la pila sea capaz de tratar la excepcin, la mquina virtual Java muestra un mensaje de error y el programa termina. Manejador de excepciones. Un manejador de excepciones es una porcin de cdigo que se va a encargar de tratar las posibles excepciones que se puedan generar. El bloque try.

ESPOCH FIE - Ing. Jorge Huilca Palacios

Pgina 9

Aplicaciones Empresariales en Java Programacin en Java

Lo primero que hay que hacer para que un mtodo sea capaz de tratar una excepcin generada por la mquina virtual Java o por el propio programa mediante una instruccin throw es encerrar las instrucciones susceptibles de generarla en un bloque try. try { BloqueDeIntrucciones } Cualquier excepcin que se produzca dentro del bloque try ser analizado por el bloque o bloques catch que se ver en el punto siguiente. En el momento en que se produzca la excepcin, se abandona el bloque try y, por lo tanto, las instrucciones que sigan al punto donde se produjo la excepcin no sern ejecutadas.

Cada bloque try debe tener asociado por lo menos un bloque catch. El bloque catch. try { BloqueDeIntrucciones } catch (TipoExcepcin nombreVariable) { BloqueCatch } catch (TipoExcepcin nombreVariable) { BloqueCatch } Por cada bloque try pueden declararse uno o varios bloques catch, cada uno de ellos capaz de tratar un tipo u otro de excepcin. Para declarar el tipo de excepcin que es capaz de tratar un bloque catch, se declara un objeto cuya clase es la clase de la excepcin que se desea tratar o una de sus superclases El bloque finally. try { BloqueDeIntrucciones } catch (TipoExcepcin nombreVariable) { BloqueCatch } catch (TipoExcepcin nombreVariable) { BloqueCatch } } catch (TipoExcepcin nombreVariable) { BloqueCatch }

ESPOCH FIE - Ing. Jorge Huilca Palacios

Pgina 10

Aplicaciones Empresariales en Java Programacin en Java

finally { BloqueFinally } El bloque finally se utiliza para ejecutar un bloque de instrucciones sea cual sea la excepcin que se produzca. Este bloque se ejecutar en cualquier caso, incluso si no se produce ninguna excepcin. Sirve para no tener que repetir cdigo en el bloque try y en los bloques catch. EJERCICIOS PROPUESTOS No.2 1. 2. 3. Realice un programa que efecte un intercambio de variables enteras, sin utilizar una variable temporal Disee un programa que permita validar una cdula de identidad a travs del dgito verificador Disee una aplicacin de consola que posea un men con las siguientes opciones: a. Suma b. Resta c. Multiplicacin d. Divisin e. Salir En dependencia de la seleccin que realice el usuario, se deber solicitar dos nmeros y realizar la operacin respectiva. Incluya bloques controladores de excepciones. INTRODUCCIN A LA PROGRAMACIN ORIENTADA A OBJETOS La programacin orientada a objetos POO es un paradigma de programacin dominante en estos das, al haber sustituido a las tcnicas estructuradas, basadas en procedimientos, que se desarrollaron a principios de la dcada de 1970. Java es totalmente orientado a objetos. Un objeto es todo aquello que existe en la vida real. Los objetos tienen propiedades y mtodos. Las propiedades son las caractersticas o atributos de un objeto. Un objeto se construye a partir de una clase. Una clase es la plantilla o plano a partir del cual se crean realmente los objetos. El Encapsulamiento u Ocultamiento de Informacin permite ocultar la implementacin; es decir no nos interesa la implementacin interna sino su funcionamiento. Los valores de las propiedades de un objeto se denominan estado. No se puede acceder a los datos de forma directa. Se debe interactuar a travs de mtodos de acceso (set o asignar y get u obtener). A continuacin se detalla la creacin de una clase public class Persona { private String nombre; public void setnombre(String pnombre) { nombre=pnombre; } public String getnombre() {

ESPOCH FIE - Ing. Jorge Huilca Palacios

Pgina 11

Aplicaciones Empresariales en Java Programacin en Java

return nombre; } public void imprimir() { System.out.println(El Nombre es: +nombre); } } Para la creacin de un objeto se realiza de la siguiente manera: Persona objeto = new Persona(); Para asignar los datos al objeto se utiliza el siguiente cdigo: objeto.setNombre(Jorge Huilca); Para llamar al mtodo imprimir, utilizamos el siguiente cdigo: objeto.imprimir(); Los mtodos set y get se denominan mtodos de modificacin y acceso respectivamente. El mtodo imprimir, en este caso no recibe parmetros ni retorna algn valor. Un ejemplo de un mtodo que retorna parmetros sera: public int calcularTamano() { return(nombre.length()); } La llamada sera: System.out.println(El tamao del nombre es: + objeto.calcularTamano()); CONSTRUCTORES Un constructor es un mtodo especial de una clase que tiene las siguientes caractersticas: Un constructor tiene el mismo nombre de la clase La clase puede tener ms de un constructor Un constructor suele tener cero, uno o ms parmetros Un constructor carece de valor proporcionado Los constructores siempre se invocan con el operador new.

ESPOCH FIE - Ing. Jorge Huilca Palacios

Pgina 12

Aplicaciones Empresariales en Java Programacin en Java

Una clase puede tener uno o varios constructores (sobrecarga de constructores). Lleva el mismo nombre de la clase y se ejecuta al crear un objeto. El constructor solo se puede llamar a travs del operador new. public Persona() { //Cdigo } public Persona(String valor) { //Cdigo } Si no se da un valor explcito a un campos en el constructor, ese campo recibe automticamente un valor predeterminado: los nmeros se ponen a 0, los boolean a false y las referencias a objetos a null. Es una mala prctica de programacin recurrir a esto. Un constructor predeterminado o default es un constructor sin parmetros. Si se escribe una clase que carezca por completo de constructores, se nos proporcionar un constructor predeterminado. La palabra reservada this, se refiere al parmetro implcito del mtodo o clase. Sin embargo se lo puede usar dentro de un constructor para llamar a otro constructor. this(nombre,valor) Como Java posee un mecanismo de recoleccin automtica de basura, no se necesita una liberacin manual de la memoria, por tanto no se admite destructores. Sin embargo, hay objetos que utilizan recursos distintos de memoria como los ficheros, base de datos, sockets, etc. En este caso es importante que ese recurso se libere y recicle cuando ya no es necesario. A todas las clases se les puede aadir un mtodo llamado finalize. Este mtodo ser invocado antes que el recolector de basura descarte el objeto. Esta tcnica no es 100% confiable. Es mejor crear mtodos personalizados de cierre de recurso que haga esta tarea. METODOS PRIVADOS Cuando implementamos una clase, hacemos privados todos los campos de datos porque los datos pblicos son peligrosos. La mayora de los mtodos son pblicos, los mtodos privados se utilizan en ciertas circunstancias. Para esto se utiliza el modificador de acceso private. CAMPOS FINALES Los campos de una clase se pueden definir como final. Estos campos deben recibir valor inicial por nica vez. Se utiliza en campos de tipo primitivo o en clases inmutables. private final int IVA=12; CAMPOS Y MTODOS ESTTICOS Campos Estticos

ESPOCH FIE - Ing. Jorge Huilca Palacios

Pgina 13

Aplicaciones Empresariales en Java Programacin en Java

Si se define a un campo como static, estar disponible desde cualquier lugar del proyecto. A los campos estticos tambin se los conoce como campos de clase. public static int sueldo=240; Para utilizar el campo lo haremos de la siguiente forma: System.out.println(Clase.sueldo); Constantes Estticas Los campos estticos son poco frecuentes. Sin embargo las constantes static aparecen mayormente en las aplicaciones. public static final double PI=3.141592 Tal como se ha indicado, nunca es buena idea tener campos pblicos, ya que todo el mundo puede modificarlos. Sin embargo, las constantes pblicas son correctas. Mtodos Estticos Los mtodos estticos no operan sobre objetos. Se utilizan en dos situaciones: Cuando un mtodo no necesita acceder al estados de un objeto, porque todos los parmetros se proporcionan de forma explcita. Cuando el mtodo solo necesita acceder a campos static

EJERCICIOS PROPUESTOS No.3 1. Realice el modelado del siguiente problema e implemente las clases, propiedades y mtodos respectivos: Un club de ftbol desea crear un sistema que permita gestionar la organizacin del club. El club est compuesto por los socios, los jugadores, los directivos y el personal. Teniendo en cuenta que, por ejemplo, un jugador podr ser a la vez jugador y socio. De los jugadores se desea almacenar el nombre y el sueldo, de los socios el nmero de socio, y de los directivos el puesto que ocupan. Una persona que pertenezca al personal podr ser tcnico, administrativo o de limpieza. Tambin es necesario conocer qu directivo es actualmente el director del club. Los jugadores juegan partidos, y en cada partido cada jugador puede recibir una prima (que puede ser diferente para cada jugador aunque se trate del mismo partido). El club tambin quiere controlar quin arbitra los partidos al club. Para ello se desea guardar los rbitros para cada partido y a qu federacin autonmica pertenecen. Los rbitros podrn ser rbitros principales o jueces de lnea. Es necesario tener en cuenta que en cada partido slo podr arbitrar un solo rbitro por federacin autonmica, aunque un mismo rbitro podr arbitrar varios partidos al club

HERENCIA Se puede crear nuevas clases tomando como base clases ya existentes. Concepto de reutilizacin de cdigo. La herencia utiliza la palabra extends. Superclase, clase base o clase padre. Subclase, clase derivada o clase hija. public class Padre { //Propiedades del Padre //Mtodos del Padre }

ESPOCH FIE - Ing. Jorge Huilca Palacios

Pgina 14

Aplicaciones Empresariales en Java Programacin en Java

public class Hijo extends Padre { //Propiedades del Hijo //Mtodos del Hijo } Los mtodos generales deben ir en el padre. Los ms especficos en los hijos. Es posible invalidar los mtodos del padre (Override - Sobreescritura). Se puede utilizar el constructor del padre con la palabra super. No se puede eliminar propiedades y mtodos heredados. CLASES FINALES En ocasiones es necesario impedir que un mtodo sea invalidado. Se puede evitar la herencia utilizando la palabra final. Este mecanismo asegura que no se pueda invalidar los mtodos de la clase padre. public final class Padre { //Propiedades de la clase final //Mtodos de la clase final } CLASES ABSTRACTAS Algunas clases son muy generales que resulta innecesario crear objetos. Para bloquear la creacin de instancias, se utiliza la palabra abstract. Las clases abstractas deben tener propiedades y mtodos concretos. Se puede crear mtodos abstractos. Estos no deben ser implementados. Toda clase que posea uno o ms mtodos abstractos, tiene que declararse como abstracta. Actan como reserva de espacio. Si no se implementa estos mtodos en la subclase, entonces es abstracta. public abstract class Padre { //Propiedades de la clase abstracta //Mtodos de la clase abstracta } INTERFACES Una caracterstica adicional de la orientacin a objetos es el uso de plantillas de implementacin de clases, llamadas contratos o interfaces. En las interfaces se define los mtodos con sus respectivos parmetros pero no se implementa. El cdigo correspondiente al mtodo se lo har en la clase que quiera implementar la interfaz. Es decir en la definicin de la clase que quiera cumplir el contrato se deber indicar que interfaz implementar. Esta clase deber implementar todo los mtodos que correspondan al contrato.

ESPOCH FIE - Ing. Jorge Huilca Palacios

Pgina 15

Aplicaciones Empresariales en Java Programacin en Java

public interface Animal { public void Dormir(); public int Comer(int cantidad); } public class Gato implements Animal { public void Dormir() { //Cuerpo del Programa Dormir } public int Comer(int cantidad) { //Cuerpo del Programa Comer } } COLECCIONES A menudo nos encontramos que necesitamos funciones para manipular datos ms sofisticados que las que puede ofrecer las matrices. Las matrices tienen longitud fija. Las colecciones se encuentran dentro del paquete java.util, y nos permiten organizar mejor nuestros datos. Una coleccin es un objeto que representa a un grupo de objetos. Contiene un marco de trabajo de colecciones, el mismo es una arquitectura estndar de manipulacin. Reemplazo de las Estructuras de Datos. Existen distintos tipos de colecciones: Conjuntos (java.util.Set) Listas (java.util.List) Mapas (java.util.Map)

CONJUNTOS Es la coleccin ms simple. Es un grupo de objetos agrupados, sin ningn orden particular. Las clases de coleccin que implementan esta interfaz son: HashSet y TreeSet LISTAS

ESPOCH FIE - Ing. Jorge Huilca Palacios

Pgina 16

Aplicaciones Empresariales en Java Programacin en Java

Es una coleccin en la que los objetos se organizan secuencialmente, con un principio y un final. Es una coleccin ordenada. Una matriz es una lista fija. Las listas pueden aumentar y disminuir su tamao libremente. Las listas incluyen las pilas y colas. Las pilas son listas en las que los nuevos objetos se incluyen e eliminan al final de la lista LIFO (last in first out). Las colas llevan un mecanismo FIFO (first in first out), es decir los nuevos objetos se anaden al final de la lista, mientras que los objetos que tienen que eliminarse de la lista se toman siempre al principio de sta. Las clases de coleccin que implementan esta interfaz son: Vector, Stack, ArrayList y LinkedList. MAPAS Los objetos se almacenan de dos en dos. Uno de los objetos del par contiene la informacin que queremos almacenar en la coleccin y el otro objeto se denomina keys. El valor de la clave nicamente identifica al par, de forma muy parecida a cmo el ndice de un elemento de una matriz nicamente identifica al elemento. A diferencia de un ndice, una clave no tiene por qu ser un nmero entero; puede ser cualquier tipo de objeto. No puede haber claves repetidas en el mapa. Cuando queremos recuperar informacin almacenada en un par de objetos, ubicaremos dicho par buscando el valor apropiado de la key. Las clases de coleccin que implementan esta interfaz son: HashTable, TreeMap, HashMap y WeakHashMap. EJERCICIOS PROPUESTOS No.4 Realice el modelado del siguiente escenario e implemente orientado a objetos: En una empresa existen tres tipos de funcionarios: Directivos, Empleados y Trabajadores. Los datos de los funcionarios son: Cedula, Nombres, Apellidos, Direccin y Edad. Los funcionarios adicionalmente poseen el sueldo bsico definido por el gobierno nacional y que este puede variar. Los Directivos adicionalmente a su sueldo perciben un bono de responsabilidad dependiendo de su jerarqua. Los Empleados se les pagan un valor fijo por cada carga familiar, hasta 6 cargas en total. Los Trabajadores, reciben un valor fijo por cada ao de antigedad en la empresa. Es necesario modelar el sistema tomando en cuenta criterios de orientacin a objetos y calcular el sueldo total a recibir mensualmente por el funcionario.

ESPOCH FIE - Ing. Jorge Huilca Palacios

Pgina 17

You might also like