PROGRAMACIÓN ORIENTADA A OBJETOS CON C++ Y JAVA. Notas de clase C++

PROGRAMACIÓN ORIENTADA A OBJETOS CON C++ Y JAVA Notas de clase C++ Elaborado por: Carlos Alberto Fernández y Fernández Instituto de Electrónica y Computación Universidad Tecnológica de la Mixteca Primavera 2007 Programación Orientada a Objetos con C++ y Java Contenido Eclipse.................................................................................................................. 10 Características de C++ ....................................................................................... 13 Comentarios en C++ ......................................................................................... 13 Flujo de entrada/salida...................................................................................... 13 Funciones en línea ............................................................................................. 14 Declaraciones de variables................................................................................ 16 Operador de resolución de alcance ................................................................... 17 Valores por Default............................................................................................ 19 Parámetros por referencia................................................................................. 21 Variables de referencia .................................................................................... 22 Asignación de memoria en C++........................................................................ 24 Plantillas ............................................................................................................ 28 Introducción a la programación orientada a objetos [2, 3]............................. 32 Programación no estructurada.......................................................................... 32 Programación procedural.................................................................................. 32 Programación modular...................................................................................... 33 Datos y Operaciones separados ........................................................................ 34 Programación orientada a objetos .................................................................... 35 Tipos de Datos Abstractos ................................................................................. 36 Los Problemas ................................................................................................. 36 Tipos de Datos Abstractos y Orientación a Objetos ........................................ 37 Conceptos de básicos de objetos........................................................................ 38 Lenguajes de programación orientada a objetos............................................... 41 Carlos Alberto Fernández y Fernández -2- Programación Orientada a Objetos con C++ y Java Características de los principales LPOO ......................................................... 42 Introducción a Java............................................................................................ 44 Origen ................................................................................................................ 44 Características de diseño................................................................................... 45 Simple y familiar ............................................................................................. 45 Orientado a Objetos......................................................................................... 46 Independiente de la plataforma........................................................................ 46 Portable............................................................................................................ 47 Robusto............................................................................................................ 47 Diferencias entre Java y C++ ........................................................................... 49 Archivos .java y .class........................................................................................ 51 Programas generados con java ......................................................................... 51 El Java Developer’s Kit ..................................................................................... 52 Compilación .................................................................................................... 52 “Hola Mundo”................................................................................................... 54 Hola mundo básico en Java ............................................................................. 54 Hola mundo básico en C++ ............................................................................. 55 Hola mundo en un Java Applet........................................................................ 55 Archivo HTML................................................................................................ 57 Ejecución ......................................................................................................... 57 Hola mundo en Eclipse.................................................................................... 58 Fundamentos del Lenguaje Java....................................................................... 59 Comentarios....................................................................................................... 59 Tipos de datos .................................................................................................... 60 Tipos de datos simples..................................................................................... 61 Referencias a objetos ....................................................................................... 62 Identificadores ................................................................................................... 62 Variables ............................................................................................................ 63 Ámbito de una variable. .................................................................................. 64 Carlos Alberto Fernández y Fernández -3- Programación Orientada a Objetos con C++ y Java Operadores ........................................................................................................ 67 Operadores aritméticos:................................................................................... 67 Operadores relacionales:.................................................................................. 69 Operadores lógicos: ......................................................................................... 70 Operadores de bits: .......................................................................................... 71 Operadores de asignación:............................................................................... 72 Precedencia de operadores en Java.................................................................. 72 Valores literales ................................................................................................. 73 Literales lógicos............................................................................................... 73 Literales de tipo entero .................................................................................... 74 Literales de tipo real ........................................................................................ 74 Literales de tipo carácter.................................................................................. 75 Literales de tipo String .................................................................................... 76 Estructuras de control........................................................................................ 77 Estructuras condicionales ................................................................................ 77 Ciclos............................................................................................................... 81 Saltos ............................................................................................................... 85 Arreglos.............................................................................................................. 86 Enumeraciones................................................................................................... 90 Abstracción de datos: Clases y objetos ............................................................. 92 Clases................................................................................................................. 92 Objetos e instancias ........................................................................................... 93 Instanciación.................................................................................................... 93 Clases en C++ ................................................................................................... 94 Miembros de una clase en C++......................................................................... 95 Atributos miembro........................................................................................... 95 Métodos miembro............................................................................................ 95 Un vistazo al acceso a miembros..................................................................... 97 Objetos de clase en C++ ................................................................................... 99 Clases en Java.................................................................................................. 102 Carlos Alberto Fernández y Fernández -4- Programación Orientada a Objetos con C++ y Java Miembros de una clase en Java ....................................................................... 103 Atributos miembro......................................................................................... 103 Métodos miembro.......................................................................................... 104 Un vistazo al acceso a miembros................................................................... 104 Objetos de clase en Java.................................................................................. 105 Asignación de memoria al objeto .................................................................. 105 Alcance de Clase en C++ ................................................................................ 109 Alcance de Clase en Java................................................................................. 109 Usando la palabra reservada this en C++ y Java........................................... 110 Sobrecarga de operaciones.............................................................................. 111 Constructores y destructores en C++.............................................................. 113 Constructor .................................................................................................... 113 Constructor de Copia..................................................................................... 114 Destructor ...................................................................................................... 116 Constructores y finalizadores en Java ............................................................. 119 Constructor .................................................................................................... 119 Finalizador..................................................................................................... 120 Miembros estáticos en C++............................................................................. 121 Miembros estáticos en Java ............................................................................. 124 Objetos constantes en C++ ............................................................................. 127 Objetos finales en Java .................................................................................... 130 Funciones amigas en C++ ................................................................................ 133 Sobrecarga de operadores en C++ .................................................................. 138 Algunas restricciones:...................................................................................... 138 Herencia en C++ ............................................................................................... 148 Introducción..................................................................................................... 148 Implementación en C++ .................................................................................. 149 Carlos Alberto Fernández y Fernández -5- Programación Orientada a Objetos con C++ y Java Control de Acceso a miembros en C++........................................................... 151 Control de acceso en herencia en C++ ........................................................... 153 Manejo de objetos de la clase base como objetos de una clase derivada y viceversa en C++............................................................................................. 157 Constructores de clase base en C++............................................................... 161 Redefinición de métodos en C++..................................................................... 164 Herencia Múltiple en C++ .............................................................................. 167 Ambigüedades ............................................................................................... 171 Constructores en herencia múltiple ............................................................... 175 Herencia en Java............................................................................................... 176 Implementación en Java................................................................................... 176 BlueJ ................................................................................................................ 178 Clase Object..................................................................................................... 181 Control de acceso a miembros en Java............................................................ 182 Control de acceso de clase public en Java ...................................................... 185 Constructores de superclase ............................................................................ 185 Manejo de objetos de la subclase como objetos de una superclase en Java ... 186 Redefinición de métodos .................................................................................. 190 Calificador final............................................................................................... 192 Interfaces........................................................................................................... 193 Asociaciones entre clases en C++ .................................................................... 198 Asociaciones reflexivas en C++ ...................................................................... 200 Multiplicidad de una asociación en C++ ........................................................ 201 Tipos de asociaciones según su multiplicidad ............................................... 201 Asociaciones entre Clases en Java................................................................... 205 Carlos Alberto Fernández y Fernández -6- Programación Orientada a Objetos con C++ y Java Asociación reflexiva en Java............................................................................ 206 Multiplicidad de una asociación en Java......................................................... 206 Objetos compuestos en C++............................................................................. 210 UMLGEC ++ .................................................................................................... 214 Objetos compuestos en Java ............................................................................ 216 Funciones virtuales y polimorfismo en C++................................................... 221 Clase abstracta y clase concreta en C++........................................................ 224 Polimorfismo.................................................................................................... 225 Destructores virtuales ...................................................................................... 226 Clases Abstractas y Polimorfismo en Java..................................................... 241 Clase abstracta y clase concreta en Java ........................................................ 243 Ejemplo de Polimorfismo con una Interfaz en Java ........................................ 255 Plantillas de clase en C++ ................................................................................ 257 Standard Template Library (STL) ................................................................. 261 Generics: Plantillas en Java ............................................................................. 264 Biblioteca de Clases Genéricas en Java .......................................................... 267 Manejo de Excepciones .................................................................................... 270 Manejo de Excepciones en C++....................................................................... 271 Excepciones estandar en C++......................................................................... 272 Manejo de Excepciones en Java ...................................................................... 274 Carlos Alberto Fernández y Fernández -7- Programación Orientada a Objetos con C++ y Java ¿Cómo funciona? ............................................................................................. 274 Lanzamiento de excepciones (throw) ............................................................... 275 Manejo de excepciones .................................................................................... 276 El bloque try .................................................................................................. 277 El bloque catch .............................................................................................. 277 El bloque finally ............................................................................................ 279 Jerarquía de excepciones................................................................................. 281 Ventajas del tratamiento de excepciones....................................................... 282 Lista de Excepciones .................................................................................... 283 Afirmaciones en Java ....................................................................................... 287 Usando afirmaciones ....................................................................................... 287 Habilitando y deshabilitando las afirmaciones ............................................... 288 Introducción a Multihilos en Java .................................................................. 290 Programas de flujo múltiple .......................................................................... 290 Estados de un hilo ............................................................................................ 292 La clase Thread................................................................................................ 294 Comportamiento de los hilos ........................................................................... 295 Interfaz Gráfica AWT...................................................................................... 297 Clases de ventana ............................................................................................ 297 Clase Frame ................................................................................................... 298 Clase Dialog .................................................................................................. 298 Clase Filedialog ............................................................................................. 298 Componentes gráficos...................................................................................... 299 Aplicaciones con menús ................................................................................... 304 Clase MenuBar .............................................................................................. 304 Clase Menu.................................................................................................... 304 Clase MenuItem............................................................................................. 305 Manejo de Eventos ........................................................................................... 308 Carlos Alberto Fernández y Fernández -8- Programación Orientada a Objetos con C++ y Java Introducción..................................................................................................... 308 Modelo de manejo de eventos actual ............................................................... 309 Adaptadores................................................................................................... 313 Otras tecnologías Java ..................................................................................... 320 Principales tecnologías de Java EE................................................................. 321 Referencias ........................................................................................................ 324 Carlos Alberto Fernández y Fernández -9- Programación Orientada a Objetos con C++ y Java Eclipse Eclipse es desarrollado como un proyecto de codigo abierto lanzada en noviembre de 2001 por IBM, Object Technology Internacional y otras compañias. El objetivo era desarrollar una plataforma abierta de desarrollo. Fue planeada para ser extendida mediante plug-ins. Es desarrollada en Java por lo que puede ejecutarse en un amplio rango de sistemas operativos. Tambien incorpora facilidades para desarrollar en Java aunque es posible instalarle plug-ins para otros lenguajes como C/C++, PHP, Ruby, Haskell, etc. Incluso antiguos lenguajes como Cobol tienen extensiones disponibles para Eclipse [1]: • • • • • Eclipse + JDT = Java IDE Eclipse + CDT = C/C++ IDE Eclipse + PHP = PHP IDE Eclipse + JDT + CDT + PHP = Java, C/C++, PHP IDE … Trabaja bajo “workbenchs” que determinan la interfaz del usuario centrada alrededor del editor, vistas y perspectivas. Carlos Alberto Fernández y Fernández - 10 - Programación Orientada a Objetos con C++ y Java Los recursos son almacenados en el espacio de trabajo (workspace) el cual es un fólder almacenado normalmente en el directorio de Eclipse. Es posible manejar diferentes areas de trabajo. Eclipse, sus componentes y documentación pueden ser obtenidos de: www.eclipse.org Para trabajar en este curso se requerirá preferentemente: 1. Java 1.5 o 1.6 2. Eclipse SDK 3.2.x 3. Plug in para C/C++ en Eclipse (CDT) y compilador de ANSI C/C++ si no se tiene uno instalado. Carlos Alberto Fernández y Fernández - 11 - Programación Orientada a Objetos con C++ y Java Tips para instalar CDT (C/C++ Development Tool) en Eclipse: 1. Instalar un compilador de C/C++ a. Si se instala MinGW y se tiene que renombrar el archivo mingw32make.exe por make.exe. Ver http://www.mingw.org b. Además, añadir el depurador gdb pues no viene incluido en MinGW, aunque existe una copia en el sitio antes mencionado o puede obtenerse de: http://sourceware.org/gdb 2. Instalar el CDT desde el sitio recomendado Usando el Update Manager y obteniendo el plug in del sitio Callisto Discovery que aparece listado al entrar a añadir componentes en el Update Manager (Otra opcion es ir a http://www.eclipse.org/cdt/ ) 3. Agregar \MinGW\bin (o el directorio correspondiente) al la variable PATH del sistema. Si el CDT esta bien instalado debe ser posible crear proyectos de C/C++, compilarlos, ejecutarlos y depurarlos dentro del ambiente de Eclipse. Carlos Alberto Fernández y Fernández - 12 - Programación Orientada a Objetos con C++ y Java Características de C++ Ahora comentaremos algunas características de C++ que no tienen que ver directamente con la programación orientada a objetos. Comentarios en C++ Los comentarios en C son: /* comentario en C */ En C++ los comentarios pueden ser además de una sola línea: // este es un comentario en C++ Acabando el comentario al final de la línea, lo que quiere decir que el programador no se preocupa por cerrar el comentario. Flujo de entrada/salida En C, la salida y entrada estándar estaba dada por printf y scanf principalmente (o funciones similares) para el manejo de los tipos da datos simples y las cadenas. En C++ se proporcionan a través de la librería iostream, la cual debe ser insertada a través de un #include. Las instrucciones son: - cout Utiliza el flujo salida estándar. Que se apoya del operador , conocido como operador de extracción de flujo "obtener de" Carlos Alberto Fernández y Fernández - 13 - Programación Orientada a Objetos con C++ y Java Los operadores de inserción y de extracción de flujo no requieren cadenas de formato (%s, %f), ni especificadores de tipo. C++ reconoce de manera automática que tipos de datos son extraídos o introducidos. En el caso de el operador de extracción (>>) no se requiere el operador de dirección &. De tal forma un código de desplegado con printf y scanf de la forma (usando el area de nombres estandar): printf("Número: "); scanf("%d", &num); printf("El valor leído es: " %d\n", num); Sería en C++ de la siguiente manera: cout > num; cout getData() " getData(); base2Ptr = &d; Carlos Alberto Fernández y Fernández - 170 - Pr

