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

Slides:



Advertisements
Presentaciones similares
DESARROLLO DE SOLUCIONES EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN
Advertisements

Sun Microsystems desarrolló, en 1991, el lenguaje de programación orientado a objetos que se conoce como Java. La intención de Sun era crear un lenguaje.
Programación de Dispositivos Móviles Estructura de un programa en J2ME Rogelio Ferreira Escutia.
“Java para Dispositivos Móviles”
Características Generales y Entornos de Desarrollo
Interprete o máquina real
Curso de java básico (scjp)
DESARROLLO DE SOLUCIONES EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN APLICACIONES MOVILES CON J2ME RMS Ing. Ronald Criollo.
DESARROLLO DE SOLUCIONES EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN APLICACIONES MOVILES CON J2ME WIRELESS MESSAGING API Ing. Ronald Criollo.
DESARROLLO DE SOLUCIONES EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN
DESARROLLO DE SOLUCIONES EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN APLICACIONES MOVILES CON J2ME Ing. Ronald Criollo.
Curso de Java Capitulo 7: Continuación Poo Profesor:
Introducción a la programación en JAVA
Programación Interactiva Introducción a Java
Lenguaje de programación Java
Curso de JAVA. Iniciando con las Técnologias Java.
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors MOVING JAVA INTO MOBILE PHONES Josep Pinyol.
Arquitectura CLARO-TECNOTREE
Java Applets Ing. Martín Jiménez.
“Programación orientada a Objetos II”
JME Java Micro Edition.
EI, Profesor Ramón Castro Liceaga APLICACIONES DE JAVA CON PAGINAS WEB (Applets) UNIVERSIDAD LATINA (UNILA)
Aplicación del paradigma orientado a objetos
JAVA FX Es un paquete de software que te permitirá desarrollar aplicaciones web para diferentes plataformas, desde un ordenador ordinario hasta teléfonos.
Jesús Arellano. La plataforma Java Micro Edition, o anteriormente Java 2 Micro Edition(J2ME), es una especificación de un subconjunto de la plataforma.
POO (Programación Orientada a Objetos)
Herramientas para el acceso directo a memoria en C++
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
Conceptos Básicos de Java
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Lic. Rosemary Torrico Bascopé
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
CBT “JUAN DE DIOS BATIZ”, VALLE DE CHALCO SOLIDARIDAD
Tema 6: Clases Antonio J. Sierra.
Nuevas Aplicaciones en Equipos Móviles Pablo Roncagliolo B. Valparaíso – Chile 2006.
Unidad I Java y C++ : Similitudes y diferencias
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
Programación Interactiva Eventos y Swing Escuela de Ingeniería de Sistemas y Computación Facultad de Ingeniería Universidad del Valle.
ESTRUCTURA DE DATOS EN JAVA
IIC Creación de Videojuegos Nicolás Mery Programación de juegos en J2ME para celulares.
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
Un programa no es nada mas que una serie de instrucciones dadas al ordenador en un lenguaje entendido por el, para decirle exactamente lo que queremos.
EI, Profesor Ramón Castro Liceaga Agosto de 2005 UNIVERSIDAD LATINA (UNILA) PROGRAMACION ORIENTADA A OBJETOS EN JAVA (Optativa) PROGRAMACION DE INTERFASES.
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autors Introducción a J2ME Bruno Rodríguez Rodríguez.
Tecnología java para dispositivos con recursos limitados
Applets CONTENIDO ¿Que es un applet? Lo básico de un applet Ciclo de vida de un Applet Las etiquetas de HTML Pasando información a los applets.
Herramientas de polimorfismo y herencia en C++
Curso de Java La tecnología Java
INTRODUCCIÓN A JAVA. Índice ¿Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales ¿Qué ventajas tengo como desarrollador?
Hermilia Molina Acevedo
J2ME M.C. Juan Carlos Olivares Rojas Department of Computer and System Instituto Tecnológico de Morelia
Graficación M.C. Juan Carlos Olivares Rojas. Agenda Diseño de juegos con DirectX. OpenGL. Java3D.
Java for Mobile Devices M.C. Juan Carlos Olivares Rojas Department of Computer and System Instituto Tecnológico de Morelia
Programación de Dispositivos Móviles “Conceptos de J2ME” Rogelio Ferreira Escutia.
“Programando con J2ME” Rogelio Ferreira Escutia. 2 MIDlet mínimo.
Programación Orientada a Objetos
Introducción al Lenguaje. ¿ Qué es PHP ? O Hypertext Pre-processoes (PHP) es un lenguaje de "código abierto" interpretado, de alto nivel, embebido en.
TEMA 9: DIAGRAMA DE CLASE EN UML
Sistemas de Archivos Sistemas Operativos.  Se debe proporcionar un almacenamiento secundario que respalda a la memoria principal  El Sistema de archivos.
Introducción a la Programación Orientada a Objetos (POO)
Universidad Tecnológica de Izúcar de Matamoros Programa Educativo: Tecnologías de la Información Asignatura: Base de datos para aplicaciones Tema: Base.
J2ME Java 2 Platform, Micro Edition (J2ME): Esta versión de Java está enfocada a la aplicación de la tecnología Java en dispositivos electrónicos con capacidades.
La Programación Orientado a Objetos
Diagrama de Clases.
El contexto gráfico La función paint y update nos suministran el contexto gráfico del applet o del componente, en otros casos, hemos de obtener el contexto.
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
:: Prof. Yeniffer Peña Introducción a JAVA Presentación Programación I.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Transcripción de la presentación:

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

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.

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.

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.

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

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

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

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.

Tarea Instalación de NetBeans 6.1 con Mobility Pack.

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.

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).

Versiones de Java

J2ME Un entorno de ejecución de J2ME se compone de: Máquina virtual. Configuración. Perfil. Paquetes Opcionales.

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.

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).

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.

J2ME Connected Device Configuration (CDC) enfocada a dispositivos con más recursos. La VM (Virtual Machine) de la CDC se denomina CVM.

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.

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.

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.

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).

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.

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 ().

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.

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.

J2ME Los MIDlets tienen atributos obligatorios y opcionales

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.

J2ME

import 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"); }

J2ME public void startApp(){ pantalla.setCurrent(formulario); } public void pauseApp(){ } public void destroyApp(boolean unconditional){ pantalla = null; formulario = null; notifyDestroyed(); }

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.

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)

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.

J2ME

javax.microedition.lcdui Interfaces: Choice CommandListener ItemCommandListener ItemStateListener

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

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

javax.microedition.lcdui Spacer StringItem TextBox TextField Ticket

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.

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

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.

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.

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().

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.

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.

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.

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.

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.

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.

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.

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.

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.

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(); …

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.

J2ME Realizar un programa que implemente a través de un formulario la graficación de las funciones: x 2 + 1, 3x 2 - 1, x+1 y x 3 + 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.

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);

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.

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.

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).

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()

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

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)

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.

¿Preguntas, dudas y comentarios?