lenguajes orientados a objetos m.c. juan carlos olivares rojas

75
Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

Upload: amador-arenas

Post on 11-Apr-2015

118 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

Lenguajes Orientados a Objetos

M.C. Juan Carlos Olivares Rojas

Page 2: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

Agenda

4.1 Características esenciales de los lenguajes

orientados a objetos 4.2 Ejemplos de lenguajes orientados a objetos:

CLU, SmallTalk, Eiffel

Page 3: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

Programación Orientada a Objetos• ¿Cuál es la diferencia entre una estructura y una

clase si las dos son ADT (Tipos de Datos Abstractos)?

• La encapsulación

• La encapsulación permite colocar datos lógicamente relacionados como constantes, variables, funciones en una sola entidad. Ejemplos son los paquetes y clases.

Page 4: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

POO• La visibilidad y el ocultamiento de la información

es sumamente importante.

• Este paradigma basa su funcionamiento en la creación de objetos que se dan a través de moldes predeterminados llamado clases.

• No es reinventar la rueda, simplemente es estructurar de mejor forma el paradigma imperativo.

Page 5: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

POO• La reutilización de componentes como son los

mecanismos de herencia y polimorfismo hacen que la construcción de código sea más simple.

• El primer lenguaje basado en este paradigma fue Smalltalk. Lenguajes como Java son considerado lenguajes orientados a objetos no puros, ya que tienen componentes de programación estructurada.

Page 6: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

POO en Python• Las clases se construyen de la siguiente forma:

class nombre: def set(var, val): self.value = val def display(self): print self.value

Nótese que se declaran dos métodos

Page 7: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

POO en Python• Por default todos los miembros de una clase son

públicos.

• El constructo tiene el nombre __init__(), el destructor __del__(), __eq__() para comparar dos objetos, __ne__() cuando no son iguales, __str()__ cuando se regresa un valor como cadena. Existen otros operadores que se pueden redefinir como add, neg y sub que llevan la misma estructura que los demás

Page 8: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

POO en Python• Se puede notar que no se han declarado atributos

de la clase.

• Se considera a Python como un lenguaje de programación ágil.

• Desarrollar en Python un programa que defina dos métodos área para calcular el área de un triangulo en sus dos vertientes

Page 9: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

POO en Python• Para crear objetos se realiza de la siguiente forma

• var = Clase()• Var.metodo(atributo1, atributo2)

• Realizar una clase denominada Fraccion que permita realizar las operaciones de +, -, * y / sobre fracciones.

Page 10: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

Tarea• Instalación de NetBeans 6.1 con Mobility Pack.

Page 11: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• La edición Java 2 Micro Edition fue presentada en

1999 por Sun Microsystems con el propósito de habilitar aplicaciones Java para pequeños dispositivos.

• En esta presentación, lo que realmente se enseñó fue una primera versión de una nueva Java Virtual Machine (JVM) que podía ejecutarse en dispositivos Palm.

Page 12: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• Java Micro Edition es la versión del lenguaje Java