16 downloads 101 Views 4MB Size

Recommend Stories


5 C A P I T U L O. Programacion orientada a objetos con Java. 5.1 Introduccion a Java Caracteristicas
5 CAPITULO Programacion orientada a objetos con Java En este capitulo haremos una breve introduccion al lenguaje de Java1, mostrando la relacion entr

Persistencia Orientada a objetos
Persistencia Orientada a objetos Prof. Mg. Javier Bazzocco 2011 1 Bazzocco, Javier Persistencia orientada a objetos. - 1a ed. - La Plata : Universi

POO - Programación Orientada a Objetos
Última modificación: 08-03-2016 230086 - POO - Programación Orientada a Objetos Unidad responsable: 230 - ETSETB - Escuela Técnica Superior de Ingen

Programación Orientada a Objetos. Sesión 4: Herencia
Programación Orientada a Objetos Sesión 4: Herencia Contextualización Cuando hablamos de informática, podemos contemplar varios elementos que se uti

Conceptos de Programación Orientada a Objetos
Conceptos de Programación Orientada a Objetos ¿Qué es un objeto en el mundo real? Un objeto es un elemento real o abstracto, que tiene un estado, un c

Tema 11: Programación orientada a objetos
Tema 11: Programación orientada a objetos Índice 1 La Programación Orientada a Objetos...............................................................

