You are on page 1of 7

3

CARACTERISTICAS DE OBJETOS ORIENTADOS A OBJETOS

LA ABSTRACCIÓN
Significa extraer las propiedades esenciales de un objeto que lo distinguen de los demás
tipos de Objetos y proporciona fronteras conceptuales definidas respecto al punto de vista
del observador. Es la capacidad para encapsular y aislar la información de diseño y
ejecución.

La abstracción es uno de los medios más importantes, mediante el cual nos enfrentamos
con la complejidad inherente al software. La abstracción es la propiedad que permite
representar las características esenciales de un objeto, sin preocuparse de las restantes
características (no esenciales). Abstracción es la técnica de quitarle a una idea o a un objeto
todos los acompañamientos innecesarios hasta que los deja en una forma esencial y
mínima. Una buena abstracción elimina todos los detalles poco importantes y le permite
enfocarse y concentrarse en los detalles importantes.

Una abstracción se centra en la vista externa de un objeto, de modo que sirva para separar
el comportamiento esencial de un objeto de su implementación. Definir una abstracción
significa describir una entidad del mundo real, no importa lo compleja que pueda ser y, a
continuación, utilizar esta descripción en un programa.
http://www.mitecnologico.com/Main/AbstraccionObjetos
La abstracción, una de las herramientas que más nos ayuda a la hora de solucionar un
problema, es un mecanismo fundamental para la comprensión de problemas y fenómenos
que poseen una gran cantidad de detalles, su idea principal consiste en manejar un
problema, fenómeno, objeto, tema o idea como un concepto general, sin considerar la gran
cantidad de detalles que estos puedan tener. El proceso de abstracción presenta dos
aspectos complementarios.
1. Destacar los aspectos relevantes del objeto.
2. Ignorar los aspectos irrelevantes del mismo (la irrelevancia depende del nivel de
abstracción, ya que si se pasa a niveles más concretos, es posible que ciertos
aspectos pasen a ser relevantes).
De modo general podemos decir que la abstracción permite establecer un nivel jerárquico
en el estudio de los fenómenos, el cual se establece por niveles sucesivos de detalles.
Generalmente, se sigue un sentido descendente de detalles, desde los niveles más
generales a los niveles más concretos.
Por ejemplo: los lenguajes de programación de alto nivel permiten al programador
abstraerse del sin fin de detalles de los lenguajes ensambladores. Otro ejemplo, la memoria
de la computadora es una estructura unidimensional formada por celdas y sin embargo
trabajamos como si fuera única. La abstracción nos brinda la posibilidad de ir definiendo una
serie de refinamientos sucesivos a nuestro TDA y entiéndase bien que cuando decimos
refinamientos sucesivos nos estamos refiriendo a la estrategia que se utiliza para
descomponer un problema en subproblemas. Conforme evoluciona el diseño de software a
cada nivel de módulos se representa un refinamiento en el nivel de abstracción. Esto es,
incluir detalles que fueron obviados en un nivel superior, en un nivel más bajo de la
jerarquía.
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

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.

HTTP://WWW.MSLATAM.COM/LATAM/MSDN/COMUNIDAD/DCE2005/

HERENCIA

La herencia es específica de la programación orientada a objetos, donde una clase nueva se crea a
partir de una clase existente. La herencia (a la que habitualmente se denomina subclases) proviene
del hecho de que la subclase (la nueva clase creada) contiene las atributos y métodos de la clase
primaria. La principal ventaja de la herencia es la capacidad para definir atributos y métodos nuevos
para la subclase, que luego se aplican a los atributos y métodos heredados.
Esta particularidad permite crear una estructura jerárquica de clases cada vez más especializada. La
gran ventaja es que uno ya no debe comenzar desde cero cuando desea especializar una clase
existente. Como resultado, se pueden adquirir bibliotecas de clases que ofrecen una base que
puede especializarse a voluntad (la compañía que vende estas clases tiende a proteger las datos
miembro usando la encapsulación).

HTTP://ES.KIOSKEA.NET/CONTENTS/POO/HERITAGE.PHP3

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.

Cabe aclarar además que hay dos tipos de herencias:

– herencia simple: una clase derivada puede heredar sólo de una clase base (los lenguajes
.net soportan este tipo de herencia)
– herencia múltiple: una clase derivada puede heredar de una o más clases base (c++ es un
ejemplo de lenguaje que soporta este tipo de herencia).

