Vous êtes sur la page 1sur 12

UNIVERSIDAD TECNOLGICA DE LA

RIVIERA MAYA
PROGRAMACIN

TI 22
INTEGRANTES:
SOLANO PERAZA LUIS DANIEL
PECH CAMPOS ADRIN ISA
Playa del Carmen, Q. Roo
10/01/15

ABSTRACCIN
Qu Es?
Podemos definir la abstraccin como una operacin intelectual que separa las
cualidades de un objeto para considerarlas aisladamente o para analizar al objeto
en su pura esencia o nocin.
La abstraccin encarada desde el punto de vista de la programacin orientada a
objetos expresa las caractersticas esenciales de un objeto, las cuales distinguen
al objeto de los dems. Adems de distinguir entre los objetos provee lmites
conceptuales. Entonces se puede decir que la encapsulacin separa las
caractersticas esenciales de las no esenciales dentro de un objeto. Si un objeto
tiene ms caractersticas de las necesarias los mismos resultarn difciles de usar,
modificar, construir y comprender.
Bsicamente es la capacidad de separar los elementos (al menos mentalmente)
para poder verlos de forma singular. Como cuando describimos el cuerpo humano
y decimos cabeza, brazo(s), pierna(s), etc.
En los lenguajes de programacin orientada a objetos, el concepto de Clase es la
representacin y el mecanismo por el cual se gestionan las abstracciones.

Imagen 1: Abstraccin de atributos de los objetos vehculos.

Para qu sirve la abstraccin?


Gracias a la abstraccin podemos representar las caractersticas esenciales de un
objeto sin preocuparnos de las restantes caractersticas (no esenciales). La
abstraccin se centra en la vista externa de un objeto, de modo que sirva para
separar el comportamiento esencial de un objeto de su implementacin.
A grandes rasgos, la abstraccin, permite que dispongamos de las caractersticas
de un objeto que necesitemos. Si necesitamos el objeto Persona, podramos
poner nombre, edad, direccin, estado civil, etc. Si lo necesitamos en un sistema
administrativo, pero, si lo requerimos para el rea de biologa, dentro de sus
atributos quiz tengamos, ADN, RND, Gen x1, Gen x2, etc., y los atributos antes
mencionados no sean requeridos.
En general, podemos decir que Persona cuenta con todos los atributos
mencionados aqu, pero por el proceso de abstraccin excluimos todos aquellos
que no tienen cabida en nuestro sistema. Se define como un mtodo por el cual se
rescatan los datos relevantes y se ignoran los irrelevantes.

Imagen 2: Abstraccin de caractersticas principales del objeto gato.

Ejemplo de abstraccin
Ejemplo 1: Qu caractersticas podemos abstraer de los automviles? o Qu
caractersticas semejantes tienen todos los automviles?
Caractersticas: Marca, Modelo, Nmero de chasis, Peso llantas o cauchos,
Puertas, Ventanas... Comportamiento: Acelerar, Frenar, Retroceder...
Ejemplo 2: La gerencia de un taller mecnico necesita un sistema para controlar
los vehculos que ingresan a sus instalaciones. En este caso, las caractersticas
esenciales de la clase vehculo son: Marca, Modelo, Color, Falla detectada,
Nombre del Propietario, Direccin del Propietario, Telfono del Propietario...
A esto se le llama abstraccin. En general un programa no es ms que una
descripcin abstracta de un procedimiento o fenmeno que existe o sucede en el
mundo real.

La abstraccin es crucial para comprender este complejo mundo.

La abstraccin es esencial para el funcionamiento de una mente humana


normal y es una herramienta muy potente para tratar la complejidad.

La abstraccin es clave para disear un buen software.

Imagen 3: Muestra un objeto llamado Bus y sus atributos.

HERENCIA
Qu es?
Es una propiedad que permite que los objetos sean creados a partir de otros ya
existentes, obteniendo caractersticas (mtodos y atributos) similares a los ya
existentes. Es la relacin entre una clase general y otra clase ms especfica. Es
un mecanismo que nos permite crear clases derivadas a partir de clase base, Nos
permite compartir automticamente mtodos y datos entre clases subclases y
objetos.
La herencia es especfica de la programacin 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 los atributos y mtodos de la clase primaria. La
principal ventaja de la herencia es la capacidad para definir atributos y mtodos
nuevos para la subclase, que luego se aplican a los atributos y mtodos
heredados.

Para qu sirve la herencia?


En particularidad permite crear una estructura jerrquica de clases cada vez ms
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 compaa que vende estas clases tiende a proteger las datos
miembro usando la encapsulacin).

Jerarquizacin
Es un proceso por el cual se crean organizaciones de elementos en distintos
niveles. No es un concepto especficamente de POO, sino que es algo que vemos
en la vida real en muchos mbitos, algo inherente a cualquier tipo de sistema.
Puedo tener diversos tipos de jerarquas, como clasificacin o composicin.

