ALGUNOS TÉRMINOS IMPORTANTES SOBRE LOS QUE SE FUNDAMENTA LA
PROGRAMACIÓN EN JAVA
Conceptos Básicos para entender JAVA
JOSÉ LUIS REDONDO GARCÍA. GRUPO QUERCUS ENGINEERING SOFTWARE, UEX
E.T.S de Ingenieros de Telecomunicación - UPNA
22/11/2005
.2
CONCEPTOS CLAVE
PROGRAMACIÓN ORIENTADA A OBJETOS.MÁQUINA VIRTUAL JAVA.GESTIÓN DE MEMORIA Y RECOLECTOR DE
BASURA.
Paradigma de P.O.O
Paradigma estructurado o procedural: Los programas se dividen en procedimientos independientes con acceso total a los datos comunes.
Algortimos + Estructuras de Datos = Programas
Paradigma orientado a objetos: Los datos se consideran la parte más importante del programa. Los objetos modelan las características de los problemas del mundo real, su comportamiento ante estas caracteristicas y su forma de interactuar con otros elementos
Objetos + mensajes = Programas
Ejemplo: Tomarse un café en la panadería
Procedural: El cliente entra el la
panadería El cliente pasa detrás
de la barra El cliente prepara la
cafetera El cliente se sirve el
café El cliente se bebe el
café.
OO: El cliente entra en la
panadería El cliente pide un
café al “cafetero” El “cafetero” prepara
el café. El “cafetero” sirve el
café al cliente. El cliente se bebe el
café.
Programación Orientada a Objetos
Vehículo
Animal
Figura
ConceptoGeneralmente, una clase se puede definir como una descripción abstracta de un grupo de objetos, cada uno de los cuales tiene una serie de atributos, un estado específico y es capaz de realizar una serie de operaciones.
Clases
Atributos Operaciones Comportamiento
Lavadoramarcamodelocapacidad...
ProgramarPonerRopaCerrarPuertaLavar
Objetos
Concepto:Un objeto, no es más que una instancia de una clase. La instancia de una clase significa definir un objeto dándole valores a sus atributos y comportamiento, y realizando operaciones permitidas por la clase.
Valores de los atributos
Estado Identidad
ID:Lavadora
marca=“Lapava”capacidad=5estado=enjuagando
Programación Orientada a Objetos
Definición:La POO es un estilo de programación, donde todos los elementos que forman parte del problema se conciben como objetos, definiendo cuales son sus atributos y comportamiento, como se relacionan entre sí y como están organizadas.
Estructura Interna de un Objeto:
Atributos: Define el estado del objeto
Métodos: Define el comportamiento del objeto
Ventajas de P.O.O
Encapsulamiento: Permite la protección de ciertas partes de un objeto del acceso desde otros objetos externos
Herencia: Jerarquía de clases basada en la agrupación de atributos o métodos comunes
Polimorfismo: Tratamiento generalizado a todas las clases pertenecientes a una jerarquía de herencia.
Máquina Virtual Java
Es la base de que Java esté en todos sitios:
Código fuente
Compilador Java
Byte-codes
Win32 JVM
Código máquinaWin32
Macintosh JVM UNIX JVM
Código máquinaMacintosh
Código máquinaUNIX
Máquina Virtual Java
E.T.S de Ingenieros de Telecomunicación - UPNA
22/11/2005
.12
Máquina Virtual Java
Compilador tradicional
• Traslada sentencias alto-nivel a múltiples instrucciones.
• Creación de librerías como resultado de compilaciones previas.
• Juntando, se crea programa ejecutable.
Intérprete de ByteCodes
• Compilador Java
Traduce código fuente a código intermedio.
• Interprete de Java
Virtual Machine(JVM)
(ByteCodes interpretados (ejecutados))
E.T.S de Ingenieros de Telecomunicación - UPNA
22/11/2005
.13
Ventajas M.V.
No se interrumpe fácilmente.Evita sobreescribir o corromper memoria
mediante punteros.Manejo de excepciones.Verificación de ByteCodes (por ejemplo no
acceso ilegal de memoria).
E.T.S de Ingenieros de Telecomunicación - UPNA
22/11/2005
.14
Aplicaciones seguras ya que no acceden a zonas delicadas de memoria o de sistema
No existen punteros, no acceso a zonas delicadas de memoria.
Una applet no puede acceder al sistema, a los archivos de la persona que lo está viendo.
Ventajas M.V.
E.T.S de Ingenieros de Telecomunicación - UPNA
22/11/2005
.15
Java compila el código a un fichero objeto de formato independiente de la arquitectura de la máquina en que se ejecutará.
Cualquier plataforma donde exista una JVM se puede ejecutar el código objeto independientemente de la máquina en el que ha sido generado.
Ventajas M.V.
Recolector de Basura
La memoria reservada dinámicamente que no se vaya a usar más debe ser liberada.
En otros lenguajes, esta liberación debe realizarla el propio programador.
La JVM dispone de un proceso que rastrea las operaciones de memoria: el Garbage Collector.
Verifica y libera la memoria que no se necesita
Se ejecuta automáticamente
Puede variar según la implementación de la JVM.
Recolector de Basura