Introduccin a la POO y C Pablo San
Introducción a la POO y C++ Pablo San Segundo (C-206) pablo. sansegundo@upm. es
Problemas de la industria del SW � La calidad y productividad del SW todavía no ha alcanzado la de otras tecnologías SW caro � SW lento (producción) � � Los proyectos empiezan desde cero � Reutilización � POO � Recientemente se ha empezado a utilizar realmente software prefabricado Componentes COM, Active. X � Patrones de diseño � Marcos de trabajo(frameworks), STL, MFC, etc. �
Paradigma OO � Filosofía � Mundo OO de las ideas de Platón � Universo computacional como poblaciones de objetos � Objeto tiene estado (atributos), comportamiento e identidad (Ej. perro) � La estructura y comportamiento de objetos similares están definidos en una clase común
Programación estructurada � Lenguajes � Difícil antiguos utilizan GOTO mantenimiento y legibilidad � Dijkstra (finales de los años 70) � Cualquier programa se puede implementar mediante: � Flujo secuencial de instrucciones � Sentencias IF-ELSE � Bucle iterativo WHILE � GOTO innecesario paradigma de la programación estructurada � Ejemplos: C, Pascal, ADA � Se mantiene el GOTO pero con un uso totalmente marginal Algoritmos (FUNCIONES) + Datos = Programa
Programación OO � Deja de pensar en funciones Piensa en OBJETOS � Lenguajes Orientados a Objetos C++ � Java � Python etc. � � No basta con aprender el lenguaje de programación: es necesario un cambio en la forma de pensar � Saber poner ladrillos no te hace un arquitecto! � Objetivo del curso Aprender C++ (sintaxis) � Interiorizar el concepto de objeto y clase como entidad lógica � � Ejemplos � Prácticas � Aplicación: Trabajo de la asignatura Algoritmos (Datos Objetos) = Programa
Ejemplo: Centroide de una nube de puntos � POO �C � Datos � struct � clase � Algoritmo punto � array de puntos double med(v_puntos*) punto � clase Vector. Puntos � Preguntar al objeto de la clase Vector. Puntos por su punto medio
Elementos Programación OO � Elementos Clases � Objetos � Métodos � Mensajes � � Características � Abstracción � � Encapsulamiento � � Caja negra Herencia � � Extracción de comportamientos comunes Reutilización: Permite crear clases derivadas (especialización) a partir de las clases base (generalización) Polimorfismo � Misma interfaz para objetos de distinto tipo (no confundir con sobrecarga).
Lenguaje C++ � Autor: Bjarne Stroustrup � Evolución OO de C � Estandarización multiplataforma � C++98, C++03: incluye la STL (Standard Template Library) � C++11, C++14 � TIOBE index � Medida de la evolución del uso de los diferentes lenguajes
- Slides: 8