5 C A P I T U L O. Programacion orientada a objetos con Java. 5.1 Introduccion a Java Caracteristicas



Documentos relacionados
Lenguaje Orientado por Objetos Simple, Poderoso y Fácil de aprender Robusto Interactivo Arquitectura neutral Interpretado y de alto desempeño

Programación Orientada a Objetos en Java

Tema 1. Java: Conceptos generales

Tema 1. Introducción a JAVA

JAVA 7 Los fundamentos del lenguaje Java

JAVA 1. Introducción

Tema 1. Introducción a Java EE

Práctica 1. Entorno de Trabajo e Introducción a Java. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos. Versión 1.0.

Lenguajes de Programación 2 Introducción a Java

Desarrollo de Aplicaciones Empresariales en Java INTRODUCCIÓN A JAVA

Objetivos y Temario CURSO JAVA 7

16/02/2013 INGº PEDRO BELTRÁN CANESSA 1

INTRODUCCIÓN A JAVA. Índice

Curso formativo Plataforma de formación J2EE

Esta obra está bajo una licencia de Creative Commons. Autor: Jorge Sánchez Asenjo (año 2005)


Formación a distancia de EXPERTO EN PROGRAMACIÓN EN JAVA

Principios de Computadoras II

Programación de Dispositivos Móviles Conceptos de J2ME

Curso de Java. Jaime Fernández Martín. Marzo Curso INEM Programación en Java

Tema 1 Introducción al paradigma de programación orientado a objetos

Java y Eclipse. Lenguajes y Entornos de Programación Libre

Introducción a la programación

Programación Java. M.C. Jorge Eduardo Ibarra Esquer Universidad Autónoma de Baja California

Características generales del lenguaje Java. María Consuelo Franky

INF 473 Desarrollo de Aplicaciones en

Introducción a la Programación en Java

Presentación del Curso Presencial. Programación Web con Java J2EE

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Tópicos Selectos de Programación unidad 4. Librería de Interfaz Gráfica

Ventajas del Master de Java sobre cualquier tipo de manuales o tutoriales de Java

TEMA 54 La arquitectura JEE

Sofis Solutions. Centro de Capacitación Catálogo 2015

PROGRAMACIÓN II INTERFACES GRÁFICAS DE USUARIO. Otoño de 2017 BUAP-FCC DR. MARIO ROSSAINZ LÓPEZ

Presentación del Curso Presencial. Programación en Java Nivel Básico

Enterprise Java Beans. JBoss AS. Ronier Rodríguez

PROGRAMA JAVA SE (Standard Edition) MODALIDAD ONLINE

Guía del Curso Analista Programador Java: Business Apps Expert

CURSO DE PROGRAMACIÓN EN JAVA J2EE 7 ÍNDICE

Programa Formativo. Código: Curso: Programación con JAVA 8 SE Standard Edition Modalidad: ONLINE Duración: 120h.

Bases de Datos en Internet Agenda

Plataforma desarrollo Java

Curso Fundamentos de Programación en Java

Programación en Java. Temario. David Contreras Bárcena

Guía del Curso Especialista TIC en Programación con JAVA 8 SE Standard Edition

Tema 1 Introducción al paradigma de programación orientado a objetos

EL AUTOR...17 INTRODUCCIÓN...19

JAVA ENTERPRISE EDITION (J2EE) ARQUITECTURA TECNOLOGÍAS (1/2) (L1)

Introducción a Java. Humberto Cervantes Maceda Alfonso Martínez Martínez. Marzo 2005

Taller de Programación I. Introducción a Java

APLICACIONES MOVILES NATIVAS. Sesión 7: Repaso básico al lenguaje java

Seminario de Java. Contenido

Evolución del software y su situación actual

Desarrollo de Componentes de Negocio con Tecnología

Los requisitos del software son los mismos en WWW

APLICACIONES MÓVILES NATIVAS. Sesión 6: Programación móvil en java y android

UNIDAD I.- Elementos de Interfaces Gráficas

ESPECIALISTA EN TECNOLOGIAS JAVA

Tema 2: La Tecnología Java

Desarrollo de Aplicaciones Web con Eclipse

Análisis arquitectural y funcional de la maquina virtual en la plataforma J2ME ÍNDICE

Qué es Java? Introducción a Java. Lenguajes Orientados a Objetos. Qué es Java? Historia de Java. Objetivos de Java