Composicin: Es cuando unos elementos podemos decir que estn compuestos


de otros, o que unos elementos estn presentes en otros. Por ejemplo, el sistema
respiratorio y los pulmones, la nariz, etc. Podemos decir que los pulmones estn
dentro del sistema respiratorio, as como dentro de los pulmones encontramos
bronquios y alvolos. En esta jerarqua de elementos tenemos composicin
porque donde unos forman parte de otros. En una factura tambin podemos decir

que puede haber una jerarqua de composicin. La factura tiene un cliente, varios
conceptos facturables, un impuesto, etc.

Clasificacin: Este tipo de jerarquizacin indica que unos elementos son una
especializacin de otros. Por ejemplo, los animales, donde tenemos vertebrados e
invertebrados. Luego, dentro de los vertebrados encontramos aves, reptiles,
mamferos, etc. En los mamferos encontramos perros, vacas, conejos... ste es el
tipo de jerarquizacin en que quiero que te fijes.
Los lenguajes de programacin orientados a objetos son capaces de crear
jerarquizaciones basadas en composicin con lo que ya sabemos de clases y
objetos. Eso es porque podemos tener como propiedades de objetos, otros
objetos. Por ejemplo, en el caso de la factura, podramos tener como propiedades
el cliente, el impuesto, la lista de conceptos facturables, etc. Sin embargo, para
hacer jerarquas de clasificacin nos hace falta conocer la herencia.

Herencia simple
Una clase slo puede heredar de una clase base y de ninguna otra.

Herencia mltiple
Una clase puede heredar las caractersticas de varias clases base, es decir, puede
tener varios padres. En este aspecto hay discrepancias entre los diseadores de
lenguajes. Algunos de ellos han preferido no admitir la herencia mltiple debido a
que los potenciales conflictos entre mtodos y variables con igual nombre, y
eventualmente con comportamientos diferentes crea un desajuste cognitivo que va
en contra de los principio de la programacin orientada a objetos. Por ello, la
mayora de los lenguajes orientados a objetos admite herencia simple. En
contraste, algunos pocos lenguajes admiten herencia mltiple, entre ellos: C++,
Python, Eiffel, mientras que Smalltalk, Java, Ada y C# slo permiten herencia
simple.

Imagen 4: La herencia simple solo hereda una superclase en cambio la herencia


mltiple hereda dos superclase.

Ejemplo de Herencia
Volvamos a los animales, pensemos en los mamferos. Todos tienen una serie de
caractersticas, como meses de gestacin en la barriga de la madre, pechos en las
hembras para amamantar y luego funcionalidades como dar a luz, mamar, etc.
Eso quiere decir que cuando realices la clase perro vas a tener que implementar
esos atributos y mtodos, igual que la clase vaca, cerdo, humano, etc.
Te parecera bien reescribir todo ese cdigo comn en todos los tipos de
mamferos, o prefieres heredarlo? en este esquema tendramos una clase
mamfero que nos define atributos como numero_mamas, meses_gestacion y
mtodos como dar_a_luz (), mamar (). Luego tendras la clase perro que extiende
(hereda) el cdigo del mamfero, as como las vacas, que tambin heredan de
mamfero y cualquiera de los otros animales de esta clasificacin.

Imagen 5: Observamos la superclase Animal y las subclases herbvoro, carnvoro,


omnvoro con sus respectivos objetos y atributos heredados de las subclases.

ENCAPSULAMIENTO
Qu es?
Es reunir a todos los elementos que pueden considerarse pertenecientes a una
misma entidad, al mismo nivel de abstraccin. Esto permite aumentar la cohesin
de los componentes del sistema. Algunos autores confunden este concepto con el
principio de ocultacin, principalmente porque se suelen emplear conjuntamente.
Se refiere a la capacidad de agrupar y condensar en un entorno con lmites biendefinidos distintos elementos. Cuando hablemos de encapsulacin en general
siempre nos referiremos, pues, a encapsulacin abstracta. De manera informal,
primero generalizamos (la abstraccin) y luego decimos: la generalizacin est
bien, pero dentro de un cierto orden: hay que poner lmites (la encapsulacin), y
dentro de esos lmites vamos a meter, a saco, todo lo relacionado con lo abstrado:
no slo datos, sino tambin mtodos, comportamientos, etc.
La encapsulacin da lugar a que las clases se dividan en dos partes:
1.

Interface: captura la visin externa de una clase, abarcando la abstraccin


del comportamiento comn a los ejemplos de esa clase.

2.

Implementacin: comprende la representacin de la abstraccin, as como


los mecanismos que conducen al comportamiento deseado

Para qu sirve la encapsulacin?


