Características del poo
Transcript of Características del poo
Características del poo
Abstracción
Herencia
Encapsulamiento
polimorfismo
Relación: Asociaciones composición, Agregación
Herencia
Multiplicados
Elementos
Clases métodos sobre escritura, sobre carga
Atributos
Propiedades
Objetos mensajes
Interfaces
La característica de polimorfismo de la POO
Permite que las instancias de diferentes clases reaccionen de una forma particular al llamado de una función. Por ejemplo, en una jerarquía de formas graficas (punto, línea, cuadro, rectángulo, etc.), cada forma tiene una función >Draw responsable de contestar adecuadamente a peticiones del trazo de esa forma.
El polimorfismo permite que las instancias de diferentes clases respondan a la misma función en forma adecuada para cada clase.
Abstracción
Una clase es una abstracción que:
* Enfatiza las características relevantes
* Suprime otras características (simplificación)
La forma más sencilla de entender el concepto de clase es si la vemos como una agrupación de objetos con características similares. Por ejemplo, un auto ES UN tipo particular de vehículo motorizado, con lo cual dentro de su comportamiento podemos encontrar “arrancar” y “frenar”, entre otros. Ahora bien, una motocicleta también ES UN vehículo motorizado, y tiene dentro de su comportamiento “arrancar” y “frenar”. El conjunto de atributos también es compartido entre una
motocicleta y un automóvil, aunque sus valores no coincidan necesariamente. Por ejemplo, ambos tienen el atributo “cantidad de ruedas”, sólo que el auto tiene 4 y la motocicleta 2.
La abstracción nos ayuda a trabajar con cosas complejas
El proceso de abstracción permite seleccionar las características relevantes dentro de un conjunto e identificar comportamientos comunes para definir nuevos tipos de entidades en el mundo real. La abstracción es clave en el proceso de análisis y diseño orientado a objetos, ya que mediante ella podemos llegar a armar un conjunto de clases que permitan modelar la realidad o el problema que se quiere atacar
Abstraction en programación Capacidad Para encapsular y aislar la information del diseño y ejecución.
Veamos los diferentes tipos de abstracción que podemos encontrar en un programa:
1. Abstracción funcional: crear procedimientos y funciones e invocarlos mediante un nombre donde se destaca qué hace la función y se ignora cómo lo hace. El usuario sólo necesita conocer la especificación de la abstracción (el qué) y puede ignorar el resto de los detalles (el cómo).
2. Abstracción de datos:
Tipo de datos: proporcionado por los leguajes de alto nivel. La representación usada es invisible al programador, al cual solo se le permite ver las operaciones predefinidas para cada tipo.
Tipos definidos: por el programador que posibilitan la definición de valores de datos más cercanos al problema que se pretende resolver.
TDA: para la definición y representación de tipos de datos (valores + operaciones), junto con sus propiedades.
Objetos: Son TDA a los que se añade propiedades de reutilización y de compartición de código.
HTTP://ES.WIKIPEDIA.ORG/WIKI/TIPO_DE_DATO_ABSTRACTOHERENCIA
. Herencia
Es una relación entre clases en la cual una clase comparte la estructura y comportamiento definido en otra clase. El propósito principal de la herencia es el de organizar mejor las clases que componen una determinada realidad, y poder agruparlas en función de atributos y comportamientos comunes a la vez que cada una se especializa según sus particularidades.
Encapsulamiento
Principio que establece que los atributos propios de un objeto no deben ser visibles desde otros objetos. Permite abstraer al resto del mundo de la complejidad de la implementación internaOtro de los pilares de la orientación a objetos es el encapsulamiento. Para entender este principio veamos un ejemplo práctico:
Ejemplo: Como todos ustedes se imaginarán, no es necesario ser mecánico de automóviles para poder manejar uno. Si el comprender cómo es el funcionamiento interno del motor, la dirección, los frenos, los cilindros, etc. fuera requisito para poder manejar un automóvil, serían muchos menos los conductores certificados y sería mucho más difícil aprender a manejar
● Miembros privados y públicos
● Interfaz pública de una clase:
● Miembros públicos (datos y métodos)
● Se pueden invocar desde fuera de la clase
● Objetos:
● Polimorfismo● Es la propiedad que tienen los objetos de permitir invocar genéricamente un
comportamiento (método) cuya implementación será delegada al objeto correspondiente recién en tiempo de ejecución, El polimorfismo tiende a existir en las relaciones de herencia, pero no siempre es así
Relaciones
Existen dos tipos principales de relaciones
Asociación
Una asociación es una conexión entre dos clases que representa una comunicación
Una asociación puede tener nombre, La comunicación puede ser tanto uni como bi-direccional (por defecto)
Ejemplo:
Una Persona es Dueña de un Vehículo
Un Vehículo Pertenece a una Persona
Agregación
La agregación es una forma especial de asociación donde un todo se relaciona con sus partes
También se conoce como “una parte de” o una relación de contención
Ejemplo:
Una Puerta es una parte de un Vehículo
El Vehículo es azul, la Puerta es Azul
Mover el Vehículo implica mover la Puerta
. Existen tres niveles de acceso:
público: funciones de toda clase pueden acceder a los datos o métodos de una clase que se
define con el nivel de acceso público. Este es el nivel de protección de datos más bajo
protegido: el acceso a los datos está restringido a las funciones de clases heredadas, es decir, las
funciones miembro de esa clase y todas las subclases
privado: el acceso a los datos está restringido a los métodos de esa clase en particular. Este es
nivel más alto de protección de datos
HTTP://ES.KIOSKEA.NET/CONTENTS/POO/ENCAPSUL.PHP3
Interfaces
Diseño soportado por los lenguajes orientados a objetos que permite definir comportamiento también, Permite que clases que no están estrechamente relacionadas entre sí deban tener el mismo comportamiento
CLASES
La forma más sencilla de entender el concepto de clase es si la vemos como una agrupación de
objetos con características similares. Por ejemplo, un auto ES UN tipo particular de vehículo
motorizado, con lo cual dentro de su comportamiento podemos encontrar “arrancar” y “frenar”,
entre otros. Ahora bien, una motocicleta también ES UN vehículo motorizado, y tiene dentro de su
comportamiento “arrancar” y “frenar”. El conjunto de atributos también es compartido entre una
motocicleta y un automóvil, aunque sus valores no coincidan necesariamente. Por ejemplo, ambos
tienen el atributo “cantidad de ruedas”, sólo que el auto tiene 4 y la motocicleta 2.
HTTP://WWW.MSLATAM.COM/LATAM/MSDN/COMUNIDAD/DCE2005/
El concepto de clases
Una clase es la estructura de un objeto, es decir, la definición de todos los elementos de que está
hecho un objeto. Un objeto es, por lo tanto, el "resultado" de una clase. En realidad, un objeto es
una instancia de una clase, por lo que se pueden intercambiar los términos objeto o instancia (o
incluso evento).
Una clase se compone de dos partes:
Atributos (denominados, por lo general, datos miembros): esto es, los datos que se
refieren al estado del objeto
Métodos (denominados, por lo general, funciones miembros): son funciones que pueden
aplicarse a objetos
Si tenemos una clase llamada auto, los objetos Peugeot y Renault serán instancias de esa clase.
También puede haber otros objetos Peugeot 406, diferenciados por su número de modelo.
Asimismo, dos instancias de una clase pueden tener los mismos atributos, pero considerarse
objetos distintos independientes. En un contexto real: dos camisas pueden ser idénticas, pero no
obstante, también ser diferentes de alguna manera. Sin embargo, si las mezclamos es imposible
distinguir una de la otra.
¿Los objetos son objetos?
● Los objetos de programación NO son objetos materiales
● Inicialmente los objetos se inventaron para estructurar programas de simulación flujo viales: un auto, un peatón, una calle, un semáforo, ...
Actualmente se usan para estructurar objetos materiales, servicios, conceptos, Ejemplos de objetos
● Una estructura algebraica (ej. un grupo)
● Un ámbito de trabajo (ej. colores)
http://thefricky.wordpress.com/2007/12/28/programacion-orientada-a-objetos-caracteristicas-de-la-poo/
http://www.itapizaco.edu.mx/paginas/Poo/Tutorial/unidad1sub7.html