Download Principios de Programación Orientada por Objetos Java: Lenguaje
Document related concepts
no text concepts found
Transcript
Principios de Programación Orientada por Objetos Departamento de Sistemas y Computación Facultad de Ingeniería Universidad de los Andes Material Elaborado por: Angela C. Carrillo R. 1 Principios de Programación Orientada por Objetos Java: Lenguaje de Programación • ¿Por qué surge un lenguaje? – Para adaptarse a los cambios de entorno y usos: Independencia de la plataforma – Implantar refinamientos y mejoras a la programación: POO e Internet Angela Carrillo R.. .Departamento de Ingeniería de Sistemas y Computación Universidad de los Andes, Bogotá-Colombia 2 1 Principios de Programación Orientada por Objetos JAVA: Lenguaje de Programación •Lenguaje Orientado por Objetos •Simple, Poderoso y Fácil de aprender •Robusto •Interactivo •Arquitectura neutral •Interpretado y de alto desempeño •Distribuido (concurrencia) y Dinámico •Admite el modelo cliente/Servidor Angela Carrillo R.. .Departamento de Ingeniería de Sistemas y Computación 3 Universidad de los Andes, Bogotá-Colombia Principios de Programación Orientada por Objetos JAVA: Lenguaje de Programación • Seguro – Tiene el Java Security Manager el cual limita el programa Java a un entorno de ejecución Java • Portabilidad – La compilación produce Código Binario (bytecode) que es interpretado por la máquina virtual de Java (JVM) – El intérprete plataforma. se implementa en cada Angela Carrillo R.. .Departamento de Ingeniería de Sistemas y Computación Universidad de los Andes, Bogotá-Colombia 4 2 Principios de Programación Orientada por Objetos JAVA: Lenguaje de Programación • Robusto – Fuertemente tipado y hace validaciones en tiempo de compilación y de ejecución – Manejo de memoria (Recolector de Basura) – Manejo de (excepciones) condiciones excepcionales • Simple – No maneja apuntadores – No herencia múltiple. – No hay sobrecarga de operadores Angela Carrillo R.. .Departamento de Ingeniería de Sistemas y Computación 5 Universidad de los Andes, Bogotá-Colombia Principios de Programación Orientada por Objetos JAVA: Lenguaje de Programación • O.O – Todo es objeto (excepto tipos básicos) – Superclase Object • JNI (Java Native Interface) – Es un API que permite a la JVM llamar aplicaciones y librerías escritas en otros lenguajes. Se crean DLL. • Escribir métodos en C/C++ u otros lenguajes • Llamar métodos JAVA desde otro lenguaje Angela Carrillo R.. .Departamento de Ingeniería de Sistemas y Computación Universidad de los Andes, Bogotá-Colombia 6 3 Principios de Programación Orientada por Objetos Aplicaciones y Applets • Aplicación: – Programa que se ejecuta en el computador utilizando el Sistema Operacional de ese computador • Applet: – Aplicación diseñada para ser transmitida por internet y ejecutada en un navegador compatible con JAVA. – Reacciona usuarios. ante eventos producidos por Angela Carrillo R.. .Departamento de Ingeniería de Sistemas y Computación 7 Universidad de los Andes, Bogotá-Colombia Principios de Programación Orientada por Objetos JDK: Java Development Kit •CLASSPATH •Directorios: bin, demo, docs, include, lib, src •Compilador de Java javac •Intérprete de Java java, appletviewer •Depurador de código dbx, jdb •Generación de documentación javadoc /** */ Angela Carrillo R.. .Departamento de Ingeniería de Sistemas y Computación Universidad de los Andes, Bogotá-Colombia 8 4 Principios de Programación Orientada por Objetos JDK: Java Development Kit • CLASSPATH – Especifica dónde buscar las clases de JAVA durante tiempo de compilación y ejecución – Se coloca como una variable más del autoexec.bat Angela Carrillo R.. .Departamento de Ingeniería de Sistemas y Computación 9 Universidad de los Andes, Bogotá-Colombia Principios de Programación Orientada por Objetos JAVA: Lenguaje de Programación • CLASSPATH (continuación) – Ej. Si tiene como valores: C:/jdk/lib;C:/misclases y necesitamos buscar el archivo ESORED.class en el paquete uniandes.especializaciones la búsqueda que se hace es: C:/jdk/lib/uniandes/especializaciones/ESORED.c lass C:/misclases/uniandes/especializaciones/ESOR ED.class ./uniandes/especializaciones/ESORED.class Angela Carrillo R.. .Departamento de Ingeniería de Sistemas y Computación Universidad de los Andes, Bogotá-Colombia 10 5 Principios de Programación Orientada por Objetos Máquina Virtual de JAVA (JVM) DOS Archivo Ejecutable Código Fuente Compilador Linker 01010101 01010101 11111000 Programa en ejecución UNIX Programa en ejecución WINDOWS Librerías Otros Lenguajes de Programación Angela Carrillo R.. .Departamento de Ingeniería de Sistemas y Computación 11 Universidad de los Andes, Bogotá-Colombia Principios de Programación Orientada por Objetos Máquina Virtual de JAVA (JVM) DOS Archivo de Clase Código Fuente 01010101 01010101 11111000 Compilador de Java javac Programa en ejecución UNIX Programa en ejecución WINDOWS Otros archivos de clase Máquina virtual de JAVA Angela Carrillo R.. .Departamento de Ingeniería de Sistemas y Computación Universidad de los Andes, Bogotá-Colombia 12 6 Principios de Programación Orientada por Objetos Máquina Virtual de JAVA (JVM) • Problemas de Seguridad – Negación del servicio – Invasión de privacidad – Robo de datos – Modificación del sistema – ... Angela Carrillo R.. .Departamento de Ingeniería de Sistemas y Computación 13 Universidad de los Andes, Bogotá-Colombia Principios de Programación Orientada por Objetos Máquina Virtual de JAVA (JVM) •Seguridad •Protecciones a nivel de Lenguaje •A nivel de JVM •SandBox (para Applets) •Cargador de Clase (Java Class Loader) •Verificador del código de Byte (Java Class Verifier) Angela Carrillo R.. .Departamento de Ingeniería de Sistemas y Computación Universidad de los Andes, Bogotá-Colombia 14 7 Principios de Programación Orientada por Objetos Máquina Virtual de JAVA (JVM) INTERNET HTML Clases Applet Navegador WEB Cargador de Clase Verificador de código byte Máquina Virtual de JAVA Administrador de Seguridad Angela Carrillo R.. .Departamento de Ingeniería de Sistemas y Computación 15 Universidad de los Andes, Bogotá-Colombia Principios de Programación Orientada por Objetos Archivo JAR • Formas independientes de la plataforma para empaquetar archivos .class, html, sonido u otros componentes de applets o aplicaciones en un paquete simple que puede ser bajado en una sola transferencia al cliente. <applet code=“archivo.class” archive=“arch.jar, arch2.jar” width = 100 height= 150> Angela Carrillo R.. .Departamento de Ingeniería de Sistemas y Computación Universidad de los Andes, Bogotá-Colombia 16 8 Principios de Programación Orientada por Objetos Archivo JAR •Forma eficaz de distribuir applets así como aplicaciones y JavaBeans •Archivo manifest (contenido del archivo JAR) •Ventajas •Mejoran la eficacia de las descargas •Mejoran el almacenamiento de archivos •Mejoran la seguridad •Son independientes de la plataforma (pkzip) •Son compatibles con versiones antiguas •Son extensibles Angela Carrillo R.. .Departamento de Ingeniería de Sistemas y Computación 17 Universidad de los Andes, Bogotá-Colombia Principios de Programación Orientada por Objetos Archivo JAR •Creación: Utilidad jar jar <opciones> <archivo.jar><archivos> Angela Carrillo R.. .Departamento de Ingeniería de Sistemas y Computación Universidad de los Andes, Bogotá-Colombia 18 9 Principios de Programación Orientada por Objetos Paquetes •Colección de clases relacionadas •Agrupación lógica de un conjunto de clases. •Son almacenados de manera jerárquica. •Para utilizar parcial o totalmente las clases de un paquete se utiliza: import nompaquete; •Para asociar una clase a un paquete: package nompaquete; Angela Carrillo R.. .Departamento de Ingeniería de Sistemas y Computación 19 Universidad de los Andes, Bogotá-Colombia Principios de Programación Orientada por Objetos Paquetes del núcleo de Java •java.applet •java.awt •java.io •java.lang •java.math •java.net •java.rmi •java.security •java.sql •java.text •java.util Clase applet de JAVA Componentes de GUI Servicios generales de Comunicaciones Clases integradas de JAVA Matemática Servicios de red Invocación de métodos remotos Mecanismos de seguridad Manejo de Bases de Datos Manejo de Texto Clases de servicio Angela Carrillo R.. .Departamento de Ingeniería de Sistemas y Computación Universidad de los Andes, Bogotá-Colombia 20 10 Principios de Programación Orientada por Objetos Interfaces • Mecanismo mediante el cual se puede definir la forma general de una clase garantizando que todas las versiones específicas de esa clase amplien el mismo conjunto de Reglas. • Proporciona polimorfismo • Una clase que implemente una interface debe implementar todos sus métodos (deben ser públicos). De lo contrario se convierte en clase abstracta. Angela Carrillo R.. .Departamento de Ingeniería de Sistemas y Computación 21 Universidad de los Andes, Bogotá-Colombia Principios de Programación Orientada por Objetos Comparación con C++ •Aprovecha los puntos fuertes de C++ •Utilización de tipos estrictos •Conversión de tipos hacia arriba •Conversión de tipos hacia abajo •Orientación a objetos •Constructores •Familiaridad de la sintaxis •Especificadores de acceso (public, protected, private) •Declaración de constantes •Verificación de tipos durante ejecución •Control de errores mediante excepciones Angela Carrillo R.. .Departamento de Ingeniería de Sistemas y Computación Universidad de los Andes, Bogotá-Colombia 22 11 Principios de Programación Orientada por Objetos Comparación con C++ •Superación de la limitaciones de C++ •Inicialización predeterminada (NULL) •Unicode nativo •Utilización de nombres globales (todo es objeto) •Verificación de los límites de un arreglo en ejecución •Paquete genérico de contenedoras •Uso de paquetes •Multi-hilos •Clase Object Angela Carrillo R.. .Departamento de Ingeniería de Sistemas y Computación 23 Universidad de los Andes, Bogotá-Colombia Principios de Programación Orientada por Objetos Comparación con C++ • Lo que no tiene de C++ • • • • • • Destructores Sobrecarga de operadores Herencia Múltiple Apuntadores Clases amigas Templates Angela Carrillo R.. .Departamento de Ingeniería de Sistemas y Computación Universidad de los Andes, Bogotá-Colombia 24 12