Programación Orientada a Objetos: Definición y Conceptos

Índice
Aunque estamos en la categoría JavaScript, la programación orientada a objetos (POO) no se limita solo a JavaScript. Existen decenas de otros lenguajes de programación que tienen esta característica (Phyton, Java, entre otros).
En este artículo hablaremos sobre este paradigma de la programación con su definición, los conceptos que intervienen y sus características.
Definición
La programación Orientada a objetos es una técnica particular de programar, que lleva a código las cosas de la vida real (objetos).
Programa de una forma más cercana a como nosotros expresaríamos las cosas en la vida real.
Por ejemplo tenemos una persona y queremos modelizarla llevardola a código a través de POO. Esta persona tiene características y comportamientos asociados como puede ser el nombre, numero de identificación, color de pelo, color de ojos, altura, forma de caminar, forma de reise, etc. Todo esto viene representado por los conceptos de clase, propiedades, métodos, entre otros que veremos a continuación.
Conceptos
Objeto
Son los objetos reales de la vida real que queremos llevarlo a código e implementar POO. Por ejemplo: perro, auto, persona,etc.
Clase
La clase crea a los objetos. Es una especie de plantilla donde se definen las propiedades (características) y métodos (comportamiento) que tiene el objeto. Es una suerte de “fabrica de objetos”.
Propiedades
También llamado atributos, es lo que caracteriza al objeto. Por ejemplo: edad, color, identificación, etc.
Métodos
Se define como el comportamiento del objeto, es decir lo que puede hacer. Por ejemplo si el objeto es un auto puede ser acelerar, prender, apagar, frenar, etc.
Desde el punto de vista de la programación es una función que se encuentra dentro de la clase que contiene el algoritmo asociado al objeto. Estas funciones no pueden ser funciones flechas.
Constructor
Como su nombre lo indica es el constructor de la clase. Construye las propiedades del objeto.
Instanciación
Cuando decimos crear un objeto estamos hablando de la instanciación.
Características
Abstracción
La abstracción consisten en definir en la clase las propiedades y métodos esenciales del objeto.
Por lo que si tenemos una clase con propiedades y métodos que no aportan nada lo mejor que podemos hacer es eliminarlos y dejar solo lo que utilicemos.
Se reduce al mínimo sus componentes.
Modularidad
Es una propiedad que permite separar el programa en partes mas pequeñas (módulos), cada una los mas independiente posible.
Encapsulamiento
Básicamente encapsular los datos, es decir protegerlos.
Polimorfismo
Se define como la capacidad que tienen los objetos de comportarse de una manera diferente ante un mismo método.
Todos los objetos no se comportan igual, ya que tiene propiedades o características diferentes.
Si por ejemplo tenemos dos objetos: un perro y una persona. Cada uno posee sus propiedades y métodos. Ambos poseen el método caminar, sin embargo el perro camina de una forma y la persona de otra, por lo que no se comportarán igual con el método ajeno que con el propio.
Herencia
Cuando ya tenemos una clase creada y queremos crear una nueva pero agregarles mas propiedades y métodos, la herencia nos ayuda a lograrlo.
Nos ahorra líneas de código y esfuerzo extra a la hora de reutilizar clases.
Última actualización el 17-02-2021 por Bruno D’Angelo