La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Programación Orientada a Objetos

Presentaciones similares


Presentación del tema: "Programación Orientada a Objetos"— Transcripción de la presentación:

1 Programación Orientada a Objetos
Francisco Montoya González Programación

2 Ventajas del paradigma Orientado a Objetos
Gestionar la complejidad. Facilita la reutilización de modelos ya existentes. Ofrece mecanismos de abstracción permitiendo modelar un sistema a diferentes niveles y utilizar el mismo formalismo en diferentes etapas del ciclo de vida de este sistema. Producir modelos fáciles de leer y validar autorizando la descripción de interfaces de alto nivel entre componentes.

3 Desventajas del paradigma Orientado a Objetos
La curva de aprendizaje requiere educación y entrenamiento constante. La tecnología está en continua evolución. La gente necesita tiempo para cambiar de paradigma. La gente no desea cambiar porque todavía cree en el paradigma estructurado.

4

5 Los tipos abstractos de datos o los TADS. Los tipos de datos
Valores: Datos o grupos de datos manipulados en un proceso. Escalares: compuestos por un solo item. Agregados: Compuestos por varios items. Tipo de datos: Conjunto de valores a los que se le asocia una forma especifica de almacenamiento y sobre los cuales se pueden efectuar un conjunto de operaciones. Nativos: Tipos predefinidos en los lenguajes. Definidos por el usuario: los que define en programador.

6 Abstracción Es un mecanismo de la mente humana fundamentalmente para la comprensión de fenómenos o situaciones que involucran una gran cantidad de detalles. Abstraer es, por lo tanto, un proceso mental que tiene dos aspectos: Destacar los detalles relevantes del objeto en estudio. Ignorar los detalles irrelevantes del objeto. Se entienden irrelevantes en ese nivel de abstracción. Si descendemos de nivel, es probable que algunos de estos detalles pasen a ser relevantes. La abstracción permite representar fenómenos complejos siguiendo un metodo jerárquico, es decir, por sucesivos niveles de detalle.

7 Tipos abstractos Valor o valores y operaciones asociadas a los mismos que se definen mediante una especificación que es independiente de cualquier representación. El calificativo de abstracto expresa precisamente esta cualidad de independencia de la representación. Para definir un nuevos tipo, el programador debería comenzar por decidir que valores y despues que operaciones le parecen relevantes y útiles para operar con ellos. Es decir, debería comenzar por establecer la interfaz que van a tener los usuarios con dicho tipo.

8

9 Las clases Conjunto de objetos que comparten:
Las misma propiedades (atributos). El mismo comportamiento (métodos). Las misma relaciones con otros objetos (mensajes). La misma semántica dentro del sistema. Las clases encapsulan los atributos y las operaciones sobre los mismos. Esto trae las siguientes ventajas: Proteccion de los datos de accesos indebidos Disminucion del acoplamiento entre clases Se favorece la modularidad y el mantenimiento Los atributos de una clase no deben ser manipulables directamente por el resto de objetos Una clase es un molde para construir objetos.

10 Declarando una clase C++
class nombreClase { private: datos o metodos privados protected: public: } instacia Tenga en cuenta que al momento de crear una clase, la creacion de instancias de la clase es opcional.

11 Visibilidad de los miembros de una clase
Las palabras private, protected y public son opcionales. Por defectos todos los miembros de una clase son privados a menos que se indique lo contrario. Estas declaraciones se pueden colocar en cuaquier orden. Privados (private): Solo pueden ser accedidos por una funcion miembro, de la propia clase. Protegidos (protected): Se pueden acceder por funciones declaradas por esa clase, por cualquier clase que herede de ella. Publicos (public): Permite el acceso a la clase desde funciones externas.

12 Clases: Notación Gráfica
Cada clase se representa en un rectángulo con tres compartimientos: nombre de la clase atributos de la clase operaciones de la clase - Un atributo es semánticamente equivalente a una composición (composite aggreation). La sintaxis por defecto para los atributos es: visibilidad nombre [multiplicidad] : tipo = valor-inicial {propiedades} - tipo es una especificación dependiente del lenguaje de implementación - Para indicar que un atributo es constante se puede poner la propiedad frozen - Ejemplos usando multiplicidad: colores [3]: Color puntos [2..*]: Punto nombre [0..1]: String - Un atributo de clase (del ámbito de clase y no de objeto) se indica subrayándolo

13 Clases: Notación Gráfica
Otros ejemplos: Circulo? Cuenta bancaria? Fecha? - Una operación es un servicio que una instancia de la clase puede realizar. La sintaxis por defecto es: visibilidad nombre (parámetros) : tipo-devuelto {propiedades} Una operación que no modifica el estado del objeto es especificada con la propiedad query. La propiedad abstract se usa para indicar que el método de la operación es implementado en una subclase. Una operación de clase (del ámbito de clase y no de objeto) puede indicarse subrayando dicha operación - Los parámetros se especifican usando la siguiente sintaxis: io nombre : tipo = valor_por_defecto donde io puede ser in, out o inout

14 Ejemplo. Clase Fecha class fecha
{ private: int mes; int dia; int anho; public: Fecha(int = 7, int = 4, int = 2008); void estFecha(int, int, int); void mostrarFecha(void); }; Fecha::Fecha(int mm, int dd, int aaaa) { mes = mm; dia = dd; anho = aaaa; } Void Fecha::estFecha(int mm, int dd, int aaaa) Void Fecha::mostrarFecha(void) { cout<<“La fecha es ”<< cout<<mes<<“/”<<dia<<“/”<<anho;

15 Objetos Un objeto es la instancia de una clase o categoría y se diferencian entre ellos por los valores de sus atributo (variables).

16 Bibliografía Bronson, Gary J. C++ para ingeniería y ciencias. Ed. Thomson, 2007. Larma, Craig. UML y patrones: Introducción al análisis y diseño orientado a objetos. Ed. Prentice Hall, 1999. Joyanes Aguilar, Luis. Programación Orientada a Objetos: Concepto, modelado, diseño y condificación en C++. McGraw-Hill Rumbaugh, James y otros. Object-Oriented Modeling and Design. Prentice Hall Booch, Grady. Análisis y Diseño Orientado a Objetos con Aplicaciones. Addison Wesley. 2 edición


Descargar ppt "Programación Orientada a Objetos"

Presentaciones similares


Anuncios Google