Avances tecnológicos del siglo XXI y ejemplos de estos
[ES] Introdución a la plataforma java
1. 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.
3. 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.
4. 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.
5. 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.
6. Introducción al lenguaje de programación Java
TIOBE Programming Community Index for October 2011
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
7. 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.
8. 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.
9. Introducción al lenguaje de programación Java
Principios
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++.
10. 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.
11. 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.
12. 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).
13. 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).
15. 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.
16. 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.
17. 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.
18. 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.
20. 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.
21. Configuración del Entorno de Desarrollo
Java 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.
22. 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
23. Configuración del Entorno de Desarrollo
Lenguajes diseñados para correr especificamente en la
JVM
MIDletPascal
Clojure
Groovy
Scala
Fantom
BBj
24. 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.
25. 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>
}
26. 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
27. Definición de una clase
PRIMER PROGRAMA EN JAVA
Hola Mundo
// Hola.java
public class Hola
{
public static void main(String[] args) {
System.out.println("Hola, mundo!");
}
}
28. 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, double
Datos de tipo carácter char
Datos de tipo booleano boolean
29. TIPOS DE DATOS
Operadores aritméticos
Java 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)
30. TIPOS DE DATOS
Cadenas de caracteres
La 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 caracteres
El operador + sirve para concatenar cadenas de caracteres
31. 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.
32. TIPOS DE DATOS
Datos de tipo boolean
Representan 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.
33. TIPOS DE DATOS
Operadores 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
34. TIPOS DE DATOS
Operadores 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
35. 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 !=
36. 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
37. TIPOS DE DATOS
Los 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).
38. 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.
39. Programación orientada a objetos
La 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.
40. Programación orientada a objetos
Conceptos 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.
41. Programación orientada a objetos
Objeto: 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
42. Programación orientada a objetos
Evento: 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ó.
43. Programación orientada a objetos
Propiedad 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.
44. Programación orientada a objetos
Componentes 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.