Java
06.03.12
El lenguaje Java
Lenguaje interpretado Fuertemente tipado Sintaxis similar a C / C++
Java
Sin punteros: g p garbage collection g 100% portable Integra librerías estándar para:
– Interfaces de usuario – Objetos distribuidos – Threads – XML – Web, Móviles, TV, muchas más…
Ejecutable desde navegadores web (Mozilla, MS Explorer, etc.) Origen: aumentar html para páginas web más dinámicas Creado por Sun Microsystems (actualmente Oracle, adquisición Sun en 2010)
2
Pablo Castells
Escuela Politécnica Superior Universidad Autónoma de Madrid
Programación Orientada a Objetos (3er curso, grupo 31) 2. El lenguaje Java
06.03.12
Versiones de Java
Java 1.0 – enero 1996
– Unos cientos de clases
Java 1.1 – febrero 1997
– JavaBeans JDBC RMI JavaBeans, JDBC, RMI…
J2SE 1.2 – diciembre 1998
– Swing, reflexión, Java IDL, Collections…
J2SE 1.3 – mayo 2000
– Compatibilidad RMI/CORBA…
J2SE 1.4 – febrero 2002
– XML, JWS, mejoras internas…
J2SE 5 0 (a.k.a. 1 5) – septiembre 2004 5.0 (a k a 1.5)
– Generics, Enumerations, enhanced“for”…
Java SE 6 (a.k.a. 1.6) – diciembre 2006
– Total de 3.000+ clases, mejoras fuertes de rendimiento…
Java SE 7… ?
3
Java Development Kit (JDK)
Java Runtime Environment (JRE)
– Java Virtual Machine (JVM) – Java API: lenguaje básico + librería estándar de clases
Compilador a bytecode Otros compiladores y herramientas específicas: debuggers, applet viewer, p p gg , pp , generadoresde documentación, compiladores RMI, etc.
4
Pablo Castells
Escuela Politécnica Superior Universidad Autónoma de Madrid
Programación Orientada a Objetos (3er curso, grupo 31) 2. El lenguaje Java
06.03.12
Java SE 6 Platform
5
Java vs. C++
Java
Interpretado Totalmente portable Memoria dinámica Garbage collection No existen punteros Todos los métodos virtuales No tieneherencia múltiple Información completa sobre las clases en tiempo de ejecución Tratamiento genérico de tipos (wrappers)
C++
Compilado: más eficiente Aspectos no portables Memoria automática gestionada por el RTS Memoria dinámica gestionada por el programador Métodos virtuales y no virtuales Permite herencia múltiple Muy limitada (dynamic_cast) Punteros a void
6
Pablo Castells
EscuelaPolitécnica Superior Universidad Autónoma de Madrid
Programación Orientada a Objetos (3er curso, grupo 31) 2. El lenguaje Java
06.03.12
Java
Soporte estándar para interfaces de usuario: Swing g Soporte estándar para concurrencia Soporte estándar para objetos distribuidos: RMI Ejecutable en web browsers (applets) Homogeneidad del lenguaje Mejoras en diseño y sintaxis
C++
No incluido en ellenguaje: Microsoft MFC, etc. , No incluido en el lenguaje No incluido en el lenguaje: CORBA, ActiveX, etc.
Variedad de sintaxis y casos excepcionales Compatible con C
7
Elementos del lenguaje
Pablo Castells
Escuela Politécnica Superior Universidad Autónoma de Madrid
Programación Orientada a Objetos (3er curso, grupo 31) 2. El lenguaje Java
06.03.12
// package... // import...Ejemplo
class Persona { String nombre; int edad; void mostrarDatos () { System.out.println ("Nombre: " + nombre + "\nEdad: " + edad); } Definición de clases } Convención identificadores class MainClase { Método main static void main (String args[]) { Declaración y creación de objetos Persona x = new Persona (); j Acceso a miembros de objetos x.nombre = "Juan Perez"; Strings x.edad= 25; Concatenación de strings x.mostrarDatos (); Packages } Ambito de las variables } Variables y métodos de instancia vs. de clase
9
class Persona { String nombre; int edad; void mostrarDatos () { System.out.println ("Nombre: " + nombre + "\nEdad: " + edad); } Persona (String str, int n) { nombre = str; edad = n; } } class MainClase { static void main (String args[]) {...
Regístrate para leer el documento completo.