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



Documentos relacionados
Tema 1. Introducción a JAVA

INTRODUCCIÓN A JAVA. Índice

Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta.

Seminario de Java. Contenido

Java en 2 horas. Rodrigo Santamaría

Introducción... 1 Qué es Java?... 1 Compilando a Bytecode... 1 Usando jgrasp Para Hacer el Trabajo Sucio... 5 El Entorno de jgrasp...

INF 473 Desarrollo de Aplicaciones en

Java en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría

A continuación resolveremos parte de estas dudas, las no resueltas las trataremos adelante

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

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

Programación Interactiva Introducción a Java. Escuela de Ingeniería de Sistemas y Computación Facultad de Ingeniería Universidad del Valle

Programador en Plataforma Java y XML

Módulo 2. Inicio con Java


Java Básico. Empaquetamiento y despliegue de aplicaciones. Copyright

Tema 1. Java: Conceptos generales

El lenguaje de programación Java

Desarrollo de Aplicaciones Empresariales en Java INTRODUCCIÓN A JAVA

Índice. Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales Qué ventajas tengo como desarrollador?

19. Packages o paquetes

.NET y J2EE VALORACIÓN Y COMPARACIÓN DE LOS ELEMENTOS DE LAS DOS PLATAFORMAS. Definiciones...2 C# y Java...3 Similitudes...4 Ventajas...

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

Introducción al lenguaje de programación java

JAVA EE 5. Arquitectura, conceptos y ejemplos.

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

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador).

1. Aplicaciones del J2SE SDK1.4.2 de Sun.

Módulo 1 El lenguaje Java

Configuración servidor Tomcat

CURSO DE PROGRAMACIÓN EN JAVA J2EE 7 ÍNDICE

Compilación y ejecución de programas en Java.

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

U.T.4.EL ENTORNO DE DESARROLLO

Introducción a la Programación en Java. Page 1

Introducción a Java LSUB. 15 de enero de 2015 GSYC

INTELIGENCIA ARTIFICIAL 2015 TALLER RÁPIDO DE PROGRAMACIÓN EN JAVA

I. Introducción a la programación orientada a objetos y al lenguaje JAVA Colegio Reuven Feuerstein Javier Navarro

JAVA PARA PRINCIPIANTES

Modelo de Objetos Distribuidos

JAVA. 40 horas 60 días

JAVA: Applets. Diseño de aplicaciones web.

Guía de Instalación de la JDK y del Eclipse

Tarea 1 Programación José Luis Comesaña

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

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

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B)

CAPÍTULO 5 IMPLEMENTACIÓN DEL SISTEMA

Programación interactiva. Oscar Bedoya

UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS

Java Avanzado. Guía 1 7. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Java Inicial (20 horas)

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)

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

Capítulo 7. Implementación del Sistema

Introducción a la programación. Java

CAPITULO 3 VRML-JAVA-WWW

FUNDAMENTOS DE PROGRAMACION CON C#

2.1. Introducción al lenguaje Java

Entre los más conocidos editores con interfaz de desarrollo tenemos:

Tema: Introducción a Java y Netbeans

TECNOLOGÍAS DE DESARROLLO: JAVA

Manual de Versión 4.0

Proyecto ELO-330 Administración Salas del Departamento de Electrónica RC1. Gerardo Lecaros Felipe Díaz

1. El entorno de desarrollo Eclipse

Plataforma desarrollo Java Formación elearning tutorizada en castellano. Fabricante: Java Grupo: Desarrollo Subgrupo: Master Java

Programación Orientada a Objetos con Java

Proyecto MONO. Juantomás García. 1. Introducción. GNOME Hispano

Anexo B. Comunicaciones entre mc y PC

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y

Ingº CIP Fabian Guerrero Medina Master Web Developer-MWD

Java Básico. El entorno de desarrollo. Copyright

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. IIC1102 Introducción a la Programación

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor.

Programación orientada a objetos

Curso de Java POO: Programación orientada a objetos

