Es un paradigma que define objetos y clases como la base
de la programación. Cada objeto está definido por sus atributos y su
comportamiento está definido por las operaciones que dichos objetos pueden
hacer. La programación orientada a objetos, expresa un programa como un
conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto
permite hacer los programas y módulos más fáciles de escribir, mantener y
reutilizar.
El paradigma orientado a objetos (OO) define los
programas en términos de comunidades de objetos. Los objetos con
características comunes se agrupan en clases (un concepto similar al de tipo
abstracto de dato (TAD)). Los objetos son entidades que combinan un estado (es
decir, datos) y un comportamiento (esto es, procedimientos o métodos). Estos
objetos se comunican entre ellos para realizar tareas. Es en este modo de ver
un programa donde este paradigma difiere del paradigma imperativo o
estructurado, en los que los datos y los métodos están separados y sin
relación. El paradigma OO surge para solventar los problemas que planteaban
otros paradigmas, como el imperativo, con el objeto de elaborar programas y
módulos más fáciles de escribir, mantener y reutilizar. Entre los lenguajes que
soportan el paradigma OO están Smalltalk, C++, Delphi (Object Pascal), Java y
C#.
2.1. 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 subclase) 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.
2.2. Polimorfismo: En programación orientada a objetos se denomina polimorfismo a la capacidad que tienen los objetos de una clase de responder al mismo mensaje o evento en función de los parámetros utilizados durante su invocación. Un objeto polimórfico es una entidad que puede contener valores de diferentes tipos durante la ejecución del programa. Dicho de otra forma, el polimorfismo consiste en conseguir que un objeto de una clase se comporte como un objeto de cualquiera de sus subclases, dependiendo de la forma de llamar a los métodos de dicha clase o subclases. Una forma de conseguir objetos polimórficos es mediante el uso de punteros a la superclase. De esta forma podemos tener dentro de una misma estructura (arrays, listas, pilas, colas, ...) objetos de distintas subclases, haciendo que el tipo base de dichas estructuras sea un puntero a la superclase.
2.3. Abstracción: La abstracción es el proceso en el cual separamos las propiedades más importantes de un objeto, de las que no lo son. Es decir, por medio de la abstracción definimos las características esenciales de un objeto del mundo real, los atributos y comportamientos que lo definen como tal, para después modelarlo en un objeto de software. En el proceso de abstracción no debemos preocuparnos por la implementación de cada método o atributo, solamente debemos definirlo de forma general.
2.4. Encapsulamiento: Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesión de los componentes del sistema.
Se refiere a la capacidad de agrupar y condensar en un entorno con límites bien-definidos distintos elementos.
Referencias
UNAM. (2009) Paradigmas orientado a objetos . Recuperado el 11 de abril del 2018 de http://ecampus.fca.unam.mx/ebook/imprimibles/informatica/programacion/Unidad_3.pdf
UAMEN.(2015) El paradigma OO: una forma de ver el mundo. Recuperado el 11 de abril del 2018 de http://aprendeenlinea.udea.edu.co/lms/men_udea/mod/page/view.php?id=19537
UAMEN.(2015) POO-Herencia. Recuperado el 11 de abril del 2018 de https://es.ccm.net/contents/411-poo-herencia
Anonimo. (S.F.) Polimorfismo. Recuperado el 11 de abril de 2018 de https://cursos.aiu.edu/Lenguajes%20de%20Programacion%20Orientados%20a%20Objetos/PDF/Tema%204b.pdf
S.A. (S.F) Programación Orientada a Objetos. Recuperado el 11 de 2018 de http://pdi.topografia.upm.es/m.manso/docencia/Informatica_plan92/Curso-2002-2003/poo.pdf
Los conceptos que presentas en cuanto a los paradigmas de POO son correctos y brindan una definición clara de lo que es cada concepto de la misma. Además en nuestro caso estamos mas empapados y comprendemos de manera mas clara estos conceptos. Buen aporte.
ResponderBorrar