La interpretación más común de orientación a objetos
La orientación a objetos (OO) es un método de desarrollo de software. Los conceptos y aplicaciones orientados a objetos han ido más allá del alcance de la programación y el desarrollo de software, extendiéndose a sistemas de bases de datos, interfaces interactivas, arquitecturas de aplicaciones, plataformas de aplicaciones, sistemas distribuidos, estructuras de gestión de redes, tecnología CAD, inteligencia artificial y otros campos. La orientación a objetos es un método para comprender y abstraer el mundo real. Es el producto del desarrollo de la tecnología de programación informática hasta cierto punto.
Concepto
Objeto.
Un objeto es cualquier cosa que la gente quiera estudiar. Desde los números enteros más simples hasta aviones complejos, pueden considerarse objetos y no solo pueden representar cosas específicas, sino también reglas, planes o eventos abstractos.
El estado y comportamiento del objeto.
Los objetos tienen estados y los objetos utilizan valores de datos para describir sus estados.
Los objetos también tienen operaciones, que se utilizan para cambiar el estado del objeto; el objeto y sus operaciones son el comportamiento del objeto.
Los objetos realizan la combinación de datos y operaciones, por lo que los datos y las operaciones se encapsulan en la unidad de los objetos.
Clase.
Una abstracción de un objeto con las mismas características (elementos de datos) y comportamiento (función) es una clase. Por lo tanto, la abstracción de un objeto es una clase y la concreción de una clase es un objeto. También se puede decir que una instancia de una clase es un objeto y una clase es en realidad un tipo de datos.
Las clases tienen atributos, que son abstracciones de estados de objetos, y las estructuras de datos se utilizan para describir los atributos de las clases.
Una clase tiene operaciones, que son abstracciones del comportamiento del objeto, descritas por el nombre de la operación y el método que implementa la operación.
La estructura de la clase.
Hay muchas categorías en el mundo objetivo, y existen ciertas relaciones estructurales entre estas categorías. Por lo general, existen dos relaciones estructurales principales, a saber, relaciones estructurales específicas generales y relaciones estructurales de parte completa.
① La estructura específica general se denomina estructura de clasificación, y también se puede decir que es una relación "o" o una relación "es".
②La estructura de partes enteras se llama estructura de conjunto, y la relación entre ellas es una relación "y", o una relación "tener".
Mensajes y métodos.
La estructura utilizada para la comunicación entre objetos se llama mensaje. En las operaciones de objetos, cuando se envía un mensaje a un objeto, el mensaje contiene información sobre cómo realizar ciertas operaciones en el objeto receptor. El envío de un mensaje debe incluir al menos una descripción del nombre del objeto que recibe el mensaje y el nombre del mensaje enviado al objeto (es decir, nombre del objeto, nombre del método). Generalmente, también incluye una descripción de los parámetros. Estos parámetros pueden ser nombres de variables conocidos por el objeto que identifica el mensaje, o nombres de variables globales conocidos por todos los objetos.
La implementación de operaciones en una clase se llama método. Un método tiene un nombre de método, valor de retorno, parámetros y cuerpo del método.
Características
Unicidad del objeto.
Cada objeto tiene su propio identificador único a través del cual se puede encontrar el objeto correspondiente. Durante todo el ciclo de vida de un objeto, su identidad no cambiará y diferentes objetos no pueden tener la misma identidad.
Abstracción.
La abstracción es la abstracción de objetos con estructuras de datos (propiedades) y comportamientos (operaciones) consistentes en clases. Una clase es una abstracción que refleja propiedades importantes relevantes para una aplicación e ignora otro contenido irrelevante. La delimitación de cualquier clase es subjetiva pero debe ser relevante para una aplicación específica.
Herencia.
La herencia es un mecanismo para que las subclases disfruten automáticamente de las estructuras de datos y los métodos de las clases principales. Es una relación entre clases. Al definir e implementar una clase, puede construir sobre la clase existente, usar el contenido de la definición de clase existente como su propio contenido y agregar algunos elementos nuevos.
La herencia es la característica más importante que distingue a los lenguajes de programación orientados a objetos de otros lenguajes, y también es algo que otros lenguajes no tienen.
En la jerarquía de clases, una subclase que hereda estructuras de datos y métodos de una sola clase principal se denomina herencia unaria. Una subclase que hereda estructuras de datos y métodos de múltiples clases principales en una jerarquía de clases se denomina herencia múltiple.
En herencia múltiple, JAVA, VB, NET y Objective-C solo admiten herencia única. Cabe señalar que en herencia múltiple en C, se debe prestar atención a la dualidad.
En el desarrollo de software, la herencia de clases hace que el software construido sea abierto y extensible. Es un método eficaz para organizar y clasificar información. Simplifica la carga de trabajo de creación de objetos y clases.
El uso de la herencia proporciona una jerarquía de clases estandarizada. A través de la relación de herencia de clases, se puede acceder y disfrutar del acceso público, mejorando así la reutilización del software.
Polimorfismo
Polimorfismo significa que una misma operación, función o procedimiento puede actuar sobre múltiples tipos de objetos y obtener diferentes resultados. Diferentes objetos que reciben el mismo mensaje pueden producir resultados diferentes, un fenómeno conocido como polimorfismo.
El polimorfismo permite que cada objeto responda al mismo mensaje de la forma que más le convenga.
El polimorfismo mejora la flexibilidad y la reutilización del software.