Paradigma
de programación orientado a objetos
La programación orientada a objetos, es necesaria en la vida
de un programador ya que con esta visualizamos las actividades de cada una de
esas. Un objeto contiene toda la información que permite definirlo e
identificarlo frente a otros objetos pertenecientes a otras clases e incluso
frente a objetos de una misma clase, al poder tener valores bien diferenciados
en sus atributos. A su vez, los objetos disponen de mecanismos de interacción
llamados métodos, que favorecen la comunicación entre ellos. Esta comunicación
favorece a su vez el cambio de estado en los propios objetos. Esta
característica lleva a tratarlos como unidades indivisibles, en las que no se
separa el estado y el comportamiento.
- Herencia:
Es la transmisión del código entre unas clases y
otras. Para soportar un mecanismo de herencia tenemos dos clases: la clase
padre y la/s clase/s hija/s. La clase padre es la que transmite su código a las
clases hijas. En muchos lenguajes de programación se declara la herencia con la
palabra "extends".
Eso quiere decir que todo el código de la clase padre se
transmite, tal cual, a la clase hija. Si lo quieres ver así, es como si
tuvieras escrito, línea a línea, todo el código de la clase "Padre"
dentro de las llaves de la clase "Hija". Por eso, la herencia es
fundamental para reutilizar código, porque no necesitas volver a incorporar el
código de Padre en Hija, sino que realmente al hacer el "extends" es
como si ya estuviera ahí.
- Polimorfismo:
Es uno de los conceptos esenciales de la
programación orientada a objetos. Así como la herencia está relacionada con las
clases y su jerarquía, el polimorfismo lo está con los métodos. Hay tres
tipos de polimorfismo: el polimorfismo de sobrecarga, el polimorfismo
paramétrico y el polimorfismo de
inclusión.
Polimorfismo de sobrecarga:
Ocurre cuando las funciones del mismo nombre existen, con
función similar, en clases que son completamente independientes unas de otras
(estas no tienen que ser clases secundarias de la clase objeto). Esto significa
que no necesitamos preocuparnos sobre el tipo de objeto con el que estamos
trabajando si todo lo que deseamos es verlo en la pantalla. El
polimorfismo de sobrecarga nos permite definir operadores cuyos comportamientos
varían de acuerdo a los parámetros que se les aplican.
Polimorfismo paramétrico:
Es la capacidad para definir varias funciones
utilizando el mismo nombre, pero usando parámetros diferentes (nombre y/o
tipo). El polimorfismo paramétrico selecciona automáticamente el método
correcto a aplicar en función del tipo de datos pasados en el parámetro.
Una “signature” es el nombre y tipo (estático) que
se da a los argumentos de una función. Por esto, una firma de método determina
qué elemento se va a llamar.
Polimorfismo de subtipado:
La habilidad para redefinir un método en clases que se
hereda de una clase base se llama especialización. Por lo tanto, se puede
llamar un método de objeto sin tener que conocer su tipo intrínseco: esto
es polimorfismo de subtipado. Permite no tomar en cuenta detalles de las
clases especializadas de una familia de objetos, enmascarándolos con una
interfaz común (siendo esta la clase básica).
- Abstracción:
Es un término del mundo real que podemos aplicar tal cual lo
entendemos en el mundo de la Programación Orientada a Objetos. Algo abstracto
es algo que está en el universo de las ideas, los pensamientos, pero que no se
puede concretar en algo material, que se pueda tocar.
La abstracción expresa las características esenciales de un
objeto, las cuales distinguen al objeto de los demás.
- Encapsulación:
Se encarga de mantener ocultos los procesos
internos que necesita para hacer lo que sea que haga, dándole al programador
acceso sólo a lo que necesita. Esto da dos ventajas iniciales: Lo que hace
el usuario puede ser controlado internamente evitando que todo colapse por una
intervención indeseada. La segunda ventaja es que, al hacer que la mayor
parte del código esté oculto, puedes hacer cambios o mejoras sin que eso
afecte el modo como los usuarios van a utilizar tu código. Sólo tienes que
mantener igual la forma de acceder a él.
Referencias:
No hay comentarios:
Publicar un comentario