Oracle 10g: Creación de Aplicaciones J2EE

Hasta ahora hemos desarrollado programas que usan la consola para interactuar con el usuario.

Características generales del lenguaje Java. María a Consuelo Franky

Cursos PROGRAMACIÓN DE APLICACIONES CON JAVA

Programación Web Tema 1: Arquitectura C / S

Taller de Programación Concurrente y Distribuida

Curso: Java SE (Standard Edition)

Procesamiento distribuido en Java

Introducción a la programación. Java

Diplomado Programming Java (JSE, Servlets & JSP) with Oracle 10g & MyEclipse (o NetBeans)

Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios

- Compilar y ejecutar programas en Java - Estructura básica de una clase - El comando javac - El comando java - Introducción al IDE de desarrollo

Desarrollo Software Gran Escala

JAVA 8 Los fundamentos del lenguaje Java (con ejercicios prácticos corregidos)

Tema 1: Principios de Java

J2EE: APLICACIONES AVANZADAS DE JAVA PARA ENTORNOS PROFESIONALES

APLICACIONES DE INTERNET: SOAP

PROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }

Cursos de Formación GRUPO DANYSOFT : Cursos JBuilder. Equipo Grupo Danysoft septiembre de (+34)

Java Básico. Introducción a Java. Copyright

CURSO: Programación de Aplicaciones en Lenguaje JAVA

Guía práctica de estudio 01: Entorno y lenguaje de programación

SERVICIO NACIONAL DE APRENDIZAJE SENA SISTEMA INTEGRADO DE GESTIÓN Procedimiento Ejecución de la Formación Profesional Integral GUÍA DE APRENDIZAJE

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

Técnico Superior en Programación con Java SE Standard Edition

EXPERTO EN DESARROLLO DE APLICACIONES PARA DISPOSITIVOS MÓVILES

Revista Digital Universitaria. 10 de agosto 2004 Volumen 5 Número 7 ISSN:

Curso Programación Java JSE 8 desde Cero Descripción Programación Java JSE 8 desde cero Curso Programación Java JSE 8

La clase Integer y sus métodos. Los Operadores (concepto). Operadores Lógicos y a nivel de Bits. Operadores de desplazamiento. Concatenaciones. La Con

Diplomado Programming Java (JSE, Servlets & JSP) with Oracle 10g, Eclipse (o NetBeans) & JBoss

José Luis Alonzo Velázquez

Experto en Desarrollo de Componentes de Negocio con Tecnología Empresarial Java Beans

Tema 5. Plataforma Java EE

CURSO DE FUNDAMENTOS DE JAVA

C.I.F.: B Inscrita en el Registro Mercantil de Madrid, Tomo Libro 0, Folio 135, Sección 8. Hoja M Inscripción 1ª

Diplomado Programación Java 8 desde POO (JSE, Servlets & JSP) con Oracle 11g, JPA con Hibernate, Eclipse & Tomcat

Transcripción:

5 C A P I T U L O Programacion orientada a objetos con Java En este capitulo haremos una breve introduccion al lenguaje de Java 1, mostrando la relacion entre el modelado en UML 2 y la programacion en Java, y se describiran algunos aspectos relevantes para el desarrollo de los capitulos posteriores del libro. 5.1 Introduccion a Java Para apreciar el gran movimiento que hay detras de Java, es necesario comprender que es mucho mas que un lenguaje, mas bien es un sistema de gran alcance. En cierta manera, desato un fenomeno parecido al de Smalltalk hace 20 anos, gracias al sistema que tenia alrededor de su lenguaje. For tanto, en esta seccion analizaremos las caracteristicas principales del lenguaje de Java, para despues seguir con otros aspectos significativos. 5.1.1 Caracteristicas El lenguaje de Java tiene caracteristicas que lo han hecho un lenguaje esencial para la programacion de sistemas de computo, que consta de los siguientes puntos: Orientado a objetos. Ante todo Java es un lenguaje orientado a objetos, lo cual lo pone en la misma categoria que lenguajes como C++ y Smalltalk. Como parte de esta caracteristica, se cuenta con un ligado dinamico (dynamic linkage) de clases en tiempo de ejecucion, herencia y polimorfismo; ademas de aspectos de metanivel similares a los de Smalltalk. Portatil. Un aspecto que ha hecho de Java un lenguaje muy utilizado es su portabilidad. A diferencia de lenguajes como C y C++, que varfan en su detalle dependiendo de la maquina en que se ejecuten, Java es exactamen-