Programación orientada a objetos en Visual Basic.NET
Programación orientada a objetos en Visual Basic .NET Índice Introducción 1 Lección: Entender el concepto de clase 2 Lección: Trabajar con clases

Story Transcript

PROGRAMACIÓN ORIENTADA A OBJETOS CON C++ Y JAVA Notas de clase

C++

Elaborado por:

Carlos Alberto Fernández y Fernández Instituto de Electrónica y Computación

Universidad Tecnológica de la Mixteca Primavera 2007

Programación Orientada a Objetos con C++ y Java

Contenido Eclipse.................................................................................................................. 10 Características de C++ ....................................................................................... 13 Comentarios en C++ ......................................................................................... 13 Flujo de entrada/salida...................................................................................... 13 Funciones en línea ............................................................................................. 14 Declaraciones de variables................................................................................ 16 Operador de resolución de alcance ................................................................... 17 Valores por Default............................................................................................ 19 Parámetros por referencia................................................................................. 21 Variables de referencia .................................................................................... 22 Asignación de memoria en C++........................................................................ 24 Plantillas ............................................................................................................ 28 Introducción a la programación orientada a objetos [2, 3]............................. 32 Programación no estructurada.......................................................................... 32 Programación procedural.................................................................................. 32 Programación modular...................................................................................... 33 Datos y Operaciones separados ........................................................................ 34 Programación orientada a objetos .................................................................... 35 Tipos de Datos Abstractos ................................................................................. 36 Los Problemas ................................................................................................. 36 Tipos de Datos Abstractos y Orientación a Objetos ........................................ 37 Conceptos de básicos de objetos........................................................................ 38 Lenguajes de programación orientada a objetos............................................... 41 Carlos Alberto Fernández y Fernández