que está orientada al desarrollo de aplicaciones para dispositivos pequeños con capacidades restringidas tanto en pantalla gráfica, como de procesamiento y memoria (teléfonos móviles, PDA`s, Handhelds, Pagers, etc).

Page 13: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

Versiones de Java

Page 14: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• Un entorno de ejecución de J2ME se compone

de:

• Máquina virtual.• Configuración.• Perfil.• Paquetes Opcionales.

Page 15: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• Las diferentes tecnologías Java comparten un

conjunto más o menos amplio de APIs básicas del lenguaje, agrupadas principalmente en los paquetes java.lang y java.io.

• J2ME contiene una mínima parte de las APIs de Java. J2ME usa 37 clases de la plataforma J2SE provenientes de los paquetes java.lang, java.io, java.util.

Page 16: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• J2ME a diferencia de J2SE utiliza una máquina

virtual distinta de la clásica JVM denominada KVM.

• Esta KVM tiene unas restricciones que hacen que no posea todas las capacidades incluidas en la JVM. J2ME es un subconjunto de J2SE (excepto por el paquete javax.microedition).

Page 17: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• Las configuraciones, que son un conjunto de clases

básicas orientadas a conformar el corazón de las implementaciones para dispositivos de características específicas. Existen 2 configuraciones definidas en J2ME:

• Connected Limited Device Configuration (CLDC) enfocada a dispositivos con restricciones de procesamiento y memoria. La VM (Virtual Machine) de la configuración CLDC se denomina KVM.

Page 18: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• Connected Device Configuration (CDC) enfocada a

dispositivos con más recursos. La VM (Virtual Machine) de la CDC se denomina CVM.

Page 19: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• No hay soporte para tipos de punto flotante, no

existen los tipos double ni float (MIDP 1.1).

• No existe soporte para JNI (Java Native Interface).

• Limitada capacidad para el manejo de excepciones

• Reflexión.

Page 20: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME

Page 21: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• La CVM (Compact Virtual Machine) ha sido

tomada como Máquina Virtual Java de referencia para la configuración CDC y soporta las mismas características que la Máquina Virtual de J2SE.

• Está orientada a dispositivos electrónicos con procesadores de 32 bits de gama alta y en torno a 2Mb o más de memoria RAM.

Page 22: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME

Page 23: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2MENOMBRE DE PAQUETE CDC DESCRIPCION

java.io Clases de interfaces estándar de E/S.java.lang Clases básicas del lenguaje.java.lang.ref Clases de referencia.java.lang.reflect Clases e interfaces de reflection.java.math Paquete de matemáticas.java.net Clases e interfaces de red.java.security Clases e interfaces de seguridad.java.security.cert Clases de certificados de seguridad.java.text Paquete de texto.java.util Clases de utilidades estándar.java.util.jar Clases y utilidades para archivos .JAR.java.util.zip Clases y utilidades para archivos ZIP y comprimidos.javax.microedition.io Clases e interfaces para conexión genérica CDC.

NOMBRE DE PAQUETE CLDC DESCRIPCION

java.io Clases y paquetes estándar de E/S. Subconjunto de J2SE.java.lang Clases e interfaces de la Máquina Virtual. Subconjunto de J2SE.java.util Clases, interfaces y utilidades estándar. Subconjunto de J2SE.javax.microedition.io Clases e interfaces de conexión genérica CLDC.

Page 24: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• Los perfiles identifican un grupo de dispositivos por

la funcionalidad que proporcionan (electrodomésticos, teléfonos móviles, etc.) y el tipo de aplicaciones que se ejecutarán en ellos.

• Las librerías de la interfaz gráfica son un componente muy importante en la definición de un perfil. Aquí nos podemos encontrar grandes diferencias entre interfaces, desde el menú textual de los teléfonos móviles hasta los táctiles de los PDAs.

Page 25: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME

• Para la configuración CDC tenemos los siguientes perfiles:

• Foundation Profile.• Personal Profile.• RMI Profile.

• Para la configuración CLDC tenemos los siguientes:• PDA Profile.• Mobile Information Device Profile (MIDP).

Page 26: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME

Page 27: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME

PAQUETES DEL FOUNDATION PROFILE DESCRIPCIONjava. Lang Soporte del lenguaje.java.util Añade soporte completo para zip y otras funcionalidades (java.util.Timer)java.net Incluye sockets TCP/IP y conexiones HTTP.java.io Clases Reader y Writer de J2SE.java.text Incluye soporte para internacionalización.java.security Incluye códigos y certificados.

PAQUETES DEL PERSONAL PROFILE DESCRIPCION

java. applet Clases necesitadas para crear applets o que son usadas por ello.java.awt Clases para crear GUIs con AWT.java.awt.datatransfer Clases e interfaces para transmitir datos entre aplicaciones.java.awt.event Clases e interfaces para manejar eventos AWT.java.awt.font Clases e interfaces para manipulación de fuentes.java.awt.im Clases e interfaces para definir métodos editores de entrada.java.awt.im.spi Interfaces que añaden el desarrollo de métodos editores de entrada.java.awt.image Clases para crear y modificar imágenes.java.beans Clases que soportan JavaBeans .javax.midlet.xlet Interfaces que usan el Personal Profile para la comunicación.

Page 28: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2MEPAQUETES DEL MIDP DESCRIPCION

javax.microedition.Icdui Clases e interfaces para GUIs.javax.microedition.rms Soporte para el almacenamiento persistente del dispositivo.javax.microedition.midlet Clases de definición de la aplicación.javax.microedition.io Clases e interfaces de conexión genérica.java.io Clases e interfaces de E/S básica.java.lang Clases e interfaces de la Máquina Virtual.java.util Clases e intefaces de utilidades estándar.

Page 29: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• El proceso para llevar a cabo la creación de un

MIDlet es el siguiente:

• Crear el MIDlet• Escribir el código y compilar.• Preverificar el código.• Empaquetar en JAR y crear el archivo JAD.• Ejecutar el emulador.

Page 30: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• Las aplicaciones MIDP deben implementar los

siguientes tres métodos:

• startApp (): Este método es utilizado para la ejecución del MIDlet. Su objetivo es ejecutar la aplicación y solicitar recursos.

• pauseApp (): Este método es invocado por el sistema para solicitarle al MIDlet que haga una pausa. Libera los recursos adquiridos por el método starApp ().

Page 31: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• destroyApp (boolean unconditional): Este método

es llamado por el sistema antes de que sea destruido el MIDlet. Además libera todos los recursos adquiridos.

• Los MIDlets son empaquetados en carpetas .JAR junto a imágenes, logos, para formar una MIDlet suite.

Page 32: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME

Page 33: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• Cada archivo .JAR lleva asociado un archivo .JAD

(Java Application Descriptor, Descriptor de Aplicación Java) que es utilizado para gestionar la instalación.

• El archivo .JAM (Java Application Manager, Manejador de Aplicaciones Java) es el encargado de gestionar la descarga y la instalación de los MIDlets.

Page 34: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• Los MIDlets tienen atributos obligatorios y

opcionales

ATRIBUTOS OBLIGATORIOS ATRIBUTOS OPCIONALES

MIDlet-Name MIDlet-DescriptionMIDlet-Versión MIDlet-IconMIDlet-Vendor MIDlet-Info-URLMIDlet-<n> (name, icon, class) MIDlet-Data-SizeMicroEdition-ProfileMicroEdition-Configuration

Page 35: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• Para poder instalar un MIDlet en un teléfono

celular del cliente se siguen los siguientes pasos:

• Paso 1: El Cliente pide una el fichero JAD.• Paso 2: El fichero JAD es descargado al Cliente.• Paso 3: El JAM verifica el archivo JAD.• Paso 4: Se descarga la MIDlet suite al Cliente.

Page 36: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME

Page 37: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME

Page 38: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME

Page 39: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2MEimport javax.microedition.midlet.*;import javax.microedition.lcdui.*;

public class hola extends MIDlet {private Display pantalla;private Form formulario = null;public hola() {

pantalla = Display.getDisplay(this);formulario = new Form("Hola Mundo");

}

Page 40: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME public void startApp(){

pantalla.setCurrent(formulario);}public void pauseApp(){}public void destroyApp(boolean unconditional){

pantalla = null;formulario = null;notifyDestroyed();

} }

Page 41: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• La clase Display representa el manejador de la

pantalla y los dispositivos de entrada.

• Todo MIDlet debe poseer por lo menos un objeto Display.

• En este objeto Display podemos incluir tantos objetos Displayable como queramos.

Page 42: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• La clase Display puede obtener información sobre

las características de la pantalla del dispositivo donde se ejecute el MIDlet, además de ser capaz de mostrar los objetos que componen nuestras interfaces.

• Todo MIDlet debe poseer al menos una instancia del objeto Display. Para obtenerla se utiliza:

• Display pantalla = Display.getDisplay(this)

Page 43: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• Dentro del método startApp tendremos que

hacer referencia a la pantalla que queramos que esté activa haciendo uso del método: setCurrent()

• Hay que tener en cuenta que cada vez que salimos del método pauseApp, entramos en el método startApp, por lo que la construcción de las pantallas y demás elementos que formarán parte de nuestro MIDlet la tendremos que hacer en el método constructor.

Page 44: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME

Page 45: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME

Page 46: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

javax.microedition.lcdui• Interfaces:

• Choice• CommandListener• ItemCommandListener• ItemStateListener

Page 47: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

javax.microedition.lcddui• Alert• AlertType• Canvas• ChoiceGroup• Command• CustomItem• DateField• Display• Displayable

Page 48: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

javax.microedition.lcdui• Font• Form• Gauge• Graphics• Image• ImageItem• Item• List• Screen

Page 49: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

javax.microedition.lcdui• Spacer• StringItem• TextBox• TextField• Ticket

Page 50: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

javax.microedition.lcdui.game• GameCanvas• Layer• LayerManager• Sprite• TiledLayer

• Los IDEs más recientes nos permiten mostrar información de las clases y objetos a través de etiquetas inteligentes.

Page 51: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

Actividad• Realizar una aplicación que tenga menú de

opciones y que permita calcular lo siguiente:

• Áreas de Figuras Geométricas Básicas (Triángulo, Rectangulo, Cuadrado, Rombo, Trapecio), EDSSON

• Conversión de Temperaturas de grados Centígrados, Farenheit y Kelvin JAVIER

Page 52: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

Actividad• Programa que permita multiplicar matrices de 3 x

3 o de 2x2. IVÁN

• Programa que permita realizar el cálculo de sumas, restas, multiplicaciones y divisiones de fracciones. FRANCISCO

• Realizar un menú integrador para invocar cada funcionalidad. A su vez realizar una pantalla de créditos. TODOS. Proyecto MateMovil.

Page 53: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• Muchas de las funcionalidades básicas de Java se

pueden implantar de manera directa en J2ME como el manejo de primitivas gráficas.

• La clase más básica es la Graphics, la cual tiene métodos que nos permiten dibujar sobre un lienzo Canvas.

Page 54: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME

• Generalmente se utilizan dentro del método paint() de un Applet o de una aplicación gráfica.

• Los métodos repaint() y update son variantes del método paint().

Page 55: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME

• El método repaint() se utiliza cuando se desea volver a dibujar la pantalla (lo cual es muy frecuente en los sistemas gráficos multitarea) y dibuja toda la pantalla. El método update() sólo actualiza una región de la pantalla. Muy utilizado en componentes gráficos como botones o listas desplegables.

Page 56: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• La clase Graphics se encuentra dentro del

paquete java.awt.*;

• El método drawString() permite dibujar una cadena de texto en la pantalla.

• El método drawLine() dibuja una línea en la pantalla. El método drawRectangle() permite dibujar un rectángulo en pantalla.

Page 57: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• El método drawOval permite definir óvalos y circulos. El

método drawImage() permite mostrar imágenes en pantallas.

• El método clearRect() permite borrar un área de la pantalla. El método copyArea() copia un área de memoria. Esto se utiliza en los métodos de recorte (clip).

• Métodos como drawPolygon y drawPolyline() permiten definir figuras más elaboradas.

Page 58: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• Los métodos que inician con fill, como fillOval(),

fillRect(), etc., realizan las mismas figuras pero pintan el relleno de las figuras.

• Otros elementos a considerar para el manejo de gráficos son el color y las fuentes (tipos de letras). Java define clases para manipular estos objetos gráficos de manera amplia.

Page 59: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• Los métodos getFont(), setFont(), getColor() y

setColor() permiten manipular fuentes y colores.

• La clases Font y Color se encuentran definidas también en java.awt.*

• El método translate() de Graphics() permite cambiar el punto de referencia que de manera predeterminada es 0,0 para esquina superior izquierda.

Page 60: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• La clase Color define el modelo de color a

emplear, cuenta con algunas constantes para cada tipo de color como orange, yellow, darkgray, etc. El color está dado por tres valores uno para el rojo, otro para el verde y otro para el azul.

• Se cuentan además con métodos para manipular los atributos de la clase.

Page 61: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• La clase Font permite el manejo de fuentes en

pantalla. El constructor de esta clase recibe tres argumentos: el nombre de la fuente, el estilo de la fuente y el tamaño.

• El estilo de la fuente está definido por tres constantes PLAIN (normal), BOLD (negrita) e ITALIC (cursiva). Se cuenta además con métodos auxiliares para manipular los atributos de la clase.

Page 62: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• Una fuente no es otra cosa que una colección de

imágenes que representan los caracteres de un sistema.

• Se cuenta además con la clase FontMetrics que define algunas métricas de la fuente: altura, bajada, la subida, la interlínea, etc.

Page 63: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• También se pueden dibujar figuras 3D muy

sencillas con métodos como draw3DRect y fill3DRect que dan profundidad a las imágenes.

• Algunas de estas funcionalidades dependen del perfil y de la configuración del dispositivo.

Page 64: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

Introducción• Se puede obtener el contexto gráfico de una imagen y

manipularla como si fuera un objeto Graphics. Ejemplo:

Font letra = Font.getFont(Font.FACE_MONOSPACE, Font.SIZE_SMALL, Font.STYLE_PLAIN);

Image logo = Image.createImage(letra.stringWidth(“Hi!”))

Graphics gr = logo.getGraphics(); …

Page 65: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• Existen algunas APIs especiales para el manejo de

gráficos en dispositivos móviles como los definidos por Nokia (com.nokia.mid.ui) que contiene clases como DirectGraphics.

• También se pueden manejar otro tipos de elementos como multimedia, sprites, etc. También se cuenta con la clase Graphic3D para gráficas en 3D.

Page 66: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• Realizar un programa que implemente a través de

un formulario la graficación de las funciones: x2 + 1, 3x2 - 1, x+1 y x3 + x -5.

• El usuario dará los posibles valores de X en un formulario de 5 elementos.

• Nótese que no hay una clase visual para desarrollar gráficos en NetBeans.

Page 67: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• También se puede realizar la conexión a redes,

para ello se deberá utilizar el paquete javax.microedition.io.*

• Se deberá definir una conexión a través de la clase StreamConnection, abriendo buffers de entrada y salida con las clases InputStream y OutputStream Respectivamente.

• Conexión = Connector.open(URL);

Page 68: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• out = conexión.openOutputStream();• In = conexión.openInputStream();

• Se lee el flujo con in(), se sugiere almacenar los datos en un StringBuffer e ir agregando datos con el método append()

• Se puede mejorar las conexiones si se utiliza el objeto HttpConnection, aunque sólo aplica a conexiones Web.

Page 69: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• La información hasta ahora manejada ha sido de

tipo no persistente, de tal forma que al terminar la aplicación y volverla a ejecutar, no se pueden recuperar los datos.

• Para lograr persistencia se requiere de la manipulación de archivos, elemento que no está presente en la mayoría de los dispositivos móviles con CLDC/MIDP.

Page 70: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• Para lograr la persistencia se requiere de un

motor de persistencia conocida como RMS (Record Management System) que no es otra cosa que una pequeña base de datos empotrada en el dispositivo.

• La unidad básica de almacenamiento de la información es el registro (record), ubicado en un almacén de registros (record store).

Page 71: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• Antes de operar un registro se debe abrir o crear.

Las operaciones pueden ser de lectura y escritura.

• Se utiliza el paquete javax.microedition.rms.*

• La clase RecordStore tiene los siguientes métodos:

• openRecordStore()• closeRecordStore()

Page 72: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• deleteRecordStore()• getName()• getNumRecords()• addRecord()• getRecord()• deleteRecord()• enumerateRecords()

Page 73: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

J2ME• Se cuentan con las interfaces de:– RecordEnumeration– RecordComparator– RecordFilters– RecordListener

• Los datos a agregar deben estar en formato de un arreglo de bytes

• rs.addRecord(bytes, 0, bytes.length)

Page 74: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

Referencias• Ferreira, R (2008). Curso de Programación en

J2ME. Instituto Tecnológico de Morelia.

• Prieto (2004). Desarrollo de Juegos con J2ME, Editorial Alfaomega Ra-Ma, España.

Page 75: Lenguajes Orientados a Objetos M.C. Juan Carlos Olivares Rojas

¿Preguntas, dudas y comentarios?