05/04/2004 Orígenes del Lenguaje Java 3.2 Introducción a Java l l Historia, características, lenguaje y entorno de Java l l l Características del Lenguaje Java Tecnología Java l l l l Lenguaje de Programación l Orientado a objetos Sintaxis similar a C++ l Plataforma l l l l Máquina Virtual Java (JVM) Java API Tres versiones l l l l l J2SE J2EE J2ME l Proceso de Desarrollo en Java Genera bytecode Programa Java public class HolaMundoApp { publicstaticvoid main(String[] args) { // Desplegar "Hola Mundo!" System.out.println(" Hola Mundo!"); } } l HolaMundoApp.class HolaMundoApp.java l Windows JVM Solaris JVM Simple y orientado a objetos l Simple de aprender, alta reutilización y bibliotecas Robusto y seguro l Tipificación fuerte, recolección de basura Interpretado, neutro de la arquitectura y portable l Se compila en bytecode, interpretado por JVM Distribuido y alto desempeño l Movilidad de código y permite tb. compilación JIT Multi-hebra l Mejora la interactividad de la aplicaciones Dinámico l Permite enlace y carga dinámica de clases Aplicación Java l Compilador JVM 1991. James Gosling inicia proyecto para escribir código independiente de plataforma para sistemas empotrados. Intenta con C++, pero no le satisface 1993. Desarrolla un nuevo lenguaje llamado OAK, similar a C++, pero portable y seguro 1994. Aparece WWW y Mosaic 1995. Sun anuncia disponibilidad de lenguaje Java y browser HotJava, que soporta applets 2004. Versión J2se1.5-Beta disponible. Incluye programación genérica como parte del lenguaje Le dice al sistema que ejecute la función main de alguna clase Carga dinámicamente otras clases que requiera Aplicaciones son consideradas confiables (no significa que lo sean) l Pueden leer, escribir, crear o borrar archivos Linux 1 05/04/2004 Un Primer Programa de Aplicación Un Primer Programa de Aplicación /** * La clase HolaMundoApp implementa una aplicación * que despliega por la salida estándar “Hola Mundo” */ public class HolaMundoApp { public static void main(String[] args) { // Desplegar "Hola Mundo!" System.out.println(" Hola Mundo!"); } } Comentarios en Java l // texto l l l Se ignora el texto hasta el final de la línea (como C o C++) /* texto */ l l Se ignora todo texto entre /* y */ (tipo C o C++) /** texto */ l Método main Comentarios de documentación (los usa la herramienta javadoc) Cuando se ejecuta una aplicación Java, el interpretador invoca a main l l l l Acceso a Recursos del Sistema l Java provee una API (Application Programming Interface) que permite acceder a recursos en forma independiente del entorno l l E/S, reloj, etc. La API viene definida en el paquete System Programa Java Si no existe se genera un error main tiene un argumento único, un arreglo de strings Permite al ambiente de ejecución pasar parámetros a la aplicación Por ejemplo en la línea de comando Ejemplo de uso de System class TestNombreUsuario { public static void main(String[] args) { String nombre; nombre = System.getProperty ("user.name"); System.out.println(nombre); } } System Entorno de Ejecución 2 05/04/2004 Applets l l Significa “aplicacioncita”, que lo diferencia de una aplicación normal Uso normal es en un Web Browser l l Modelo de Ejecución del Applet Browser También se puede ver con appletviewer Proceso de compilación similar al anterior, pero diferente modelo de ejecución <HTML> <HEAD> <TITLE>Un Programa Simple con Applet</TITLE> </HEAD> /** * la clase HolaMundo implementa una applet que * simplemente despliega ”Hola Mundo!". */ public class HolaMundo extends Applet { public void paint(Graphics g) { // Display "Hello World!" g.drawString (”Hola Mundo!", 50, 25); } } l La palabra import permite importar clases de un paquete l l En el ejemplo import java.applet:* permite utilizar todas las clases del paquete java.applet En el ejemplo anterior Applet es una clase del paquete java.applet • Página Web que Carga Applet import java.applet.*; import java.awt.*; Importación de Clases y Paquetes Applet Applet JVM Programando un Applet Œ Servidor Web <BODY> Aqui viene la salida del programa: <APPLET CODE="HolaMundo.class" WIDTH=150 HEIGHT=25> </APPLET> </BODY> </HTML> Definición de Subclases l La palabra extends permite definir una subclase a partir de otra (herencia) l En el ejemplo: public class HolaMundo extends Applet { ... 3 05/04/2004 Implementación de Métodos l Una clase puede implementar uno o más métodos l En el ejemplo: public void paint(Graphics g) { g.drawString(”Hola Mundo!", 50, 25); } l Un applet, en general, debe implementar al menos uno de los métodos siguientes métodos: init, start y paint Funcionalidad de Java (2/2) Funcionalidad de Java (1/2) l Esencial l l Interfaces gráficas l l Web, URL, sockets UDP y TCP, direcciones IP Internacionalización l l AWT, Swing, Java2d y Java3d Comunicación en la Red y Applets l l Objetos, strings , números, E/S, estructuras de datos, propiedades del sistema, fecha, hora, etc. Programas pueden adaptarse al lugar e idioma Seguridad l Firma digital, gestión de claves, certificados, control de acceso, etc. Java 2 SDK .... l Threads (hebras) l l l l Se pueden enchufar en arquitecturas existentes Serialización de Objetos l l Programación con múltiples threads Componentes de Software (JavaBean) Permite persistencia liviana y comunicación via RMI Acceso uniforme a base datos relaciones l Usan JDBC (Java Database Connectivity) 4