-2-

Programación Orientada a Objetos con C++ y Java

Características de los principales LPOO ......................................................... 42 Introducción a Java............................................................................................ 44 Origen ................................................................................................................ 44 Características de diseño................................................................................... 45 Simple y familiar ............................................................................................. 45 Orientado a Objetos......................................................................................... 46 Independiente de la plataforma........................................................................ 46 Portable............................................................................................................ 47 Robusto............................................................................................................ 47 Diferencias entre Java y C++ ........................................................................... 49 Archivos .java y .class........................................................................................ 51 Programas generados con java ......................................................................... 51 El Java Developer’s Kit ..................................................................................... 52 Compilación .................................................................................................... 52 “Hola Mundo”................................................................................................... 54 Hola mundo básico en Java ............................................................................. 54 Hola mundo básico en C++ ............................................................................. 55 Hola mundo en un Java Applet........................................................................ 55 Archivo HTML................................................................................................ 57 Ejecución ......................................................................................................... 57 Hola mundo en Eclipse.................................................................................... 58 Fundamentos del Lenguaje Java....................................................................... 59 Comentarios....................................................................................................... 59 Tipos de datos .................................................................................................... 60 Tipos de datos simples..................................................................................... 61 Referencias a objetos ....................................................................................... 62 Identificadores ................................................................................................... 62 Variables ............................................................................................................ 63 Ámbito de una variable. .................................................................................. 64 Carlos Alberto Fernández y Fernández

