La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Abstracción de los datos y Orientación a Objeto Clase 13.

Presentaciones similares


Presentación del tema: "Abstracción de los datos y Orientación a Objeto Clase 13."— Transcripción de la presentación:

1 Abstracción de los datos y Orientación a Objeto Clase 13

2 Contenido Por qué la abstracción de los Datos y OOP Encapsulamiento y Herencia –Módulos y tipos del módulo –Clases

3 Ventajas de OOP Reduce carga conceptual –Minimiza la cantidad de detalle pensada por el programador en cualquier un momento. Proporciona falta y contención de cambio –Limita la porción de un programa que necesita ser visto al depurar. –Limita la porción de un programa que necesita ser cambiado si la interfaz es la misma. Proporciona independencia entre los componentes del programa. –Facilita el código reutilizable

4 Código Reutilizable Ofrece existentes funcionalidades y interfaces quitando lo que realmente no se necesita Útil para definir nuevas abstracciones como extensiones o refinamientos de abstracciones existentes.

5 Modulos en Modula-2 Main program Noticia: Push, pop visible to each other Push, pop visible to modules that import them s, top not visible outside stack module

6 Module types Multiple instances of a given abstraction Classes = module types + inheritance Cada caso de un tipo del módulo o clase tiene su propia copia del módulo o variables de la clase

7 Tipo de Modulo Permite a un modulo tener muchas instancias Implementación –Estáticamente los datos conocidos: desplazamiento estático dentro del módulo –Dinámicamente los datos conocidos: Porción del tamaño arreglada Porción del tamaño variable Dope vector al principio de la porción de tamaño fijo ( descriptor del runtime contiene el tamaño de los datos dinámicos). –Subrutinas Replica código para cada instancia (malgastador) Extra, parámetro oculto al subprograma con dirección de almacenamiento del caso del módulo apropiado

8 Declaración de una Clase en C++ Una declaración puede ponerse en un archivo de.h separado del archivo de.cc que contiene las definiciones. La declaración debe contener toda la información: Programador necesita usar abstracción correctamente. El compilador necesita en orden para generar codigo: –Forzar un poco de información privada en la declaración –La expansión de Inline se necesita en el código

9 Ejemplo de Declaración Declaración (puede contener privada información también)

10 Herencia Clases derivadas, clases hijas, subclases. –Tiene todos los datos y métodos de clase base. –Métodos adicionales y datos. Base clase, clase padre, super clase. Jerarquías de la clase. “Generic” clase base.

11 Generica Clase Base

12 Ocultando y remplanzado miembros de la clase base Para reemplazar un método de una clase base, redefínalo en la clase derivada. El método de clase base todavía es accesible –Operador de resolución de alcance:: (in C++) –Super keyword (in Java, Smalltalk) –Cambio de nombre explícito (Eiffel)

13 Envases Abstracción que lleva a cabo una colección de objetos de una cierta clase del elemento. Alternativas: Based on a Container element base class –Objects derived from the element base class Nodo de la lista como objeto separado que contiene un apuntador Miembro del nodo de la lista del objeto mencionado El diseño constante, intuitivo y útiles de la jerarquia de clases son difíciles.

14 Herencia y visibilidad en C++ Herencia –Métodos ocultos de la clase base en C++: private base class (para ocultar) using declarations (para hacer visible) –Miembros protegidos: visible a los métodos de propia clase o de clases derivadas o amigas –Miembros privados: visible a los métodos de propia clase o amigos.

15 Ejemplo

16 Resumen de Regla de Visibilidad C++ –Cualquier clase puede limitar la visibilidad de sus miembros –Una clase derivada puede restringir la visibilidad de miembros de una clase base, pero no puede aumentarlos. –Una clase derivada que limita visibilidad puede restaurarla usando declaraciones

17 Eiffel –Las clases derivadas conservan restringen y aumentan la visibilidad de los miembros de clases bases. Java es igual que en C++ excepto por –No tiene el diseño protected/private para clases bases. –La palabra clave protegida hace visible dentro del paquete, además de las clases derivadas. –No friends. Resumen de Regla de Visibilidad


Descargar ppt "Abstracción de los datos y Orientación a Objeto Clase 13."

Presentaciones similares


Anuncios Google