Capítulo I. Definición del problema y objetivos de la tesis. En la actualidad Internet se ha convertido en una herramienta necesaria para todas

CORPORACIÓN MEXICANA DE INVESTIGACIÓN EN MATERIALES, S.A. DE CV

PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ FACULTAD DE CIENCIAS E INGENIERÍA LINUX-IDES: GRUPO DE INVESTIGACIÓN Y DESARROLLO EN GNU/LINUX

ORBERE. Memoria Técnica del Aplicativo de Gestión de la producción para ADIMDE

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Introducción al lenguaje Java

Curso de PHP con MySQL Gratis

(volver a Tabla de Contenidos)

1. INTRODUCCIÓN El lenguaje de Programación Java. Características del lenguaje. 8 A. García-Beltrán y J.M. Arranz

Programación Orientada a Objetos en Java

Capitulo VI. Conclusiones.

Pruebas de unidad con JUnit

GENERACIÓN DE CÓDIGO

La obra se proporciona bajo los términos de esta licencia pública de Sisoft de México

RMI [Remote Method Invocation]

INTRODUCCIÓN A LA PROGRAMACIÓN DE DISPOSITIVOS MÓVILES

Transcripción:

Programación en Java David Contreras Bárcena David Contreras Bárcena (ETSI) - Comillas 1 Temario 1. Introducción 1. Lenguaje java 2. Compilador SDK 1.4 3. Sintaxis 4. Tipos de datos 5. Estructuras de Control 6. Arrays 2. Tratamiento de objetos con JAVA 1. Ciclo de vida de un objeto 2. Secuencia de ejecución 3. Clases y mensajes 4. Creación de un objeto (Constructores) 5. Herencia 6. Referencias 7. This y super 8. Reflectividad 3. API 1. Documentación API del compilador JDK 2. Clases principales: 1. Object, String, Math, Vector, David Contreras Bárcena (ETSI) - Comillas 2

Temario (cont) 4. Paquetes 5. Modificadores de acceso 6. Gestión de excepciones 1. Bloque try-catch-finally 7. Entrada/salida 1. Clase File 2. Almacenamiento a nivel de bytes, tipos de datos, objetos y líneas de caracteres. 3. Serialización 8. Threads 9. Programación visual Swing 1. Aplicaciones con entorno gráfico 2. Aplicaciones en Internet APPLETS 10. JDBC 1. Conexión con una base de datos 2. Sentencias 3. Sentencias preparadas 11. Sockets 12. JSP 13. Servlets David Contreras Bárcena (ETSI) - Comillas 3 1. Introducción a Java David Contreras Bárcena (ETSI) - Comillas 4

1.1 Introducción a Java Java es Simple Por tener una sintaxis similar a C++, permite a los programadores en este lenguaje una migración rápida, eliminando al mismo tiempo complejidades de C++ (por ejemplo, los punteros), lo que lo hace un lenguaje sencillo de manejar. David Contreras Bárcena (ETSI) - Comillas 5 1.1 Introducción a Java Java es Orientado a Objetos Proporciona los mecanismos para que el programador haga utilización de todas las técnicas de diseño y programación orientada a objetos, como herencia, polimorfismo y abstracción. El lenguaje va acompañado de numerosas librerías de objetos que cubren todas las áreas desde los tipos de datos básicos, hasta los interfaces de I/O y de red. David Contreras Bárcena (ETSI) - Comillas 6

1.1 Introducción a Java Java es Distribuido Java es un lenguaje de programación concebido para crear aplicaciones distribuidas en red y también sobre la Web. Java esta construido con extensas capacidades de interconexión TCP/IP, lo cual permite crear programas en red. David Contreras Bárcena (ETSI) - Comillas 7 1.1 Introducción a Java Java es de Arquitectura Neutra El lenguaje Java se ha diseñado para crear aplicaciones que funcionen en entornos de red, operando en una amplia variedad de arquitecturas hardware y sistemas operativos. El compilador Java genera los byte-code que pueden interpretarse en cualquier plataforma. David Contreras Bárcena (ETSI) - Comillas 8