-3-

Programación Orientada a Objetos con C++ y Java

Operadores ........................................................................................................ 67 Operadores aritméticos:................................................................................... 67 Operadores relacionales:.................................................................................. 69 Operadores lógicos: ......................................................................................... 70 Operadores de bits: .......................................................................................... 71 Operadores de asignación:............................................................................... 72 Precedencia de operadores en Java.................................................................. 72 Valores literales ................................................................................................. 73 Literales lógicos............................................................................................... 73 Literales de tipo entero .................................................................................... 74 Literales de tipo real ........................................................................................ 74 Literales de tipo carácter.................................................................................. 75 Literales de tipo String .................................................................................... 76 Estructuras de control........................................................................................ 77 Estructuras condicionales ................................................................................ 77 Ciclos............................................................................................................... 81 Saltos ............................................................................................................... 85 Arreglos.............................................................................................................. 86 Enumeraciones................................................................................................... 90 Abstracción de datos: Clases y objetos ............................................................. 92 Clases................................................................................................................. 92 Objetos e instancias ........................................................................................... 93 Instanciación.................................................................................................... 93 Clases en C++ ................................................................................................... 94 Miembros de una clase en C++......................................................................... 95 Atributos miembro........................................................................................... 95 Métodos miembro............................................................................................ 95 Un vistazo al acceso a miembros..................................................................... 97 Objetos de clase en C++ ................................................................................... 99 Clases en Java.................................................................................................. 102 Carlos Alberto Fernández y Fernández

