fundamentos de java enterprise edition con jdeveloper - eudris cabrera rodriguez.pdf

45
Let's Rock Java Fundamentos de Java Enterprise Edition con JDeveloper Eudris Cabrera Rodriguez Ingeniero Telemático Senior Software Developer Skype:eudriscabrera LinkedIn:http://www.linkedin.com/in/eudriscabrera Noviembre 2011, Santiago de los Caballeros, R. D.

Upload: jose-luis-haro-vera

Post on 12-Feb-2015

42 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Let's Rock Java

Fundamentos de Java Enterprise Edition con JDeveloper

Eudris Cabrera Rodriguez

Ingeniero TelemáticoSenior Software DeveloperSkype:eudriscabreraLinkedIn:http://www.linkedin.com/in/eudriscabrera Noviembre 2011, Santiago de los Caballeros, R. D.

Page 2: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Objetivos

Introducir al participante en el mundo de la programación en JAVA y la Programación Orientada a Objetos (POO).

Page 3: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Agenda

1. Introducción a la programación en Java.2. Configuración del Entorno de Desarrollo.3. Definición de una clase 4. Paradigma de Orientación a Objetos.

Page 4: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Agenda

1. Introducción a la programación en Java.2. Configuración del Entorno de Desarrollo.3. Definición de una clase.4. Paradigma de Orientación a Objetos.

Page 5: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Introducción al lenguaje de programación Java

Java es un lenguaje de programación orientado a objetos desarrollado por Sun Microsystems a principios de los años 90.

Comparación de Java con C++:El lenguaje en sí mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos más simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulación directa de punteros o memoria.

Java puede correr en multiples plataforma(S.O), en contraste C++ tiene un compilador especifico para cada plataforma.

Page 6: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Introducción al lenguaje de programación JavaTIOBE Programming Community Index for October 2011 http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Page 7: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Introducción al lenguaje de programación Java

Comparación de Java con C++: Para proveer las características anteriores, el programador java tiene que sacrificar un poco de velocidad (rendimiento) cuando comparamos con C++. En los ultimos tiempos java ha mejorado sustancialmente el rendimiento, haciendo más rápida la maquina virtual.

Page 8: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Introducción al lenguaje de programación Java

Comparación con C#:Microsoft Visual C# es similar a Java en muchos aspectos. Al igual que Java, utiliza sintaxis de C++ y puede manejar operaciones de memoria de forma automatica. C# está optimizado para trabajar en entorno windows, sin embargo, la mayoría de los servidores que manejan los datos críticos de las empresas corren sobre linux y solaris. Como resultado, Java es buena opción para desarrollar programas sobre dichas plataformas.

Page 9: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Introducción al lenguaje de programación Java

El lenguaje Java se creó con cinco objetivos principales:1. Debería usar la metodología de la programación orientada a objetos. 2. Debería permitir la ejecución de un mismo programa en múltiples sistemas operativos. 3. Debería incluir por defecto soporte para trabajo en red. 4. Debería diseñarse para ejecutar código en sistemas remotos de forma segura. 5. Debería ser fácil de usar y tomar lo mejor de otros lenguajes orientados a objetos, como C++.

Principios

Page 10: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Introducción al lenguaje de programación Java

Orientado a Objetos La primera característica, orientado a objetos (“OO”), se refiere a un método de programación y al diseño del lenguaje. Una primera idea es diseñar el software de forma que los distintos tipos de datos que use estén unidos a sus operaciones. Así, los datos y el código (funciones o métodos) se combinan en entidades llamadas objetos.

Page 11: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Introducción al lenguaje de programación Java

Independencia de plataforma:

La promesa inicial de James Gosling era Write Once, Run Anywhere (Escríbelo una vez, ejecútalo en cualquier lugar), proporcionando un lenguaje independiente de la plataforma y un entorno de ejecución (la JVM) ligero y gratuito para las plataformas más populares de forma que los binarios (bytecode) de las aplicaciones Java pudiesen ejecutarse en cualquier plataforma.

Page 12: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Introducción al lenguaje de programación Java

El recolector de basura:Un argumento en contra de lenguajes como C++ es que los programadores se encuentran con la carga añadida de tener que administrar la memoria solicitada dinámicamente de forma manual. En Java, este problema potencial es evitado en gran medida por el recolector automático de basura (o automatic garbage collector).

Page 13: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Introducción al lenguaje de programación Java

Sintaxis :La sintaxis de Java se deriva en gran medida de C++. Pero a diferencia de éste, que combina la sintaxis para programación genérica, estructurada y orientada a objetos, Java fue construido desde el principio para ser completamente orientado a objetos. Todo en Java es un objeto (salvo algunas excepciones), y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos).

Page 14: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Introducción al lenguaje de programación Java

Cómo java compila e interpreta el código ?

Page 15: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Introducción al lenguaje de programación Java

