Si estás leyendo este blog, estoy seguro de que en algún momento has escuchado la expresión “Pogramación Orientada a Objetos” y es que no se puede hablar de programación moderna sin hablar de ella. La POO es uno de los Paradigmas de programación que han surgido a través de la historia.
Principalmente, el término se atribuye a que toda la estructura de un programa o servicio programado orientado a objetos está compuesta por eso, por objetos, ¿y qué es un objeto? Segun EcuRed un objeto es “La entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos) los mismos que consecuentemente reaccionan a eventos. Se corresponde con los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa). Es una instancia a una clase.” De ese concepto podemos sacar que un objeto es la referencia a un componente real del mundo que conocemos, literalmente lo es y es que podemos comprar un objeto de programación con cualquier objeto de la vida real. Tomemos como ejemplo un automóvil, como dice el concepto el objeto tiene Atributos (Datos) y Comportamiento (Métodos), pensemos en el automóvil, podemos decir que un automovil tiene atributos; es de color rojo, tiene cuatro ruedas y produce sonido. Ahora si pensamos en el comportamiento de este objeto podemos decir que; puede moverse rápidamente. Todo esto puede sonar muy absurdo pero…
class Automovil
{
String color = "Rojo";
int ruedas = "4";
bool suena = true;
public void Mover()
{
Console.WriteLine("¡Soy capaz de moverme rápidamente!");
}
}
// Se que es C# y quizás no todos lo conozcan pero: https://www.ecured.cu/Programación_Orientada_a_Objetos
Todo lo antes explicado nos lleva a poder darnos cuenta de cual es el objetivo de la programación orientada a objetos, es facilitar el aprendizaje principalmente porque un programador es un humano, acostrumbrado a estar en contacto con objetos todo el tiempo y a los creadores se les ocurrió que si esto fuera aplicable a la programación sería una ventaja enorme, y así fue.
Además la POO tiene otros conceptos y a continucación son explicados:
| Clase | Definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas. |
| Herencia | Es la facilidad mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido definidos por la misma D. Por lo tanto, puede usar los mismos métodos y variables publicas declaradas en C. Los componentes registrados como “privados” (private) también se heredan, pero como no pertenecen a la clase, se mantienen escondidos al programador y sólo pueden ser accedidos a través de otros métodos públicos. Esto es así para mantener hegemónico el ideal de OOP. |
| Método | Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un “mensaje”. Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en las propiedades del objeto, o la generación de un “evento” con un nuevo mensaje para otro objeto del sistema. |
| Evento | Es un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. También se puede definir como evento, a la reacción que puede desencadenar un objeto, es decir la acción que genera. |
| Mensaje | Una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó. |
| Propiedad o atributo | Contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus características predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún método. |
| Estado interno | Es una variable que se declara privada, que puede ser únicamente accedida y alterada por un método del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). No es visible al programador que maneja una instancia de la clase. |
Actualmente hay muchísimos lenguajes orientados a objetos, en su mayoría son muy famosos, algunos más que otros pero seguro has escuchado sobre al menos dos o tres de ellos. Entre esos lenguajes están:
C++, C#, PHP, Java, Python, Ruby, Visual Basic .NET, Objetive-C, JavaScript, ActionScript, entre otros…
Y bueno amigos, eso ha sido todo, espero que les haya gustado el artículo, hayan aprendido con él y sobre todo haya despertado en algunos el entuciasmo por aprender y seguir aprendiendo programación. Recuerden que si necesitan ayuda con algún tema pueden comentar les colaboraré en lo que sepa y en lo que no intentaré encontrar soluciones en algún pues yo también quiero seguir aprendiendo. ¡Un saludo!