Lenguaje de programación Java
Lic. Engels O. Pozo Gutierrez
Paradigma de programación Colección de conceptos que guían el proceso de construcción de un programa, determinando su estructura. Estos conceptos controlan la forma en que pensamos y formulamos los programas. • Un lenguaje de programación refleja un paradigma.
PARADIGMA • • • •
Imperativo Funcional Lógico Orientado a Objetos
LENGUAJE C, Pascal, Cobol, ... Lisp, Hope, Miranda, ... Prolog, Parlog, ... Smalltalk, C++, Eiffel, Java, ...
3
Caracteristicas •Es una plataforma por contar con una multitud de aplicaciones, está Orientado a Objetos. • Diseñado originalmente por Sun Microsystems para aparatos electrodomésticos. • Fue diseñado para no comprometerse con ninguna tecnología en particular. • Está orientado hacia el desarrollo de sistemas distribuidos. • Se desarrolló bajo la premisa que las aplicaciones en Web no son difíciles y la filosofía de trabajo “Una PC es la RED”. • Contiene una librería de clases base. • Usa una máquina virtual para la ejecución de un programa.
Java es mejor por lo que no tiene,que por lo que tiene
• Variables globales. • Goto. • Punteros. • Tipos de datos frágiles. • Asignación de memoria. • Conversión de tipos. • Archivos de cabecera. • Preprocesador. CIP
Historia de los LPOO • 1964- SIMULA (Dahl y Nygaard): – comienzo de la OO – Se identificaba como lenguaje de simulación – Ha influido en el desarrollo de otros LPOO
• 1972- SMALLTALK (Kay, Goldberg, Ingalls) – Simula + LISP (sin tipos) -> LPOO puro – Características de un LPOO [Byte81]: • Todo es un objeto. • Programa = cjto de objetos que se comunican mediante mensajes • Todo objeto es instancia de una clase (tiene un tipo).
• Clase es el repositorio de comportamiento asociado con unobjeto • Las clases se organizan en jerarquías de herencia
Historia de los LPOO – Años 70-80 • “orientado a objetos” era sinónimo de “bueno”. • Soportar el concepto de objeto no es suficiente. BASADO EN OBJETOS
Ada, Modula 2 (1979)
+ clases
BASADO EN CLASES
CLU (1974)
+ herencia de clases ORIENTADO A OBJETOS
Smalltal k (1972)
[Wegner87]
Historia de los LPOO - Años 80 • Proliferación de LPOO • Clasificación atendiendo al origen: Híbridos: • Basados en C: o o • Basados en Pascal: o o • Basados en Lisp: o Púros: o o
C++ Objective-C
1985 1983
Object Pascal1985 Modula-3 1988 CLO S
1988
Sm alltalk Eiffel
1972 1985
B. Stroustrup Brad Cox y Tom Love Apple con W irth Digital y Olivetti
Alan Kay Bertrand M eyer
Historia de los LPOO – Años 90 • Aplicaciones centradas en el web
• 1995 JAVA- SUN – “comportamiento” en páginas HTML – Tecnología de implementación: bytecode+MV
• 2000 C# - Microsoft – Plataforma .NET – Máquina virtual para conseguir la portabilidad – Combina Java y C++
1.Introducción. Características
10
11
Presencia comercial de Java Más de 2.500 millones de dispositivos. Más de 700 millones de ordenadores. 708 millones de teléfonos móviles y otros dispositivos de mano. 1000 millones de tarjetas inteligentes, además de sintonizadores, impresoras,web cams, juegos, sistemas de navegación para automóviles, terminales de lotería, dispositivos médicos, cajeros de pago en aparcamientos, etc. Hoy en día, puede encontrar la tecnología Java en redes y • dispositivos que comprenden desde Internet y superordenadores científicos hasta portátiles y teléfonos móviles; desde simuladores de mercado en Wall Street hasta juegos de uso doméstico y tarjetas de crédito: Java está en todas partes. • • • •
12
13
14
15
16
19
20
21
Características
..Introducción
• Orientado a Objetos – encapsulación, herencia, polimorfismo y ligadura dinámica
• Parecido a C++ – elimina las partes confusas ej: punteros – añade nuevas propiedades ej: garbage collector
• Robusto – comprobación estática de tipos – maneja la memoria por el programador – comprobación de límites de arrays y excepciones.
• Proporciona las librerías y herramientas para programas distribuidos (protocolos http y ftp, interconexión TCP/IP) • Multithreads (ejecución concurrente)
22
Como funciona Java?
23
Compiladores JIT (Just In Time)
24
25
Estructura del Virtual Machine
Funcionamiento de Java
27
28
29
Presentaciones de Java http://java.sun.com • JDK (Java Development Kit) – Necesario para crear (desarrollar y compilar) programas
• JRE (Java Runtime Environment) – Necesario para ejecutar un programa Java – JDK = JRE + herramientas de desarrollo
30
Plataforma Java SE 6.0
Tipos de IDE
32
NetBeans • 2008 > Best Development Environment: NetBeans IDE 6 > Developer.com Product of Year: Developer Tool • 2007 > BOSSIE Award: Best Enterprise IDE > InfoWorld : Java IDE Innovator > O'Reilly ONJava : Winner, Java IDE Platform
33
Versiones de netBeans
34
Versiones de NetBeans (Octubre 2008)
35
36
Variables de entorno • JAVA_HOME – Directorio en el que está instalado el J2SE SDK
• CLASSPATH – Ruta de acceso a las API’s de Java – c:\set CLASSPATH=.;%JAVA_HOME%\lib\tools.jar; %JAVA_HOME%\lib\dt.jar;
– .; Carpeta o directorio actual de trabajo
• PATH del sistema – Directorio donde se encuentran los ejecutables de java – c:\set PATH=%JAVA_HOME%\bin;%PATH%
• Cambiar las variables de entorno en Windows – Panel de Control >> Sistema >> Opciones avanzadas >> Variables de entorno 37
Notacion de paquetes
38
Estructura del proyecto
Clase en Java •
• • •
Cada clase en Java: – Se define en un archivo independiente con extensión .java – Se carga en memoria cuando se necesita. La máquina virtual Java (JVM) determina en cada momento las clases necesarias para la aplicación y las carga en memoria. Para definir una clase en Java se utiliza la palabra reservada class, seguida del nombre de la clase (identificador): public class MiClase {
… } Nota: Es necesario indicar el modificador de acceso public para que se pueda utilizar la clase “desde el exterior”
40
Clase
41
Estructura de una clase nombre
atributos
metodos
Notacion de una clase
43
Tipos de clases
44
45
Implementemos esta clase Veremos que no es tan sencillo
El paquete sera acceso
Atributos
Tipos de ambito
Tipos de modificadores de atributos
50
Encapsulamiento
Encapsulamiento(continuacion)
Metodos
Modificadores de métodos
54