Rendimiento:El rendimiento de una aplicación está determinado por multitud de factores, por lo que no es fácil hacer una comparación que resulte totalmente objetiva. En tiempo de ejecución, el rendimiento de una aplicación Java depende más de la eficiencia del compilador, o la JVM, que de las propiedades intrínsecas del lenguaje. El bytecode de Java puede ser interpretado en tiempo de ejecución por la máquina virtual, o bien compilado al cargarse el programa, o durante la propia ejecución, para generar código nativo que se ejecuta directamente sobre el hardware. Si es interpretado, será más lento que usando el código máquina intrínseco de la plataforma destino.

Page 16: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Introducción al lenguaje de programación Java

Continuación:Si es compilado, durante la carga inicial o la ejecución, la penalización está en el tiempo necesario para llevar a cabo la compilación. El uso de un recolector de basura para eliminar de forma automática aquellos objetos no requeridos, añade una sobrecarga que puede afectar al rendimiento, o ser apenas apreciable, dependiendo de la tecnología del recolector y de la aplicación en concreto. Las JVM modernas usan recolectores de basura que gracias a rápidos algoritmos de manejo de memoria, consiguen que algunas aplicaciones puedan ejecutarse más eficientemente.

Page 17: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Agenda

1. Introducción a la programación en Java.2. Configuración del Entorno de Desarrollo.3. Definición de una clase 4. Paradigma de Orientación a Objetos.

Page 18: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Configuración del Entorno de Desarrollo

JDK (Java Development Kit) Antes de que pueda desarrollar aplicaciones Java, el JDK debe estar instalado en su sistema. Además, el sistema puede necesitar ser configurado para trabajar con el JDK. Una vez instalado el JDK, usted estará listo para crear su primera aplicación Java.

Page 19: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Configuración del Entorno de Desarrollo

Instalando el JDK

Page 20: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Configuración del Entorno de Desarrollo

Un resumen de los directorios y archivos del JDK El directorio bin contiene todas las herramientas necesarias para desarrollar y probar un programa, incluyendo el compilador de Java.

El directorio lib contiene librerías y ficheros de apoyo requeridos por las herramientas de desarrollo. El directorio jre contiene el intérprete de Java o Java Runtime Environment (JRE), que se necesita para ejecutar aplicaciones Java, una vez que han sido recopilados. Aunque el JDK utiliza esta versión interna de la JRE, también puede descargar una versión de JRE desde el sitio web de Java.

Page 21: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Configuración del Entorno de DesarrolloJava Virtual Machine:Es una máquina virtual capaz de ejecutar bytecode Java. Sun Microsystems afirma que hay más de 4500 millones de dispositivos habilitados JVM.Lenguajes de la JVM: A pesar de que la JVM fue creada principalmente a ejecutar programas compilados en Java, ahora podemos ejecutar otros lenguajes en la misma maquina virtual java.

Page 22: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Configuración del Entorno de Desarrollo

Versiones de languajes no standard en la JVM

Erlang Erjang

JavaScript Rhino

Pascal Free Pascal

PHP Resin

Python Jython

REXX NetRexx[4]

Ruby JRuby

Tcl Jacl

Page 23: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Configuración del Entorno de Desarrollo

Lenguajes diseñados para correr especificamente en la JVM

MIDletPascalClojureGroovyScalaFantomBBj

Page 24: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Agenda

1. Introducción a la programación en Java.2. Configuración del Entorno de Desarrollo.3. Definición de una clase 4. Paradigma de Orientación a Objetos.

Page 25: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Definición de una clase

Para definir una clase en Java, consideramos la siguiente sintaxis:Código:<control de acceso> class <nombre clase> {<atributos><constructores><métodos>}

Page 26: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Definición de una clase

donde:tipo de dato puede ser cualquiera, incluyendo otra clase. control de acceso puede ser: private, public o protected Nota: Veamos que los controles de acceso, son tal y como están escritos(en idioma ingles), que traducidos dicen:private = privado (declaramos una propiedad o evento privado)public = publico (declaramos una propiedad, o evento publico, que puede ser llamado desde otra clase)protected = protegido (una propiedad de solo lectura, que no se puede modificar)Class, Public, Private,Protected... son palabras reservadas del lenguaje Java, y otros...}

Page 27: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Definición de una clase

PRIMER PROGRAMA EN JAVA Hola Mundo // Hola.javapublic class Hola { public static void main(String[] args) { System.out.println("Hola, mundo!"); } }

Page 28: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Definición de una clase

TIPOS DE DATOS

Java tiene dos grupos de tipos de datos, tipos de datos primitivos y referencias a objetos.Los tipos de datos primitivos de Java son: byte, short , int , long, float , double , char, boolean.Datos de tipo numérico - Números enteros byte, short, int, long - Números en coma flotante float, doubleDatos de tipo carácter charDatos de tipo booleano boolean

Page 29: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

TIPOS DE DATOS

Operadores aritméticosJava incluye cinco operadores para realizar operaciones aritméticas: + Suma- Resta o cambio de signo* Multiplicación/ División% Módulo (resto de la división)

Page 30: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

TIPOS DE DATOS