te igual en cualquier plataforma. For ejemplo, a diferencia de C y C++, el tamano de los tipos de datos en Java es fijo, independiente de la maquina. La importancia de este aspecto es que si se compila el programa en una plataforma particular, el sistema correra en cualquier maquina, reduciendo mucho el costo de desarrollo (tiempo y dinero). Para ello, esta el concepto de la maquina virtual de Java (Java Virtual Machine, JVM), que debe existir en cada plataforma donde se ejecute un programa de Java. Abierto. Este aspecto de portabilidad ocurre gracias a su diseno abierto, que permite a cualquier compania, e incluso desarrollador, tomar el codigo fuente, para adaptarlo a una nueva plataforma donde aun no se ha probado. Niriguno de los demas lenguajes ofrecen esta caracteristica. Otra razon de la gran popularidad de Java. Gratis. Muy de la mano con el aspecto "abierto" esta que el lenguaje se ofrece gratis, aunque bajo licencia, a cualquier usuario. Esto reduce el costo de la aplicacion y fortalece la decision de utilizarlo en distintas plataformas, donde no se incurre en el costo de pagar gran numero de licencias, como es obligatorio en la mayoria de los demas productos. Integrado a la web. Este es uno de los aspectos que ha impulsado la gran difusion de Java, en una epoca donde la Internet ha sido de crucial importancia. Java es el unico lenguaje, con excepcion de algunos lenguajes scripts, que viene integrado con los navegadores (browsers) mas utilizados en la Web. Simple. Otro aspecto es su similitud con C y C++, en relacion con las expresiones basicas del lenguaje. Esto ha permitido a los programadores aprender Java de manera mas rapida, a diferencia de lenguajes como Smalltalk que requieren un cambio en la manera de pensar de los programadores ya acostumbrados a C y C++. Sin embargo, Java se considera maspwro que C++, ya que no contiene mas que clases, lo que simplifica el programa y al propio compilador. Java disminuye la complejidad de C++, como es la aritmetica de apuntadores, que a su vez agrega complejidad a la administracion de memoria. Se elimina la complejidad adicional de tipos como estructuras y el uso de asociaciones de tipo, a traves de typedefs, junto con el preprocesador de C++ con palabras reservadas como #define, ^include y #ifdef. Otro aspecto que se elimina es la sobreescritura de operadores. Tambien se eliminan aspectos de mane jo complicado como la herencia multiple. Robusto. En contraste con C++ y, en especial, con C, Java esta fuertemente tipificado, lo que ayuda a encontrar con mayor facilidad los errores de programacion durante la etapa de compilacion. Java tambien incluye manejo de excepciones y recoleccion de basura, con objeto de lograr programas mas robustos. Seguro. Debido a la eliminacion de los apuntadores de C y C++, Java logra un modelo de mane jo de memoria mucho mas seguro, que ademas se apoya en el modelo de verificacion de codigo en tiempo de ejecucion, como veremos mas adelante en la descripcion del modelo completo de Java. Eftciencia. En la actualidad, Java esta considerado como un lenguaje eficiente. Aunque nunca llegue a la eficiencia de C, en este aspecto se le compara con C++. Esta eficiencia se basa en que cuenta con un compilador para generar el codigo en contraste con aquellos lenguajes completamente interpretados, donde el rendimiento es menor. Ahora Java cuenta con un compilador incremental (Just-in-Time Compiler, JIT), que ayuda a lograr estos objetivos. 130 130 CAP. 5 PROGRAMACION ORIENTADA A OBJETOS CON JAVA