HTTP://WWW.MSLATAM.COM/LATAM/MSDN/COMUNIDAD/DCE2005/

ENCAPSULAMIENTO
El concepto de encapsulación

La encapsulación es un mecanismo que consiste en organizar datos y métodos de una estructura,


conciliando el modo en que el objeto se implementa, es decir, evitando el acceso a datos por
cualquier otro medio distinto a los especificados. Por lo tanto, la encapsulación garantiza la
integridad de los datos que contiene un objeto.

Ocultación de datos

El usuario de una clase en particular no necesita saber cómo están estructurados los datos dentro
de ese objeto, es decir, un usuario no necesita conocer la implementación Al evitar que el usuario
modifique los atributos directamente y forzándolo a utilizar funciones definidas para modificarlos
(llamadas interfaces), se garantiza la integridad de los datos (por ejemplo, uno puede asegurarse
de que el tipo de datos suministrados cumple con nuestras expectativas bien que los se encuentran
dentro del periodo de tiempo esperado).
La encapsulación define los niveles de acceso para elementos de esa clase. Estos niveles de
acceso definen los derechos de acceso para los datos, permitiéndonos el acceso a datos a través de
un método de esa clase en particular, desde una clase heredada o incluso desde cualquier otra
clase. 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

Otro de los pilares de la orientación a objetos es el encapsulamiento. para entender este principio
veamos un ejemplo práctico:

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. es más, si a cualquier
automotriz se le ocurriera cambiar el funcionamiento interno de alguna de estas cosas,
probablemente todos los conductores tendrían que volver a aprender cómo funciona el nuevo
componente interno para poder seguir manejando sin problemas. Por suerte esto no es así, ya que
la complejidad interna del funcionamiento de un automóvil está escondida de los conductores
(usuarios). Para poder interactuar con el automóvil, éste nos expone una interfaz sencilla y definida,
que no cambia nunca por más que cambien internamente el funcionamiento de sus componentes.
Esta interfaz está compuesta por el volante, los pedales, la palanca de cambios, el asiento, etc. de
esta forma decimos que el automóvil ha encapsulado su complejidad interna.

HTTP://WWW.MSLATAM.COM/LATAM/MSDN/COMUNIDAD/DCE2005/
POLIMORFISMO
Definición de polimorfismo

La palabra polimorfismo proviene del griego y significa que posee varias formas diferentes. Este es
uno de los conceptos esenciales de una programación orientada a objetos. Así como la herencia
está relacionada con las clases y su jerarquía, el polimorfismo se relaciona con los métodos

HTTP://ES.KIOSKEA.NET/CONTENTS/POO/POLYMORP.PHP3

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í

POLIMORFISMO – EJEMPLO

• LA DEFINICIÓN DEL MÉTODO RESIDE EN LA CLASE BASE


• LA IMPLEMENTACIÓN DEL MÉTODO RESIDE EN LA CLASE DERIVADA
• LA INVOCACIÓN ES RESUELTA AL MOMENTO DE EJECUCIÓN

HTTP://WWW.MSLATAM.COM/LATAM/MSDN/COMUNIDAD/DCE2005/

RELACIONES
Todo sistema abarca muchas clases y objetos

Los objetos contribuyen en el comportamiento de un sistema colaborando entre si

 la colaboración se logra a través de las relaciones

Existen dos tipos principales de relaciones

 asociación

 agregación

RELACIONES DE 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 uní como bi-direccional (por defecto)

 la multiplicidad es el número de instancias que participan en una asociación

Ejemplo:

 una persona es dueña de un vehículo

 un vehículo pertenece a una persona


Persona -dueño Vehiculo

RELACIONES DE 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

Vehiculo Puerta
-color
+Mover()

HTTP://WWW.MSLATAM.COM/LATAM/MSDN/COMUNIDAD/DCE2005/

MULTIPLICIDAD

Limita el número de objetos relacionados, los diagramas de objetos lo indican mediante símbolos al
final de la línea de asociación, subestimar la multiplicidad puede evitar la flexibilidad de una
aplicación, una subestimación de la misma impone gastos adicionales extraordinarios.

Http://Www.Monografias.Com/Trabajos5/Softobj/Softobj.Shtml

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.

Http://Es.Kioskea.Net/Contents/Poo/Classe-Instance.Php3

Relación de composición

La composiciónpermite expresar una relación de tipo “esta compuesto por”

• Por ejemplo , un segmento está compuesto por dos puntos: origen y extremo

You might also like