1.1 Introducción a Java Programas con compilación tradicional Codigo Fuente *.c Compilador (Pentium) Compilador (PowerPC) Compilador (SPARC) Diversas Plataformas Archivo Binario Pentium Archivo Binario PowerPC Archivo Binario SPARC Codigo dependiente de la plataforma David Contreras Bárcena (ETSI) - Comillas 9 1.1 Introducción a Java Programas compilados con Java Codigo Fuente *.java Compilador (Pentium) Compilador (PowerPC) Compilador (SPARC) Byte-code java Independiente de la plataforma *.class Interprete Java Pentium Interprete Java PowerPC Interprete Java SPARC David Contreras Bárcena (ETSI) - Comillas 10

1.1 Introducción a Java Flujo de Ejecución Programa Interprete 0010110100 Programa.java Programa.class (Bytecodes) Compilador David Contreras Bárcena (ETSI) - Comillas 11 1.1 Introducción a Java Robusto y Seguro Se realizan verificaciones en busca de problemas tanto en tiempo de compilación como en tiempo de ejecución. La comprobación de tipos es muy estricta. Al eliminar los punteros, se quita la posibilidad de sobrescribir en alguna zona de memoria un puntero perdido. La gestión de memoria se realiza automáticamente. David Contreras Bárcena (ETSI) - Comillas 12

1.1 Introducción a Java Portabilidad Las especificaciones del lenguaje Java se han definido estrictamente, implementando otros estándares de portabilidad para facilitar el desarrollo, por ejemplo, los tamaños de los tipos de datos básicos y el comportamiento estricto de todos los operadores aritméticos. Los interfaces gráficos pueden ejecutarse en sistemas Unix, Windows o Mac. David Contreras Bárcena (ETSI) - Comillas 13 1.1 Introducción a Java Concurrencia La posibilidad de que un programa pueda ejecutar múltiples procesos de ejecución simultáneos. Cualquier objeto, puede convertirse en proceso y comenzar su ejecución por separado con un mínimo esfuerzo de programación. David Contreras Bárcena (ETSI) - Comillas 14

1.1 Introducción a Java - Applets Java puede ser utilizado para desarrollar aplicaciones interactivas utilizando el protocolo HTTP, es decir, permite incrustar programas en páginas Web. Estas aplicaciones (denominadas Applets ) son interpretadas y ejecutadas por la máquina virtual Java después de haber sido cargadas desde un servidor Web distante a través de la llamada del usuario enviada desde su browser. David Contreras Bárcena (ETSI) - Comillas 15 1.1 Introducción a Java - Applets Servidor WEB llamada HTML Browser + Máquina virtual java Carga etiqueta Applet interpreta visualiza Página Web referencia Usuario Máquina cliente Ejecutable Carga Java Ejecutable Servidor APPS David Contreras Bárcena (ETSI) - Comillas 16

1.2 JDK Es un paquete de Software distribuido por Sun Microsystems. Incluye dos entorno claramente diferenciados: Desarrollo. Ejecución. David Contreras Bárcena (ETSI) - Comillas 17 1.2 JDK Java Virtual Machine Es un ordenador abstracto que ejecuta programas java compilados (bytecodes). Es virtual porque es generalmente implementado por software sobre una plataforma real de hardware y un sistema operativo. Todos los programas java son compilados para la máquina virtual, por lo que debe estar implementada sobre la plataforma para que los programas puedan ejecutarse. David Contreras Bárcena (ETSI) - Comillas 18

1.2 JDK Java Virtual Machine JVM es el punto central de la portabilidad de Java, los programas Java compilados para la JVM se ejecutan independientemente de cual sea la implementación de esa JVM. JVM puede esta implementada sobre el Sistema Operativo anfitrión o encontrarse incrustada en otra aplicación, como por ejemplo en un navegador Web. David Contreras Bárcena (ETSI) - Comillas 19 1.2 JDK Java Virtual Machine Código Fuente Compilador Java Bytecodes Cargador Clases Vertificador Bytecodes Compilador JIT Hardware Interprete Run-time Tiempo de Ejecución David Contreras Bárcena (ETSI) - Comillas 20