Cadenas de caracteresLa clase String- String no es un tipo primitivo, sino una clase predefinida- Una cadena (String) es una secuencia de caracteres- Las cadenas de caracteres, en Java, son inmutables: no se pueden modificar los caracteres individuales de la cadena. Concatenación de cadenas de caracteresEl operador + sirve para concatenar cadenas de caracteres

Page 31: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

TIPOS DE DATOS

Referencias de objetos de Java Referencias a objetos de Java son variables que contienen referencias a los objetos. A diferencia de los tipos de datos primitivos de Java que almacenan los datos reales, las referencias objeto almacenar sólo una referencia a los datos reales objeto.

Page 32: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

TIPOS DE DATOS

Datos de tipo booleanRepresentan algo que puede ser verdadero (true) o falso (false) y ocupa un bit en espacio de memoria. Expresiones de tipo booleano * Se construyen a partir de expresiones de tipo numérico con operadores relacionales. * Se construyen a partir de otras expresiones booleanas con operadores lógicos o booleanos.

Page 33: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

TIPOS DE DATOSOperadores relacionales-Operadores de comparación válidos para números y caracteres- Generan un resultado booleano Operador Significado == Igual != Distinto < Menor > Mayor <= Menor o igual >= Mayor o igual

Page 34: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

TIPOS DE DATOSOperadores lógicos/booleanos- Operandos booleanos.- Tienen menos precedencia que los operadores de comparación. ! NOT Negación lógica && AND ‘y’ lógico || OR ‘o’ inclusivo ^ XOR ‘o’ exclusivo

Page 35: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

TIPOS DE DATOS- NOT (!) cambia el valor booleano.- AND (&&) devuelve true si los dos son operandos son true. No evalúa el segundo operando si el primero es false- OR (||) devuelve false si los dos son false. No evalúa el segundo operando si el primero es true- XOR (^) devuelve true si los dos operandos son diferentes. Con operandos booleanos es equivalente a !=

Page 36: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

TIPOS DE DATOS Operadores a nivel de bits- Se pueden utilizar a nivel de bits con números enteros.- No se pueden usar con datos de otro tipo (p.ej. reales).Los operadores NOT (~), AND (&), OR(|) y XOR (^)Si alguno de los operandos es de tipo long, el resultado es long.Si no, el resultado es de tipo int.- NOT (~) realiza el complemento a 1 de un número entero: Cambia los 0s por 1s y viceversa- AND(&), OR(|) y XOR(^) funcionan

Page 37: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

TIPOS DE DATOSLos operadores de desplazamiento <<, >> y >>>- El operador de desplazamiento a la izquierda (<<) desplaza los bits del primer operando tantas posiciones a la izquierda como indica el segundo operando. Los nuevos bits se rellenan con ceros.

El operador de desplazamiento a la derecha con signo (>>) desplaza los bits del primer operando tantas posiciones a la derecha como indica el segundo operando. Los nuevos bits se rellenan con unos (si el primer operando es negativo) y con ceros (si es positivo).

Page 38: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Agenda

1. Introducción a la programación en Java.2. Configuración del Entorno de Desarrollo.3. Clases, Objetos, Palabras Reservadas 4. Paradigma de Orientación a Objetos.

Page 39: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Programación orientada a objetosLa Programación Orientada a Objetos (POO u OOP según sus siglas en inglés) es un paradigma de programación que usa objetos y sus interacciones para diseñar aplicaciones y programas de computadora. Está basado en varias técnicas, incluyendo herencia, modularidad, polimorfismo y encapsulamiento. Su uso se popularizó a principios de la década de 1990. Actualmente son muchos los lenguajes de programación que soportan la orientación a objetos.

Page 40: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Programación orientada a objetosConceptos fundamentales La programación orientada a objetos es una nueva forma de programar que trata de encontrar una solución a estos problemas. Introduce nuevos conceptos, que superan y amplían conceptos antiguos ya conocidos. Entre ellos destacan los siguientes:

Clase: definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas.

Page 41: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Programación orientada a objetosObjeto: entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos). Se corresponde con los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa). Es una instancia a una clase. Método: Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en las propiedades del objeto, o la generación de un "evento" con un nuevo mensaje para otro objeto del sistema.

Page 42: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Programación orientada a objetosEvento: un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. También se puede definir como evento, a la reacción que puede desencadenar un objeto, es decir la acción que genera. Mensaje: una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó.

Page 43: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Programación orientada a objetosPropiedad o atributo: contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus características predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún método. Estado interno: es una variable que se declara privada, que puede ser únicamente accedida y alterada por un método del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). No es visible al programador que maneja una instancia de la clase.

Page 44: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

Programación orientada a objetosComponentes de un objeto:atributos, identidad, relaciones y métodos. Representación de un objeto: un objeto se representa por medio de una tabla o entidad que esté compuesta por sus atributos y funciones correspondientes.

En comparación con un lenguaje imperativo, una "variable", no es más que un contenedor interno del atributo del objeto o de un estado interno, así como la "función" es un procedimiento interno del método del objeto.

Page 45: Fundamentos de Java Enterprise Edition con JDeveloper - Eudris Cabrera Rodriguez.pdf

PREGUNTAS ? WE ROCK JAVA !!!