La POO es un paradigma surgido en los años 1970, que utiliza objetos como elementos fundamentales en la construcción de la solución. Un objeto es una abstracción de algún hecho o ente del mundo real, con atributos que representan sus características o propiedades, y métodos que emulan su comportamiento o actividad. Todas las propiedades y métodos comunes a los objetos se encapsulan o agrupan en clases. Una clase es una plantilla, un prototipo para crear objetos; en general, se dice que cada objeto es una instancia o ejemplar de una clase.
La programación orientada a objetos surge en la historia como un intento para dominar
la complejidad que, de forma innata, posee el software. Tradicionalmente, la forma de
enfrentarse a esta complejidad ha sido empleando lo que llamamos programación
estructurada, que consiste en descomponer el problema objeto de resolución en
subproblemas y más subproblemas hasta llegar a acciones muy simples y fáciles de
codificar. Se trata de descomponer el problema en acciones, en verbos.
CONCEPTO
Objeto:Un objeto no es más que un conjunto de variables (o datos) y métodos (o funciones)
relacionados entre sí. Los objetos en programación se usan para modelar objetos o
entidades del mundo real (el objeto hijo, madre, o farmacéutica, por ejemplo). Un objeto
es, por tanto, la representación en un programa de un concepto, y contiene toda la
información necesaria para abstraerlo: datos que describen sus atributos y operaciones
que pueden realizarse sobre los mismos. La siguiente figura muestra una representación
visual de un objeto.
Clase: En informática, una clase es una plantilla para la creación de objetos de datos según un modelo predefinido. Las clases se utilizan para representar entidades o conceptos, como los sustantivos en el lenguaje. Cada clase es un modelo que define un conjunto de variables -el estado, y métodos apropiados para operar con dichos datos -el comportamiento. Cada objeto creado a partir de la clase se denomina instancia de la clase.
Las clases son un pilar fundamental de la programación orientada a objetos. Permiten abstraer los datos y sus operaciones asociadas al modo de una caja negra. Los lenguajes de programación que soportan clases difieren sutilmente en su soporte para diversas características relacionadas con clases. La mayoría soportan diversas formas de herencia. Muchos lenguajes también soportan características para proporcionar encapsulación, como especificadores de acceso.
Constructor: En programación orientada a objetos (POO), un constructor es una subrutina cuya misión es inicializar un objeto de una clase. En el constructor se asignan los valores iniciales del nuevo objeto.
Se utiliza para crear tablas de clases virtuales y poder así desarrollar el polimorfismo, una de las herramientas de la programación orientada a objetos. Al utilizar un constructor, el compilador determina cual de los objetos va a responder al mensaje (virtual) que hemos creado. Tiene un tipo de acceso, un nombre y un paréntesis.
Instancias: Una instancia es la particularización, realización específica u ocurrencia de una determinada clase, entidad (modelo entidad-relación) o prototipo.
En general, cuando se ejecuta un programa en un computador, se dice que éste se instancia. En los lenguajes de programación orientada a objetos un objeto es una instancia de una clase. Esto es, un miembro de una clase que tiene atributos en lugar de variables. En un contexto del mundo real, podríamos pensar en "Casa" como una clase y en un chalet como una instancia de esta e incluso otro chalet u otro tipo de casa como puede ser un apartamento como otra instancia.1 En este caso no importa el tipo de casa, si fuese de nuestro interés modelarlo y especificarlo, diferenciaríamos entre un chalet y un apartamento con dos clases, entidades o prototipos diferentes.
Método: conjunto de instrucciones a las que se les asocia un nombre de modo que si se desea ejecutarlas, sólo basta o referenciarlas a través de dicho nombre en vez de tener que escribilas.
Dentro de estas instrucciones es posible acceder con total libertad a la información almacenada en los campos, pertenecientes a la clase dentro de la que el método se ha definido. Por lo que los métodos premiten manipular los datos almacenados en los objetos.
Polimorfismo: En programación orientada a objetos el polimorfismo se refiere a la posibilidad de definir clases diferentes que tienen métodos o atributos denominados de forma idéntica, pero que se comportan de manera distinta. El concepto de polimorfismo se puede aplicar tanto a funciones como a tipos de datos. Así nacen los conceptos de funciones polimórficas y tipos polimórficos. Las primeras son aquellas funciones que pueden evaluarse o ser aplicadas a diferentes tipos de datos de forma indistinta; los tipos polimórficos, por su parte, son aquellos tipos de datos que contienen al menos un elemento cuyo tipo no está especificado.
#include<stdio.h>; #include<conio.h>; #include<iostream>; using namespace std; class figuras { public: float base; float altura; public: float captura(); virtual unsigned float perimetro()=0; virtual unsigned float area()=0; }; class rectangulo: public figura{ public: void imprime(); unsigned float perimetro(){return 2*(base+altura);} unsigned float area(){return base*altura;} }; class triangulo: public figura{ public: void muestra(); unsigned float perimetro(){2*altura+base} unsigned float area(){return (base*altura)/2;} }; void figura::captura(){ cout<<"CALCULO DEL AREA Y PERIMETRO DE UN TRIANGULO ISOCELES Y UN RECTANGULO:" <<endl; cout<<"escribe la altura: "; cin>>altura; cout>>"escribe la base: "; cin>>base; };https://www.ecured.cu/Polimorfismo_(Inform%C3%A1tica)
Encapsulamiento: 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.
http://es.ccm.net/contents/410-poo-encapsulacion-de-datos
En java se representa asi:
http://es.ccm.net/contents/410-poo-encapsulacion-de-datos
Herencia: La herencia se refiere a que podemos “heredar” una clase más general, a otra menos general. Por ejemplo, nuestra clase Vehiculo es una clase general, debido a que existen varios tipos de vehículo, como autos, motos, camionetas, etc. Lo que hace la herencia, es obtener los datos comunes a todos los vehículos y aplicarlos a uno en específico. Por ejemplo, implementaremos una clase Auto, heredada de la clase Vehiculo:
https://gbenussi.wordpress.com/2012/06/01/programacion-orientada-a-objetos-parte-ii-encapsulamiento-herencia-y-polimorfismo/