Los lenguajes orientados a objetos son los que implementan las características de la programación orientada a objetos.
Los conceptos definidos o las características de la programación orientada a objetos no son una condición para que a un cierto lenguaje se le pueda llamar lenguaje orientado a objetos. Existen algunos conceptos de la programación orientada a objetos que pueden no estar presentes en un cierto lenguaje, pero sin embargo esto no quita que este lenguaje deje de ser un lenguaje orientado a objetos.
Puede ser que las condiciones que son mínimas pero necesarias las provea el formalismo, el cual modela mejor las propiedades de un sistema orientado a objetos, dichas propiedades son: los tipos de datos abstractos.
Cualquier lenguaje que permita definir tipos de datos, y operaciones nuevas sobre estos tipos de datos y además que permita realizar instancias a los tipos de datos, se puede considerar como un lenguaje orientado a objetos.
Como el mismo nombre lo indica, un lenguaje de programación orientado a objetos se basa en la idea de un objeto, que es la combinación de métodos y variables locales, formando una entidad de programación.
Algunos de los lenguajes orientados a objetos:
- Python
- C++
- Java
- Smalltalk
- COBOL
- PHP 5
Ciertas Ventajas de un lenguaje orientado a objetos:
- Induce a la re utilización del código
- Admite la creación de sistemas mas complejos
- Vinculación del sistema al mundo real
- Posibilita la creación de programas visuales
Conceptos básicos del modelo orientado a objetos
Objetos
Todo un programa esta compuesto en base por varios componentes y dichos componentes son los objetos, en sí cada objeto tiene su función especifica en dicho programa y además todos los componentes (objetos) pueden comunicarse entre ellos de formas predefinidas.
Los objetos tienen características y comportamientos. Las características las tienen mantenidas en una o mas variables y los comportamientos los implementan con métodos. Dichos métodos son subrutinas que están asociadas a los objetos.
Cuando a las características del objeto les damos valores, se dice que el objeto tiene estados. Dichos estados son almacenados en un momento determinado por las variables.
Clase
En sí una clase es un modelo, prototipo o plantilla genérica para un conjunto de objetos con características parecidas (similares).
También es un modelo que define las variables y lo métodos que son similares a todos los objetos de una clase.
Hay otra formar de llamar a un objeto de una clase en particular y esto es, instancia de una clase, es decir objeto e instancia son representación de una clase en particular. Es decir, entre objeto e instancia no hay diferencia.
Herencia
La herencia consiste en que una clase puede heredar sus variables y sus métodos a varias subclases. La clase que hereda es llamada super clase o también clase padre. Esto quiere decir, que una subclase además de tener sus atributos y métodos propios, también tiene los atributos y métodos que son heredados por la clase padre. Y así se crea una jerarquía de herencia.
Se puede tener una jerarquía de clases grande, por ejemplo:
En donde Clase A es la clase padre de B. Clase B es la subclase de A. La clase B es la clase padre de C, D y E. Y C, D y E son las subclases de B.
Envío de mensajes
Los objetos interactúan entre si, por medio de los mensajes.
Características que son asociadas a la POO (Programación Orientada a Objetos)
Abstracción
La abstracción consiste en abstraer las características esenciales y similares de un objeto.
Encapsulamiento
El encapsulamiento consiste en unir las variables y los métodos de una clase, es decir, se tiene todo esto en una sola entidad.
Ocultamiento
El ocultamiento consiste en ocultar los detalles internos de una clase y solo exponer los detalles que son necesarios para el resto del sistema.
El ocultamiento permite la restricción y el control del uso de una clase. El ocultamiento permite la restricción porque habrá cierto contenido del comportamiento de la clase, que no podrá ser accedido por otras clases. Y también el ocultamiento permite el control de uso de una clase porque se darán mecanismos para modificar el estado de la clase.
Referencias
Saludos.