-4-

Programación Orientada a Objetos con C++ y Java

Miembros de una clase en Java ....................................................................... 103 Atributos miembro......................................................................................... 103 Métodos miembro.......................................................................................... 104 Un vistazo al acceso a miembros................................................................... 104 Objetos de clase en Java.................................................................................. 105 Asignación de memoria al objeto .................................................................. 105 Alcance de Clase en C++ ................................................................................ 109 Alcance de Clase en Java................................................................................. 109 Usando la palabra reservada this en C++ y Java........................................... 110 Sobrecarga de operaciones.............................................................................. 111 Constructores y destructores en C++.............................................................. 113 Constructor .................................................................................................... 113 Constructor de Copia..................................................................................... 114 Destructor ...................................................................................................... 116 Constructores y finalizadores en Java ............................................................. 119 Constructor .................................................................................................... 119 Finalizador..................................................................................................... 120 Miembros estáticos en C++............................................................................. 121 Miembros estáticos en Java ............................................................................. 124 Objetos constantes en C++ ............................................................................. 127 Objetos finales en Java .................................................................................... 130 Funciones amigas en C++ ................................................................................ 133 Sobrecarga de operadores en C++ .................................................................. 138 Algunas restricciones:...................................................................................... 138 Herencia en C++ ............................................................................................... 148 Introducción..................................................................................................... 148 Implementación en C++ .................................................................................. 149 Carlos Alberto Fernández y Fernández

-5-

Programación Orientada a Objetos con C++ y Java

Control de Acceso a miembros en C++........................................................... 151 Control de acceso en herencia en C++ ........................................................... 153 Manejo de objetos de la clase base como objetos de una clase derivada y viceversa en C++............................................................................................. 157 Constructores de clase base en C++............................................................... 161 Redefinición de métodos en C++..................................................................... 164 Herencia Múltiple en C++ .............................................................................. 167 Ambigüedades ............................................................................................... 171 Constructores en herencia múltiple ............................................................... 175 Herencia en Java............................................................................................... 176 Implementación en Java................................................................................... 176 BlueJ ................................................................................................................ 178 Clase Object..................................................................................................... 181 Control de acceso a miembros en Java............................................................ 182 Control de acceso de clase public en Java ...................................................... 185 Constructores de superclase ............................................................................ 185 Manejo de objetos de la subclase como objetos de una superclase en Java ... 186 Redefinición de métodos .................................................................................. 190 Calificador final............................................................................................... 192 Interfaces........................................................................................................... 193 Asociaciones entre clases en C++ .................................................................... 198 Asociaciones reflexivas en C++ ...................................................................... 200 Multiplicidad de una asociación en C++ ........................................................ 201 Tipos de asociaciones según su multiplicidad ............................................... 201 Asociaciones entre Clases en Java................................................................... 205 Carlos Alberto Fernández y Fernández