Bibliotecas. Otro aspecto que ha hecho de Java un lenguaje muy aceptado es la riqueza de sus bibliotecas o paquetes (package). Esto esta en contraste radical con C y C++, donde las bibliotecas realmente no existen. En cambio Java contiene un gran numero de bibliotecas que facilitan la creacion de programas, ademas de asegurar una estandarizacion entre aplicaciones. Existen bibliotecas para el manejo de estructuras de datos avanzadas, manejo de multimedia, manejo de redes como TCP/IP, procedimientos remotos y concurrencia mediante multiples hilos deprocesamiento (multiple threads), estos ultimos tambien conocidos como procesos finos o Hvianos. En la actualidad, aprender el lenguaje de Java como tal es solo 10% del esfuerzo, 90% restante se enfoca a aprender a utilizar sus bibliotecas. Obviamente se estudian solo aquellas que se desea conocer. Por ejemplo, una biblioteca importante es la del sistema de ventanas que puede correr bajo cualquier plataforma. Existe el Abstract Window Toolkit (AWT) desde la primera version de Java, y se cuenta en la actualidad con las bibliotecas Java Foundation Classes (JFC), tambien conocidas como SWING. Ademas de estas existen bibliotecas de manejo de graflcas en dos y tres dimensiones. Incluso existen versiones para correr en plataformas moviles, como asistentes personales. Tecnologia. Existe un gran numero de productos y tecnologia desarrollados alrededor de Java. Aparte de este lenguaje se cuenta con productos tales como Enterprise JavaBeans (EJB), Java Server Pages (JSP), Java Servlets y Java Data Base Connectors (JDBC). Ademas, existen productos relacionados con estandares tales como Common Object Request Brower Architecture (CORBA) y extended Markup Language (XML). En la actualidad hay tres ediciones principales Java: Java2 Enterprise Edition (J2EE), Java2 Standard Edition (J2SE) y Java2 Micro Edition (J2ME). 5.1.2 Procesamiento La figura 5.1 ilustra el procesamiento de un programa escrito en Java. Del lado izquierdo se muestran los pasos para la compilacion de un programa en Java, mientras que del derecho estan los pasos para su ejecucion. Figura 5.1 INTRODUCCION A JAVA Procesamiento de un programa escrito en Java. m

COMPILACION Se escribe un programa en codigo Java utilizando el sufijo ".Java", el cual se compila mediante cualquiera de los compiladores de Java en alguna de las distintas plataformas. En general, debe haber un archive ".Java" por cada clase que exista en el programa, donde el archive tendra el mismo nombre que la clase contenida. El compilador genera el codigo final, conocido como bytecode, a ser interpretado por la maquina virtual de Java. El programa generado tiene como extension el sufijo ".class". Se origina un archivo ".class" por cada clase que se tenga en la aplicacion. Por ejemplo, si se tiene una clase llamada "ej", el nombre del archivo debe ser "ej.java". El archivo se compilaria mediante algun ambiente de desarrollo o utilizando el comando j avac que viene incluido en los kit de desarrollo de Java como Java Development Kit (JDK) o Standard Development Kit (SDK). Por ejemplo, para compilar el archivo anterior se ejecutaria javac ej.java Esta compilation resultaria en el archivo "ej.class". EJECUCION Durante la ejecucion se obtiene el bytecode, guardado en los archives ".class", que puede estar ya en la plataforma actual o haber sido enviado por la red, como en el caso de un browser. El bytecode se carga en la maquina virtual por el cargador de clases. A continuacion este codigo es procesado por el verificador de bytecode y, dependiendo del hardware con que se cuenta, puede ser interpretado y ejecutado por el procesador virtual de la maquina o traducido al codigo de un procesador de Java mediante el generador de codigo. Existen dos maneras de ejecutar (y estructurar) un programa dependiendo de su ambiente de ejecucion. En el caso de una aplicacion "normal" (standalone), se ejecuta mediante el siguiente interpretador de Java, llamado simplemente Java: Java ej2 En el caso de una aplicacion que se ejecuta desde un navegador web (web browser), llamado applet, el contenido de los archives.class que estan almacenados en el servidor, se transmiten a traves de la red y se ejecutan en la maquina cliente (que puede ser la misma maquina que el servidor). Dado que un browser solo comprende archivo. html, el applet debe ser relacionado con un archivo llamado, por ejemplo ej. html. Este archivo debe contener la siguiente linea: <applet code=ej.class width=200 height=200x/applet> Ya que pueden haber multiples archives.class, solo el principal es el que se incluye en la linea anterior. Otra forma adicional de ejecutar el applet es mediante el comando appletviewer, de la siguiente forma: appletviewer ej.html 132 130 CAP. 5 PROGRAMACION ORIENTADA A OBJETOS CON JAVA

