Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Pilares de La POO

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 6

Pilares de la POO

La programación Orientada a objetos se basa en 4 conceptos


fundamentales:

Abstracción
La abstracción consiste en captar las características esenciales de un
objeto, así como su comportamiento. Por ejemplo, piensa en unos
automóviles, ¿Qué características podemos abstraer de los
automóviles? O lo que es lo mismo ¿Qué características semejantes
tienen todos los automóviles? Todos tendrán una marca, un modelo,
número de chasis, peso, llantas, puertas, ventanas, etc. Y en cuanto a
su comportamiento todos los automóviles podrán acelerar, frenar,
retroceder, etc.

La abstracción:

Mucha gente considera que la abstracción en si no es más que una


parte del proceso de la encapsulación, y por tanto no la tienen
como pilar independiente de la POO.

La abstracción es la capacidad de obtener y aislar toda la información y


cualidades de un objeto que no nos parezcan relevantes, para poder
encapsularlos. Para ello separamos "mentalmente" los objetos y nos
centramos en su comportamiento fundamental.
Gracias a ello, podemos representar las características esenciales de
un objeto sin preocuparnos de las restantes.
Pongamos el ejemplo de un objeto llamado gato. El gato tiene
propiedades o características (nombre, color, peso, precio, edad..) y
métodos o comportamientos (andar, maullar, lamerse las pelotas...)
Gracias a la abstracción, otro objeto, por ejemplo el "objeto vendedor"
puede manipular el "objeto gato" sin tener en cuenta algunas de sus
propiedades y métodos, ya que solo le interesan algunas, como el
precio.

Si no entiendes este punto muy bien, no te preocupes, lo entenderá


cuando veas el siguiente punto: la encapsulación.

Encapsulamiento
El encapsulamiento se utiliza para ocultar o esconder las características
esenciales de un objeto, de manera que no pueda ser alterado por otros
objetos, en cierto modo proveen un efecto de caja negra donde la
interacción entre objetos debe hacerse por medio de su interfaz y no
directamente.
Dependiendo de la implementación del lenguaje OO. Se tienen
diferentes reglas de visibilidad para atributos, métodos y / o clases,
dichas reglas son:

Privado: visible sólo para la clase y para las clases amigas o del mismo
paquete en C++ y Java, respectivamente.
Protegida: visible sólo para las clases derivadas (subclases).
Pública: visible para todas las clases con las que está asociada.

La encapsulación:

La encapsulación es la capacidad de ocultar los


datos abstraídos, aislarlos o protegerlos de quién no desees que tenga
acceso a ellos; otro objeto o función por ejemplo.
Cada objeto puede tener muchas cosas encapsuladas en su interior,
propiedades, funciones o incluso otros objetos.
Muchas veces no se necesita entender el funcionamiento interno de un
objeto, sino tan solo sus funcionalidades: para que sirve o qué puede
hacer. Por tanto un objeto puede ser cambiado por otro siempre que
cumpla con la misma función.

Veamos un ejemplo del mundo real. Imaginemos que tenemos un


objeto: una tarjeta de sonido. No sabemos cuál es el funcionamiento
interno de la misma, sus propiedades se podría decir que están
encapsuladas dentro. Lo que si sabemos es que cumple con la función
de proporcionar el sonido a nuestro ordenador. Podemos cambiar una
tarjeta de sonido por otra, ya que cumplen la misma función, y no
necesitamos saber nada más, a no ser que queramos trabajar para
creative.

Para dejarlo aún más claro; el usuario no necesita saber cómo funciona
internamente un coche, solo necesita saber que al pisar el acelerador
(aplicar el método) el coche anda.

Herencia
La herencia básicamente consiste en que una clase puede heredar sus
variables y métodos a varias subclases (la clase que hereda es llamada
superclase o clase padre). Esto significa que una subclase, aparte de
los atributos y métodos propios, tiene incorporados los atributos y
métodos heredados de la superclase. De esta manera se crea una
jerarquía de herencia.

Por ejemplo, imaginemos que estamos haciendo el análisis de un


Sistema para una tienda que vende y repara equipos celulares.

En el gráfico vemos 2 Clases más que posiblemente necesitemos para


crear nuestro Sistema. Esas 2 Clases nuevas se construirán a partir de
la Clase Celular existente. De esa forma utilizamos el comportamiento
de la SuperClase.

En general, podemos tener una gran jerarquía de Clases tal y como


vemos en el siguiente gráfico:
Herencia y reutilización:

La Herencia lo que nos dice es que puede crearse un objeto a partir de


otro objeto ya existente. El nuevo objeto hereda todas las cualidades del
objeto del que deriva y además puede añadir nuevas funcionalidades o
modificar las ya existentes.
Imaginemos que tenemos un ordenador con sus planos y queremos
fabricar otro ordenador. En vez de crear uno de cero, sería mucho más
sencillo basarnos en el ordenador que ya tenemos y añadirle o
modificarle ciertas funcionalidades como podrían ser: aumentar su
capacidad, su velocidad de procesamiento, etc…

Este proceso además de a un objeto puede aplicarse a una clase. A la


clase que se crea a partir de otra clase se le conoce como subclase o
clase derivada.

Polimorfismo
Quizá es uno de los pilares de la programación OO, más difíciles de
entender. El polimorfismo se aplica en los métodos y se refiere a que el
mismo método puede ser usado para diferentes fines según se necesite.
Para explicar mejor este concepto vamos a echar mano de la
implementación en java. En ese lenguaje se tienen dos clases de
polimorfismo uno se llama sobrecarga y el otro se llama
sobre escritura. Esta definición puede variar según la implementación,
sin embargo el concepto de polimorfismo es el mismo.
La programación orientada a objetos se ha convertido en la más
popular debido a sus grandes capacidades y ventajas respecto a las
antiguas formas de programar. Básicamente, este tipo de programación
nos permite crear auténticos objetos, que pueden ser cosas que
aparecen en la pantalla, como botones o ventanas, o bien pueden ser
objetos de la vida real, como una persona o un lápiz.

Estos objetos poseen características que es lo que


llamamos propiedades o atributos, como pueden ser: edad, velocidad,
temperatura, color, altura, etc...
También tienen capacidades, cosas que pueden hacer, a esto lo
llamamos funciones o métodos, como
pueden ser: comprar, acelerar, envejecer…
Y pueden pertenecer a clases. Una clase es la definición de los
elementos de los que está compuesto uno o varios objetos de un mismo
tipo. Por ejemplo, mi padre tiene tiene una serie de características como
son: ojos, nariz, boca, brazos, piernas lo cual nos dice que pertenece a
la "clase persona". La función de una clase en POO es la de definir las
características y funciones de los que están compuestos los objetos de
un mismo tipo.
A varios objetos de una misma clase de les llama instancias de esa
clase. Por ejemplo, imaginemos que tenemos una clase que se llama
coche, los objetos Ferrari F40 y Toyota Corolla serían instancias de esa
clase. La clase coche marcará las características principales que tiene
cualquier coche, y que compartirán todos los objetos/instancias que
pertenezcan a esa clase.

Polimorfismo:
El polimorfismo es la capacidad para que varias clases u objetos
derivados de otros, reaccionen de manera diferente ante los mismos
métodos. El polimorfismo se puede aplicar tanto a objetos como a
funciones, por lo que podemos hablar de objetos polimórficos y de
funciones polimórficas.
Por ejemplo, cuando apretamos el acelerador de un coche no va a
responder igual el que posee un motor diésel que el que tiene un motor
de gasolina.

También podría gustarte