Programación orientada a objetos – conceptos básicos

Programador

Programación orientada a objetos – conceptos básicos

La programación orientada a objetos en español abreviado como POO y en inglés como OPP es un paradigma de programación ampliamente utilizado en el diseño y programación de aplicaciones web y programas informáticos. Actualmente existe un muy amplio grupo de lenguajes de programación que aceptan POO. Ver documentación oficial para PHP.

Conceptos básicos de programación orientada a objetos

A continuación explicaremos de forma básica el significado de algunos conceptos relacionados con este tipo de forma de programar.

Programación orientada a objetos - conceptos básicos

¿Qué es un objeto?

Un objeto es la representación de un elemento. Esta representación determina su identidad y su estado en un determinado momento. Aunque es algo difícil de describir, diremos que un objeto puede representar algo tangible, como un coche, o algo intangible, como una estrategia.

Un objeto es una pieza de software única que posee ciertas características (atributos) y un comportamiento previamente determinado (métodos que se definen en una clase).

¿Qué es una clase?

Un clase es un «molde» que se utiliza para definir las características y funcionalidades de los objetos, lo que significa, que una clase es la definición de un objeto. Es un modelo abstracto, sin «vida», ya que son sus instancias (objetos) las que tendrán valores en el futuro.

Desde un punto de vista más técnico, es el lugar donde se define los métodos y atributos que tendrán los objetos.

Cuando se crea una clase, por convención, suelen colocarse en la parte superior los atributos y en la parte inferior sus métodos.

Atributos

Los atributos son las características del objeto. Normalmente se definen en la parte superior de una clase y pueden tener un valor predefinido. Tambien es habitual definir el tipo de dato que va a contener cada atributo.

Estos valores podrán ser modificados en cuanto se instancie una clase o meiante un método de la propia clase.

Métodos

Representan el comportamiento del objeto. Es decir, lo que el objeto puede hacer. Sería equivalente a una función en programación normal, aunque en este caso, su acción sólo puede ser ejecutada en una instancia de nuestra clase por defecto.

Encapsulamiento

Consiste en definir que partes de nuestra implementación es accesible y desde dónde. Por ejemplo, la práctica habitual es definir los atributos como privados (sólo accesibles desde la propia clase) y los métodos como públicos.

El encapsulamiento protege a las propiedades de un objeto contra su modificación para quienes no tienen derecho a acceder a ellas, solamente los propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto de manera inesperada.

La declaración de atributos va precedido de una palabra que puede ser public, private o protected.

Public. El atributo o método precedido de public podrá ser leído o llamado desde cualquier parte del código, sea desde la misma clase o fuera de ella, esto significa que también podrá ser alterado sin restricciones, por eso se aconseja que los atributos se declaren como privados salvo casos excepcionales.

Private. El atributo o método establecido como private solo puede ser leído desde el interior de la clase. Al intentar acceder desde fuera de la clase obtendríamos un error.

Protected. Los atributos o métodos protected son similares a los private, solo se puede acceder a ellos desde el interior de la clase, pero con una diferencia muy útil, las clases heredadas de está también podrán leer y alterar estos atributos.

Herencia

Es la capacidad de un objeto para utilizar atributos y métodos de otro objeto del que hereda. Si bien se heredan los métodos de los antepasados, es posible redefinirlos si fuera necesario.

La idea es no repetir comportamientos que otros ya lo tienen implementados. La idea es que en la clase padre exista un comportamiento estándar y la clase hija pueda especializarla en los aspectos que se requiera.

Con esto mejoramos la reutilización del código, favorecemos el polimorfismo de los objetos y obtenemos una organización jerárquica.

Polimorfismo

El polimorfismo es la capacidad de una clase abstracta o un objeto determinado para responder a un mismo método con su propio comportamiento. El polimorfismo especifica que un parámetro u objetos pasado o esperado puede adoptar múltiples formas y tener diferentes comportamiento con los mismos métodos.

Ejemplos de programación orientada a objetos

En esta publicación podrás ver ejemplos de implementación de programación orientada a objetos.

Escribe una respuesta