La encapsulacin se encarga de mantener ocultos los procesos internos que
necesita para hacer lo que sea que haga, dndole al programador acceso slo a lo
que necesita. Esto da dos ventajas iniciales: Lo que hace el usuario puede ser
controlado internamente (incluso sus errores), evitando que todo colapse por una
intervencin indeseada (t no quieres que tu mam, que no tiene ni idea de
electrnica, abra tu televisor y empiece a jugar con los circuitos para cambiar los
canales manualmente verdad?).
La segunda ventaja es que, al hacer que la mayor parte del cdigo est oculto,
puedes hacer cambios y/o mejoras sin que eso afecte el modo como los usuarios

van a utilizar tu cdigo. Slo tienes que mantener igual la forma de acceder a l
(en el caso del control de la tele, que los botones sigan siendo los mismos y que el
botn de apagado no cambie el volumen). Por cierto, estas puertas de
acceso que das a los usuarios son lo que se conoce como interfaz.

Formas de encapsular
1. Estndar (Predeterminado)
2. Abierto: Hace que el miembro de la clase pueda ser accedido desde el
exterior de la Clase y cualquier parte del programa.
3. Protegido: Solo es accesible desde la Clase y las clases que heredan (a
cualquier nivel).
4. Semi-cerrado: Solo es accesible desde la clase heredada.
5. Cerrado: Solo es accesible desde la Clase.

Ocultacin de datos.
El usuario de una clase en particular no necesita saber cmo estn estructurados
los datos dentro de ese objeto, es decir, un usuario no necesita conocer la
implementacin al evitar que el usuario modifique los atributos directamente y
forzndolo 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 encapsulacin define los niveles de acceso para elementos de esa clase. Estos
niveles de acceso definen los derechos de acceso para los datos, permitindonos
el acceso a datos a travs de un mtodo de esa clase en particular, desde una
clase heredada o incluso desde cualquier otra clase.
Existen tres niveles de acceso:
Pblico: funciones de toda clase pueden acceder a los datos o mtodos de una
clase que se define con el nivel de acceso pblico. Este es el nivel de proteccin
de datos ms bajo

Protegido: el acceso a los datos est restringido a las funciones de clases


heredadas, es decir, la funcin miembro de esa clase y todas las subclases

Privado: el acceso a los datos est restringido a los mtodos de esa clase en
particular. Este es nivel ms alto de proteccin de datos.

Ejemplo de Encapsulacin

Imagen 6: Se muestran los mtodos que pueden ser pblicos en el crculo morado
y en el crculo azul los privados.

POLIMORFISMO
Qu es?
En programacin orientada a objetos, el polimorfismo se refiere a la propiedad por
la que es posible enviar mensajes sintcticamente iguales a objetos de tipos
distintos. El nico requisito que deben cumplir los objetos que se utilizan de
manera polimrfica es saber responder al mensaje que se les enva.
La apariencia del cdigo puede ser muy diferente dependiendo del lenguaje que
se utilice, ms all de las obvias diferencias sintcticas.
Por ejemplo, en un lenguaje de programacin que cuenta con un sistema de tipos
dinmico (en los que las variables pueden contener datos de cualquier tipo u
objetos de cualquier clase) como Smalltalk no se requiere que los objetos que se
utilizan de modo polimrfico sean parte de una jerarqua de clases.

Clasificacin
Se puede clasificar el polimorfismo en dos grandes clases:
Polimorfismo dinmico (o polimorfismo paramtrico) es aqul en el que el
cdigo no incluye ningn tipo de especificacin sobre el tipo de datos sobre el que
se trabaja. As, puede ser utilizado a todo tipo de datos compatible.
Polimorfismo esttico (o polimorfismo ad hoc): es aqul en el que los tipos a
los que se aplica el polimorfismo deben ser explcitos y declarados uno por uno
antes de poder ser utilizados.
El polimorfismo dinmico unido a la herencia es lo que en ocasiones se conoce
como programacin genrica.
Tambin se clasifica en herencia por redefinicin de mtodos abstractos y por
mtodo sobrecargado. El segundo hace referencia al mismo mtodo con
diferentes parmetros.

Otra clasificacin agrupa los polimorfismo en dos tipos: Ad-Hoc que incluye a su
vez sobrecarga de operadores y coercin, Universal (inclusin o controlado por la
herencia, paramtrico o generosidad).

EJEMPLO DE POLIMORFISMO
Por ejemplo, la operacin comer es una operacin fundamental en la vida de los
mamferos, de modo que cada tipo de mamfero debe poder realizar la operacin o
funcin comer. Por otra parte, una cabra o una vaca que pastan en un campo, un
nio que se come un caramelo y un animal que devora a otro animal, son
diferentes formas que utilizan diferentes mamferos para realizar la misma funcin
(comer).

Imagen 7: Se muestra el nio utilizando el mtodo comer de otra forma diferente


al gato.

Vous aimerez peut-être aussi