1.2 JAVA 2 J2SE 1.5 J2SE 1.2.x J2SE 1.3.x J2SE 1.4 JRE JRE J2SE J2SE J2EE J2EE Enterprise JavaBeans CORBA JavaServer Pages JDBC Java Message Service XML Transactions JNDI J2EE Connector Servlets ECperf JDK 1.1.x David Contreras Bárcena (ETSI) - Comillas 21 JAVA 2 David Contreras Bárcena (ETSI) - Comillas 22

1.2 Compiladores y Entornos de Desarrollo NetBeans (Sun) Eclipse Symantec Café (Symantec) JBuilder (Borland) Java Workshop (Sun) Visual J++ (Microsoft) Bongo Marimba (Desarrolladores de Java) David Contreras Bárcena (ETSI) - Comillas 23 1.2 JDK - Herramientas de desarrollo Se pueden destacar las siguientes herramientas: javac Compila el código fuente y obtiene los byte-codes java Interprete del código java compilado jdb Depurador de código javadoc Genera un documento de ayuda sobre las clases que hemos creado en formato HTML appletviewer Visor de applets, incluidos en páginas HTML jar Permite crear bytecodes comprimidos javah Convierte programas java a código nativo C. David Contreras Bárcena (ETSI) - Comillas 24

1.2 JDK - javac El comando javac compila los ficheros fuente de Java a ficheros bytecode. Los ficheros del código fuente deben de tener una extensión.java. javac Hola.java David Contreras Bárcena (ETSI) - Comillas 25 1.2 JDK - javac Cómo entender los mensajes de error? Compilación sin error: Un método que no especifica el tipo que devuelve, producido en la línea 4, justo antes del main: Tipo de error Línea donde se ha producido el error Descripción del error Punto donde se ha producido David Contreras Bárcena (ETSI) - Comillas 26

1.2 JDK - javac Error producido en la línea 7 del tipo No puedo resolver el símbolo. Generalmente estos errores se deben a clases o referencias que no han sido definidas previamente. Si la clase Arbol, en este caso, está implementada, deberemos asegurarnos que se encuentra en el mismo directorio sino trabajamos con paquetes. De ser así, deberemos realizar un import. David Contreras Bárcena (ETSI) - Comillas 27 1.2 JDK - java El comando java ejecuta los ficheros.class que ha creado el compilador. No hace falta indicar la extensión en el comando. Este comando ejecuta el método main de la clase que va a ejecutar. java Hola David Contreras Bárcena (ETSI) - Comillas 28

1.2 JDK - jdb El depurador de Java. Funciona a través de línea de comandos. Antes de usar el depurador hay que compilar la aplicación o el applet con la opción -g. Funciona de dos maneras diferentes: Con el comando jdb Con la opción -debug en el interprete jdb Hola David Contreras Bárcena (ETSI) - Comillas 29 1.2 JDK - jdb Comandos del depurador: stop at Clase:línea stop in Clase:método run step print línea cont clear Clase:línea clear Clase:método exit David Contreras Bárcena (ETSI) - Comillas 30

1.2 JDK - javadoc Genera paginas HTML desde los ficheros fuente de Java. Por defecto toma la declaración y los comentarios de las clases, interfaces, constructores, métodos y atributos públicos y protegidos. Como argumento javadoc recibe el nombre de una serie de paquetes o clases. Opciones: -private: incluye toda la información de la clase -public: incluye sólo los públicos (opción por defecto) javadoc private Hola.java David Contreras Bárcena (ETSI) - Comillas 31 1.2 JDK - appletviewer El appletviewer (visor del applet) es una aplicación Java que permite ejecutar los applets sin utilizar un navegador de Web, como puede ser Netscape, HotJava, etc. El applet debe estar incluido en una página HTML. appletviewer pagina.html David Contreras Bárcena (ETSI) - Comillas 32

