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