A lo largo del capitulo iremos describiendo con mayor detalle el desarrollo de programas en Java junto con ejemplos. 5.1.3 Bibliotecas Java lleva a un nuevo nivel el concepto de bibliotecas o paquetes, estos proveen una amplia funcionalidad para crear nuevas aplicaciones de Java. Ademas de servir como bibliotecas, definen una Application Program Interface (API) [interface de aplicacion de programa], que permite al desarrollador extender las clases de estos paquetes para adaptarlos a las necesidades basicas de un programa. Java organiza estos paquetes en componentes jerarquicos a partir de dos directorios principales. El primero es Java, que es parte esencial de lo que actualmente se conoce como el API 1 de Java. Los paquetes de este API se muestran en la tabla 5.1. Tabla 5.1 Paquete: Paquete Java. applet Java.awt Java. beans j ava. i o java.lang Java. math java.net Java. rmi Java. security java.sql Java. text java.util Contenido Clases para implementar applets, correspondientes a aplicaciones que corren en los browsers. Clases para graficas, componentes Graphic User Interface (GUI) y administradores de control de ventanas, ademas de clases mas especializadas como para procesamiento de imagenes Abstract Window Toolkit (AWT). Clases e interfaces para construir JavaBeans, correspondientes a GUI independientes de plataformas. Clases para control de entradas y salidas, tales como archives y streams. Clases que componen el nucleo del lenguaje. Clases para aritmetica avanzada, incluyendo manejo de precision numerica arbitraria. Clases relacionadas con el manejo de redes, tales como datagramas y sockets. Clases para el manejo de metodos remotos. Clases para aspectos de seguridad, tales como criptograffa. Clases para acceso a base de datos con el lenguaje Standard Query Language (SQL). 1 Clases para internacionalizacion del idioma, independiente del lenguaje particular. Clases adicionales, tales como estructuras de datos avanzadas y compresion de datos. En la actualidad se cuenta con el API 2 de Java, mejor conocido como Java2, el cual incluye ademas del paquete Java, el paquete javax, donde se encuentran componentes mas avanzados, como se muestra en la tabla 5.2. En Java, cada clase debe ser parte de un paquete (package), y puede ser referida por su nombre completo "calificado", el cual consiste en la jerarquia del paquete y el nombre de la clase, todos separados por puntos. Los propios nombres de los paquetes generalmente estan compuestos de multiples componen- INTRODUCCION A JAVA W

Tabla 5.2 Paquetes extendidos de Java. Paquete j avax. accessi bi 1 i ty javax. activation javax.ejb javax. jms javax. mail javax. naming javax. rmi javax. sen/let javax. sql javax. swing javax. transaction Contenido Clases que definen contratos entre componentes de interfaces de usuario y una tecnologia asistente que provee acceso a esos componentes. Clases que definen activacion de los componentes de JavaBeans. Clases para el manejo de Enterprise Java Beans (EJB). Clases para el manejo de Java Message Server (JMS). Clases para el manejo de correo. Clases para el acceso de los servicios de nombres. Clases para la invocacion de metodos remotos incluyendo CORBA. Clases para el manejo de servlets y Java Server Pages (JSP). Clases para el acceso a base de datos con SQL. Clases que proveen un conjunto de componentes para GUI que trabajan en cualquier plataforma. Clases para el manejo de transacciones entre componentes. tes separados por puntos. For ejemplo, la clase PixelGrabber que se encuentra en el paquete java.awt.image se ingresaria mediante: j ava.awt.i mage.pi xelgrabber Vale la penar notar que los paquetes se guardan en distintos directories, donde el "." realmente corresponde a "/" ("\" en la PC), donde se traduce, por ejemplo Java. awt. image a j ava/awt/i mage. Por tanto, la clase PixelGrabber estaria guardada dentro del directorio anterior. Ademas de los paquetes mencionados en las tablas 5.1 y 5.2, existe un numero muy extenso de productos adicionales desarrollados por Sun y otras companias, como los paquetes para graficas en dos y tres dimensiones que son tambien parte de Java, y los paquetes para acceso a bases de datos de Oracle y Sybase. 5.2 Programacion basica En las siguientes secciones se describen algunos de los conceptos basicos de la programacion en Java. 5.2.1 Aspectos generates COMENTARIOS El primer aspecto que debe conocerse en cualquier lenguaje es como distinguir entre codigo y comentarios. En Java existen tres tipos distintos para la especiflcacion de comentarios, como se muestra en la tabla 5.3. 134 CAP. 5 PROGRAMACION ORIENTADA A OBJETOS CON JAVA