Story Transcript
Introducción a la POO JUAN CARLOS CONDE RAMÍREZ INTRODUCTION TO PROGRAMMING
La Tecnología Orientada a Objetos •Se ha dicho que la Tecnología Orientada a Objetos es una metodología, un paradigma, una tecnología de empaquetamiento, un método de análisis y diseño, y hasta un nuevo lenguaje para datos abstractos. •Planteada como una herramienta para construir modelos funcionales de Sistemas Físicos complejos que pudieran contener varios miles de componentes.
FCC-BUAP
2
Objetivo del curso •Conocer el ambiente de trabajo utilizando los conceptos de la Programación Orientada a Objetos •Familiarizarse con los conceptos de Clase y Objetos. •Aplicar la POO en el desarrollo de aplicaciones.
FCC-BUAP
3
Situación actual •La tecnología orientada a objetos es ya una realidad, sinónimo de calidad y robustez.
•Su impacto aparece en todos los ámbitos del quehacer informático. •Las empresas desarrolladoras de software no solo están creando nuevos productos Orientados a Objetos, están reestructurando sus productos ya existentes, usando Lenguajes Orientados a Objetos. •Obteniendo como resultado flexibilidad, modularidad y reusabilidad, en un esfuerzo por enfrentar la dinámica de cambio y la competencia comercial en tiempos de mercados globalizados.
FCC-BUAP
4
¿Cómo hemos llegado hasta aquí? •Programación modular: invención de la subrutina a principios de los años 50’s •Programación Estructurada: (60’s) descomposición funcional, un programa se descompone en partes componentes, en sub-partes componentes y así sucesivamente.
•Ingeniería de Software Asistida por Computadora (CASE): Automatización de la programación a partir de diagramas. •Lenguajes de Cuarta Generación (4GL’s): conjunto de herramientas para la creación de aplicaciones, incluyendo formas, reportes, etc.
FCC-BUAP
5
Opciones disponibles •Los esfuerzos para mejorar el desarrollo del software, se han enfocado hasta ahora en la modularización de los procedimientos, separando el otro ingrediente de la ecuación de Niklaus Wirth
Algoritmos + Estructuras de Datos = Programas
es decir, la colección de información sobre la que operan los procedimientos.
FCC-BUAP
6
Los Objetos •El concepto de Objetos surgió de la necesidad de modelar los objetos del mundo real en simulaciones por computadora. •Un objeto se define, entonces, como una unidad de software que contiene una colección de datos y procedimientos interrelacionados y que es capaz de recibir mensajes del exterior. •Los datos definen el estado del Objeto en cualquier momento y los procedimientos que definen el comportamiento de un Objeto.
FCC-BUAP
7
Clases •Una Clase es un tipo definido por el usuario, ya que generaliza el concepto de Estructura y lo reemplaza con ventaja. •Una Clase es un prototipo que define los métodos y datos que serán incluidos en un tipo de objeto particular, así que los objetos son instancias de las clases.
FCC-BUAP
8
Los lenguajes POO •Simula-67 (intento académico prehistórico).
•Los lenguajes Orientados a Objetos más conocidos comercialmente: ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦
Java C++ C# Objective-C Phyton Perl PHP JavaScript
◦ ◦ ◦ ◦ ◦ ◦
Visual Basic Visual Fox Pro Object Pascal Ada Lisp Etc.
FCC-BUAP
9
Objeto Computacional Def. Representación en memoria de una abstracción del mundo real, un ente encapsulado que contiene Datos y Métodos, y que es capaz de recibir mensajes del exterior.
FCC-BUAP
10
Mensajes •La forma en que los Objetos interactúan entre si, es enviando mensajes pidiendo que se active (ejecute) un método específico. •Un mensaje consiste simplemente del nombre del Objeto a quien va dirigido, seguido del nombre del Método que el receptor sabe como ejecutar (usar parámetros en caso de ser necesario).
FCC-BUAP
11
Conceptos Relacionados •El ESTADO de un objeto acompaña todas las propiedades (generalmente estáticas) además de sus valores actuales (generalmente dinámicos) de cada una de esas propiedades. •La CONDUCTA es como un objeto actúa y reacciona, en términos de sus cambios de estado y paso de mensajes. •La IDENTIDAD es la propiedad de un objeto que lo distingue de los otros objetos
FCC-BUAP
12
Abstracción •Una abstracción denota las características esenciales de un objeto para distinguirlo de otro tipo de objetos y así proveer límites conceptuales bien definidos, relativos a la perspectiva del observador.
FCC-BUAP
13
Tipo •El tipo es el reforzamiento de la clase de un objeto, semejante a los objetos de diferentes tipos que no deberían ser intercambiados, o a lo más, deberían ser intercambiados de modo muy restringido.
FCC-BUAP
14
Encapsulamiento •Mecanismo por medio del cual, un objeto esconde sus datos y métodos al mundo exterior. El encapsulamiento permite proteger los datos de transformaciones no deseadas, y sólo bajo autorización del propio objeto. •Encapsulación es el proceso de departamentalizar los elementos de una abstracción que constituye su estructura y conducta; sirve para separar la interfaz de una abstracción de su implementación.
FCC-BUAP
15
Modularidad •Es la propiedad de un sistema que ha sido descompuesto en un conjunto de módulos altamente cohesivos y mínimamente acoplados
FCC-BUAP
16
Jerarquía •La jerarquía es una clasificación u ordenamiento de abstracciones a) b)
Herencia Simple y Múltiple (“es un”) Agregación (“parte de”)
FCC-BUAP
17
Herencia •Es un mecanismo por el cual, una clase de objetos puede expresarse como un caso especial de un clase más general, es decir, incluye automáticamente toda la definición de datos y métodos de la clase general.
“Subclases” y “Superclases”
FCC-BUAP
18
Herencia • Es el proceso por medio del cual, un objeto puede adquirir las propiedades de otro objeto. • La importancia de la herencia se basa en que constituye un mecanismo que soporta la clasificación. • La herencia puede ser simple o múltiple
FCC-BUAP
19
Polimorfismo •Es la posibilidad de que un nombre (identificador), pueda ser usado con diferentes propósitos, aunque relacionados semánticamente (interface y múltiples métodos). ◦
Sobrecarga de Operadores
◦
Sobrecarga de Funciones
◦
Sobrecarga de Constructores
◦
Polimorfismo de Herencia
◦
Funciones Virtuales
FCC-BUAP
20
Concurrencia •La Concurrencia permite a distintos objetos actuar al mismo tiempo.
FCC-BUAP
21
Persistencia •La persistencia es una propiedad de un objeto a través de la cual, su existencia trasciende al tiempo y/o espacio.
•Por ejemplo: ◦ ◦
El objeto continua existiendo después de que su creador deja de existir y/o espacio La locación de un objeto se mueve de un espacio de ubicación del que fue creado.
FCC-BUAP
22
Preliminares •Todo programa en lenguaje C++ debe tener la siguiente extensión: file.c, file.cc
// en UNIX
file.cpp
// en Windows/ MS-DOS
•Comentarios en C++ /* Este es un comentario */ /* Es también es un comentario multilíneas
*/
// comentario unilineal
FCC-BUAP
23
Programa principal •Todos los programas deben tener un main(): ◦ main() es la función llamada por el Sistema Operativo. ◦ main() regresa 0 y significa que termino con éxito. ◦ Las llaves { } denotan el cuerpo del programa. ◦ Toda declaración termina con un punto y coma (“;”)
FCC-BUAP
24
Un primer programa #include
// librería de encabezado
int main()
// función principal
{
// inicio del cuerpo del programa
float a, b, c;
// declaración de variables reales
cin >> a >> b;
// entrada de datos
c = a + b;
// suma
cout