1.2 JDK - jar Un jar es un fichero comprimido siguiendo el algoritmo ZIP. Concentra todos los bytecodes de un programa en un solo archivo. De esta manera hace más sencilla la distribución de programas JAVA y reduce el tiempo de descarga de los applets. Un JAR contiene, además de las clases, un fichero de información llamado MANIFEST.MF (Dentro del JAR se almacena en el directorio META-INF). El objetivo de este fichero de información es indicar a la JVM cual de las clases del JAR es la ejecutable. Ejemplo de MANIFEST.MF Manifest-Version: 1.0 Created-By: 1.4.1_01 (Sun Microsystems Inc.) Main-Class: App David Contreras Bárcena (ETSI) - Comillas 33 1.2 JDK - jar Cómo crear un jar? Paso 1: Crear el fichero MANIFEST.MF indicando el nombre de la clase de ejecución. Paso 2: Desde el directorio padre de todos los bytecodes (*.class) se ejecuta la herramienta jar.exe. jar cfm Run.jar MANIFEST.MF *.class Opciones de la utilidad jar Nombre del jar a crear Fichero MANIFEST Clases a almacenar en el jar En el siguiente ejemplo, se está creando un fichero llamado pepe.jar, el fichero MANIFEST se encuentra en el subdirectorio info, y las clases a incorporar son App de este directorio y todas las que se encuentran en el subdirectorio obj. jar cfm pepe.jar info\manifest.mf App.class obj\*.class David Contreras Bárcena (ETSI) - Comillas 34

1.2 JDK - jar El contenido de un zip se puede visualizar renombrándolo a ZIP. (run.jar run.zip) Se puede apreciar entones, cómo internamente crea el directorio META-INF de forma automática. David Contreras Bárcena (ETSI) - Comillas 35 1.2 JDK - jar Cómo ejecutar un jar? java jar Run.jar Si no hemos sido capaces de crear el JAR con el fichero MANIFEST.MF, deberemos ejecutarlo de la siguiente forma. java cp Run.jar App La forma más correcta es la primera, ya que cuando nos encontramos con un JAR, no siempre sabemos el nombre de la clase de ejecución. http://java.sun.com/docs/books/tutorial/jar/index.html David Contreras Bárcena (ETSI) - Comillas 36

1.2 JDK (Ejemplo de depuración de código) /** La clase Hola es una clase de prueba */ class Hola { int i; public static void main(string s[]) { Hola h=new Hola(); System.out.println( Hola + h.getinfo()); } /** Devuelve información sobre el objeto */ int getinfo() { // línea 11 int b=5; // línea 12 i=4; // línea 13 i=5; // línea 14 i=6; // línea 15 return i; } } David Contreras Bárcena (ETSI) - Comillas 37 1.2 JDK (Ejemplo de depuración de código) C:\TEMP>javac -g Hola.java main[1] print i C:\TEMP>jdb Hola i = 0 Initializing jdb... main[1] print b 0xa9:class(Hola) b = 5 > stop in Hola.getInfo() main[1] step Breakpoint set in Hola.getInfo() main[1] > run Breakpoint hit: Hola.getInfo (Hola:13) run Hola main[1] print i running... main[1] i = 4 Breakpoint hit: Hola.getInfo (Hola:11) main[1] step main[1] print i main[1] i = 0 Breakpoint hit: Hola.getInfo (Hola:14) main[1] print b main[1] print i "b" is not a valid local, class name, or field i = 5 of (Hola)0xe8 main[1] step main[1] step main[1] main[1] Breakpoint hit: Hola.getInfo (Hola:12) Breakpoint hit: Hola.getInfo (Hola:15) main[1] print i David Contreras Bárcena (ETSI) - Comillas i = 6 38

1.2 JDK (Resumen) Compilar el fichero fuente java : > javac [-g] Hola.java Ejecutar la aplicación: > java Hola Ejecutar el debugger: > jdb Hola Ejecutar el javadoc: > javadoc Hola.java Ejecutar el JAR: > jar cf Run.jar *.class David Contreras Bárcena (ETSI) - Comillas 39