-6-

Programación Orientada a Objetos con C++ y Java

Asociación reflexiva en Java............................................................................ 206 Multiplicidad de una asociación en Java......................................................... 206 Objetos compuestos en C++............................................................................. 210 UMLGEC ++ .................................................................................................... 214 Objetos compuestos en Java ............................................................................ 216 Funciones virtuales y polimorfismo en C++................................................... 221 Clase abstracta y clase concreta en C++........................................................ 224 Polimorfismo.................................................................................................... 225 Destructores virtuales ...................................................................................... 226 Clases Abstractas y Polimorfismo en Java..................................................... 241 Clase abstracta y clase concreta en Java ........................................................ 243 Ejemplo de Polimorfismo con una Interfaz en Java ........................................ 255 Plantillas de clase en C++ ................................................................................ 257 Standard Template Library (STL) ................................................................. 261 Generics: Plantillas en Java ............................................................................. 264 Biblioteca de Clases Genéricas en Java .......................................................... 267 Manejo de Excepciones .................................................................................... 270 Manejo de Excepciones en C++....................................................................... 271 Excepciones estandar en C++......................................................................... 272 Manejo de Excepciones en Java ...................................................................... 274 Carlos Alberto Fernández y Fernández

-7-

Programación Orientada a Objetos con C++ y Java

¿Cómo funciona? ............................................................................................. 274 Lanzamiento de excepciones (throw) ............................................................... 275 Manejo de excepciones .................................................................................... 276 El bloque try .................................................................................................. 277 El bloque catch .............................................................................................. 277 El bloque finally ............................................................................................ 279 Jerarquía de excepciones................................................................................. 281 Ventajas del tratamiento de excepciones....................................................... 282 Lista de Excepciones .................................................................................... 283 Afirmaciones en Java ....................................................................................... 287 Usando afirmaciones ....................................................................................... 287 Habilitando y deshabilitando las afirmaciones ............................................... 288 Introducción a Multihilos en Java .................................................................. 290 Programas de flujo múltiple .......................................................................... 290 Estados de un hilo ............................................................................................ 292 La clase Thread................................................................................................ 294 Comportamiento de los hilos ........................................................................... 295 Interfaz Gráfica AWT...................................................................................... 297 Clases de ventana ............................................................................................ 297 Clase Frame ................................................................................................... 298 Clase Dialog .................................................................................................. 298 Clase Filedialog ............................................................................................. 298 Componentes gráficos...................................................................................... 299 Aplicaciones con menús ................................................................................... 304 Clase MenuBar .............................................................................................. 304 Clase Menu.................................................................................................... 304 Clase MenuItem............................................................................................. 305 Manejo de Eventos ........................................................................................... 308 Carlos Alberto Fernández y Fernández

-8-

Programación Orientada a Objetos con C++ y Java

Introducción..................................................................................................... 308 Modelo de manejo de eventos actual ............................................................... 309 Adaptadores................................................................................................... 313 Otras tecnologías Java ..................................................................................... 320 Principales tecnologías de Java EE................................................................. 321 Referencias ........................................................................................................ 324

Carlos Alberto Fernández y Fernández

-9-

Programación Orientada a Objetos con C++ y Java

Eclipse Eclipse es desarrollado como un proyecto de codigo abierto lanzada en noviembre de 2001 por IBM, Object Technology Internacional y otras compañias. El objetivo era desarrollar una plataforma abierta de desarrollo. Fue planeada para ser extendida mediante plug-ins.

Es desarrollada en Java por lo que puede ejecutarse en un amplio rango de sistemas operativos. Tambien incorpora facilidades para desarrollar en Java aunque es posible instalarle plug-ins para otros lenguajes como C/C++, PHP, Ruby, Haskell, etc. Incluso antiguos lenguajes como Cobol tienen extensiones disponibles para Eclipse [1]: • • • • •

