sábado, 1 de diciembre de 2012

Herencia

Es una propiedad que permite que los objetos sean creados a partir de otros ya existentes, obteniendo características (métodos y atributos) similares a los ya existentes. Es la relación entre una clase general y otra clase mas especifica.
 Es un mecanismo que nos permite crear clases derivadas a partir de clase base, Nos permite compartir automáticamente métodos y datos entre clases subclases y objetos. 


Esto es la forma en que se hereda de la clase padre a las hijas.
A continuación un ejemplo claro:



Polimorfismo, UML y Clases

Polimorfismo

es la habilidad que adquieren los objetos de responder en forma diferente al mismo lenguaje. Es decir, el mismo mensaje que se envia a muchos tipos de objetos, toma "muchas formas" y de ahi viene el termino polimorfismo.

UML

Es un lenguaje para visualizar, especificar, construir, y  documentar los artefactos de un sistema.

Se usa para entender, diseñar, configurar, mantener, y controlar la información sobre los sistemas a construir. Para realizar un proyecto debemos antes realizar un esquema del mismo.

Clase

Representa un conjunto de objetos que comparten los mismos atributos, operaciones, relaciones y semantica.

Forma de hacer una clase.

A continuación se mostrara un ejemplo de una clase.


Relación entre clases

Relación de asociación

  • Indica que  dos clases o mas se conectan entre si de forma conceptual.
  • la asociación puede funcionar de forma inversa.
  • Algunas veces una asociación debe seguir algunas reglas.

Relación de dependencia

  • Implica dependencia entre clases.
  • Se denota mediante una linea punteada.
  • La flecha es dirigida hacia la clase usada.
  • La clase debe ser publica.

Relación de agregacion

  • Es común que un objeto contenga objetos de otras clases, tal cosa se llama "AGREGACION"
  • La relación que se establece entre estos objetos se llama "Tiene-un", "Es parte de", "Consta de".

Relación de composición

  • Es parecida a la de agregación solo que al lugar de "tiene-un" es "mas fuerte".

Presentación POO y UML

Programación Orientada a Objetos (POO)

El paradigma orientado a objetos nacio enn 1969 de la mano del Dr. Kristin Nygaard.
  • se organiza el software como una coleccion de objetos discretos que encapsulan estructuras de datos y comportamiento.
  • un sistema OO funciona mediante la colaboración entre los objetos que se comunican entre si.

Encapsulación


Un principio de la POO es la ocultación de información  que es el proceso de ocultar dentro de si mismo, todos los "secretos" de un objeto que no contribuyen a sus características esenciales.

Al encapsular los datos del objeto, se maximiza la reutilizabilidad, se reduce la dependencia de los datos y se minimiza el tiempo de depuración.

La Encapsulación esconde la complejidad de las cosas.

Introducción a la Abstracción de Datos

Esta semana vimos lo que es POO (Programación Orientada a Objetos) y en lo que esta basada:


  • Abstracción
  • Encapsulación
  • Jerarquía
  • Clase
  • Objeto
  • Modularidad
  • Herencia
  • Polimorfismo
Y si alguno de estos falta no se considera POO.

Abstracción

es la capacidad Modelo de conceptualizar entidades genéricas de información a partir de cosas concretas.

Dos de los tipos mas importantes de abstracción son:
  • División en partes: Abstracción "Tiene-un"
  • División en especialización: "Es-un"
Modelo: Es una abstracción u objeto conceptual usado en la creación de una formula predecible a una solución.

Un modelo define una vista abstracta del problema, e enfoca solamente en aspectos relacionados.

Tipo de Dato Abstracto (TDA)


Es la representación de una entidad u objeto para facilitar su programación. Se compone de:

  • Estructura de datos: Es la estructura de la programación que se selecciona para representar las características de la entidad modelada.
  • Funciones de abstracción: Son funciones que permiten hacer uso de las estructuras de datos, y que esconden los detalles de dicha estructura, permitiendo un mayor nivel de abstracción.

Propiedades del TDA

  • Con abstracción creamos una entidad bien definida, la cual puede ser manejada.
  • estas entidades definen las estructuras de datos de un conjunto de items o elementos.
  • Las estructuras de datos solo pueden ser accedidas con operaciones bien definidas. Este conjunto de operaciones es llamada interface y es exportada por la entidad.
  • Una entidad con las propiedades descritas se llama Tipo de Dato Abstracto (TDA).

Especificación Lógica de un TDA


  1. Elementos que conforman la estructura de datos.
  2. Definición (TDA)
  • TDA se caracteriza por las siguientes propiedades:
  1. Define un tipo.
  2. define un conjunto de operaciones.
  3. Las operaciones de la interface son el único mecanismo de acceso a las estructuras de datos.
  4. Axiomas and precondicions definen el dominio de la aplicación del tipo.

TDA PILA(STACK)

  • TDA pila
  • Una pila es una estructura de datos que se caracteriza porque el ultimo elemento en entrar se el primero en salir.
  • Operaciones: obtener, agregar, borrar, esta vacia, etc.
  • FIFO(Primero entra, Primero sale)

Objetivos de los TDA

El fin que persigue el concepto de TDA es separar el uso del tipo de dato, de su implementación.
Se divide en dos partes:
  • Especificación
  • Implementación.
Tipo de organización en que se guardaran lo elementos:

  • Lineal: Relación uno a uno entre los elementos.
  • Jerárquica: Relación uno a muchos entre los elementos.
  • Red: Relación muchos a muchos entre los elementos.
  • Sin relación: Si no hay relación entre los elementos.