1
Objetos
Departamento de Sistemas y Computación
Facultad de Ingeniería
Universidad de los Andes
Material Elaborado por:
Angela C. Carrillo R.
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
3
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 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 se implementa en cada
5
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
condiciones
excepcionales
(excepciones)
•
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 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
7
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 ante eventos producidos por
usuarios.
Angela Carrillo R..
.Departamento de Ingeniería de Sistemas y Computación 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
9
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 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
11
Máquina Virtual de JAVA (JVM)
Angela Carrillo R..
.Departamento de Ingeniería de Sistemas y Computación Universidad de los Andes, Bogotá-Colombia
Código
Fuente
Compilador
Linker
Archivo
Ejecutable
01010101
01010101
11111000
DOS
UNIX
WINDOWS
Librerías
Programa en
ejecución
Programa en
ejecución
Otros Lenguajes de
Programación
Principios de Programación Orientada por Objetos
Máquina Virtual de JAVA (JVM)
Código
Fuente
Compilador
de Java
javac
Archivo de
Clase
01010101
01010101
11111000
DOS
UNIX
WINDOWS
Otros archivos
de clase
Programa en
ejecución
Programa en
ejecución
Máquina
virtual de
JAVA
13
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 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)
15
Máquina Virtual de JAVA (JVM)
Angela Carrillo R..
.Departamento de Ingeniería de Sistemas y Computación Universidad de los Andes, Bogotá-Colombia
INTERNET
Navegador
WEB
Cargador de
Clase
Verificador
de código
byte
Máquina
Virtual de
JAVA
Administrador
de Seguridad
HTML
Clases Applet
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>
17
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 Universidad de los Andes, Bogotá-Colombia
Principios de Programación Orientada por Objetos
Archivo JAR
•Creación: Utilidad jar
19
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 Universidad de los Andes, Bogotá-Colombia
Principios de Programación Orientada por Objetos
Paquetes del núcleo de Java
•java.applet
Clase applet de JAVA
•java.awt
Componentes de GUI
•java.io
Servicios generales de Comunicaciones
•java.lang
Clases integradas de JAVA
•java.math
Matemática
•java.net
Servicios de red
•java.rmi
Invocación de métodos remotos
•java.security Mecanismos de seguridad
•java.sql
Manejo de Bases de Datos
•java.text
Manejo de Texto
21
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 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
23
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 Universidad de los Andes, Bogotá-Colombia