Eclipse + JDT = Java IDE Eclipse + CDT = C/C++ IDE Eclipse + PHP = PHP IDE Eclipse + JDT + CDT + PHP = Java, C/C++, PHP IDE …

Trabaja bajo “workbenchs” que determinan la interfaz del usuario centrada alrededor del editor, vistas y perspectivas.

Carlos Alberto Fernández y Fernández

- 10 -

Programación Orientada a Objetos con C++ y Java

Los recursos son almacenados en el espacio de trabajo (workspace) el cual es un fólder almacenado normalmente en el directorio de Eclipse. Es posible manejar diferentes areas de trabajo. Eclipse, sus componentes y documentación pueden ser obtenidos de: www.eclipse.org Para trabajar en este curso se requerirá preferentemente: 1. Java 1.5 o 1.6 2. Eclipse SDK 3.2.x 3. Plug in para C/C++ en Eclipse (CDT) y compilador de ANSI C/C++ si no se tiene uno instalado.

Carlos Alberto Fernández y Fernández

- 11 -

Programación Orientada a Objetos con C++ y Java

Tips para instalar CDT (C/C++ Development Tool) en Eclipse: 1. Instalar un compilador de C/C++ a. Si se instala MinGW y se tiene que renombrar el archivo mingw32make.exe por make.exe. Ver http://www.mingw.org b. Además, añadir el depurador gdb pues no viene incluido en MinGW, aunque existe una copia en el sitio antes mencionado o puede obtenerse de: http://sourceware.org/gdb 2. Instalar el CDT desde el sitio recomendado Usando el Update Manager y obteniendo el plug in del sitio Callisto Discovery que aparece listado al entrar a añadir componentes en el Update Manager (Otra opcion es ir a http://www.eclipse.org/cdt/ ) 3. Agregar \MinGW\bin (o el directorio correspondiente) al la variable PATH del sistema. Si el CDT esta bien instalado debe ser posible crear proyectos de C/C++, compilarlos, ejecutarlos y depurarlos dentro del ambiente de Eclipse.

Carlos Alberto Fernández y Fernández

- 12 -

Programación Orientada a Objetos con C++ y Java

Características de C++ Ahora comentaremos algunas características de C++ que no tienen que ver directamente con la programación orientada a objetos. Comentarios en C++

Los comentarios en C son: /*

comentario en C

*/

En C++ los comentarios pueden ser además de una sola línea: // este es un comentario en C++

Acabando el comentario al final de la línea, lo que quiere decir que el programador no se preocupa por cerrar el comentario. Flujo de entrada/salida

En C, la salida y entrada estándar estaba dada por printf y scanf principalmente (o funciones similares) para el manejo de los tipos da datos simples y las cadenas. En C++ se proporcionan a través de la librería iostream, la cual debe ser insertada a través de un #include. Las instrucciones son: - cout

Utiliza el flujo salida estándar. Que se apoya del operador , conocido como operador de extracción de flujo "obtener de"

Carlos Alberto Fernández y Fernández

- 13 -

Programación Orientada a Objetos con C++ y Java

Los operadores de inserción y de extracción de flujo no requieren cadenas de formato (%s, %f), ni especificadores de tipo. C++ reconoce de manera automática que tipos de datos son extraídos o introducidos. En el caso de el operador de extracción (>>) no se requiere el operador de dirección &. De tal forma un código de desplegado con printf y scanf de la forma (usando el area de nombres estandar): printf("Número: "); scanf("%d", &num); printf("El valor leído es: " %d\n", num);

Sería en C++ de la siguiente manera: cout > num; cout getData() " getData(); base2Ptr = &d; Carlos Alberto Fernández y Fernández

- 170 -

Programación Orientada a Objetos con C++ y Java

cout

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.