La Programación Orientada a Objetos (POO) es un paradigma de programación que busca que nuestra forma de programar sea más cercana a la forma como nos relacionamos en nuestro día a día.
Un paradigma de programación es una propuesta tecnológica adoptada por una comunidad de programadores y desarrolladores cuyo núcleo central es incuestionable en cuanto que únicamente trata de resolver uno o varios problemas claramente delimitados. Wikipedia
El nombre de "Orientado a Objetos" se debe a que nuestro código creará objetos que se encargarán de manipular los datos de entrada para así obtener datos de salida. Estos objetos tendrán propiedades y métodos.
Debemos aclarar que POO no se trata de nuevas características que le damos a un lenguaje de programación. Con POO nos estamos refiriendo a una nueva forma de pensar. Lo que se acostumbra a ver es la programación estructurada. En donde tenemos un problema y lo desconponemos en distintos sub problemas para poder llegar a tener soluciones más pequeños y simples.
Cómo lo mencioné anteriormente. POO busca ver la programación como en la vida real. Donde los objetos son similar a los objetos en la vida real.
Vamos a poner un ejemplo de nuestra vida cotidiana: Pensemos en un gato. Éste tiene diferentes características, como su raza, nombre, color, tamaño, etc. El gato también cuenta con diferentes acciones, como arañar, maullar, correr, etc.
En Programación Orientada a Objeto el gato sería un objeto. Las caracterías son las propiedades del objeto y las acciones vendrían a ser los métodos.
Ahora veamos un ejemplo en programación. Tenemos un artículo creado. Este artículo tiene diferentes propiedades como el nombre, cantidad de imágenetes, autor, etc. Y también contaría con métodos, tales como "compartir" el cual serviría para enviar el artículos a diferentes redes sociales, otro método sería el actualizar el artículo. Y así diferentes acciones que le demos.
Así como el artículo, para nuestro blog por ejemplo, tendremos diferentes objetos. Y estos los crearemos con clases, que vendrían a ser algo así como los moldes. Ya que nos ayudarán a crear distintos objetos.
Otra de las cosas que hacen que POO sea muy usado es la herencia. La herencia sirve para crear objetos que tengan (hereden) las propiedades y métodos de otro objeto.
Volvamos al ejemplo con la vida real. Tenemos un objeto llamado Ave, en el que las propiedades serían color, tamaño de alas. Y uno de sus métodos sean volar. La herencia haría que yo cree un objeto Paloma que herede todo lo del objeto Ave y le agrega sus propias propiedades y métodos. También podemos crear el objeto Gorrión y hará lo mismo que la paloma. Heredará cosas del Ave y le agregará los suyos propios.