Red de conocimiento informático - Material del sitio web - Cómo entender clases y objetos en programación orientada a objetos

Cómo entender clases y objetos en programación orientada a objetos

Conceptos básicos de la programación orientada a objetos: La orientación a objetos, en pocas palabras, consiste en abstraer problemas en objetos, establecer atributos (datos) y especificar eventos o métodos de procesamiento (código) para lograr el objetivo. enfatizando el mapeo directo orientado a problemas de conceptos de dominio a programas e interfaces de software. Los conceptos de programación orientada a objetos incluyen principalmente: objetos, clases, abstracción de datos, herencia, enlace dinámico, encapsulación de datos, polimorfismo y paso de mensajes. A través de estos conceptos se han materializado concretamente las ideas orientadas a objetos.

Características básicas de la programación orientada a objetos 1) Objeto: El objeto es la entidad básica durante el tiempo de ejecución. Es una entidad lógica que encapsula datos y el código que opera con estos datos. 2) Clase: Una clase es una abstracción de objetos del mismo tipo. Todos los datos y el código contenidos en un objeto se pueden construir mediante clases. 3) Encapsulación: la encapsulación es una tecnología de ocultación de información, que se refleja en la descripción de la clase y es una característica importante del objeto. La encapsulación encapsula datos y métodos (funciones) que procesan los datos en un todo para lograr un módulo altamente independiente, de modo que los usuarios solo puedan ver las características externas del objeto (qué mensajes puede aceptar el objeto, qué capacidades de procesamiento tiene), y Las propiedades internas del objeto (los datos privados que contienen el estado interno y los algoritmos que implementan las capacidades de procesamiento) están ocultas al usuario. El propósito de la encapsulación es separar al diseñador del objeto del uso del objeto. El usuario no necesita conocer los detalles de la implementación del comportamiento y solo necesita usar el mensaje proporcionado por el diseñador para acceder al objeto. 4) Herencia: la herencia es un mecanismo para que las subclases compartan automáticamente datos y métodos entre las clases principales. Está representado por la función derivada de la clase. Una clase hereda directamente todas las descripciones de otras clases y puede modificarse y expandirse al mismo tiempo. La herencia es transitiva. La herencia se divide en herencia única (una subclase tiene solo una clase principal) y herencia múltiple (una clase tiene varias clases principales). Los objetos de clase se cierran individualmente. Si no existe un mecanismo de herencia, habrá mucha duplicación de datos y métodos en los objetos de clase. La herencia no sólo apoya la reutilización del sistema, sino que también promueve la extensibilidad del sistema. 5) Polimorfismo: El objeto realiza acciones en función de los mensajes recibidos. El mismo mensaje puede producir acciones completamente diferentes cuando lo reciben diferentes objetos. Este fenómeno se llama polimorfismo. Usando el polimorfismo, los usuarios pueden enviar un mensaje común y dejar todos los detalles de implementación al objeto que recibe el mensaje. En este caso, el mismo mensaje puede llamar a diferentes métodos. Por ejemplo: el método de impresión llamado cuando se envía un mensaje de impresión a una figura o tabla será completamente diferente del método de impresión llamado cuando el mismo mensaje de impresión se envía a un archivo de texto. La implementación del polimorfismo está respaldada por la herencia, que utiliza la relación jerárquica de la herencia de clases para almacenar protocolos con funciones comunes lo más alto posible en la jerarquía de clases, mientras coloca diferentes métodos para lograr esta función en niveles inferiores. en estos niveles bajos pueden responder de manera diferente a mensajes comunes. El polimorfismo se puede lograr en OOPL redefiniendo las funciones de clase base (definidas como funciones sobrecargadas o funciones virtuales) en clases derivadas. 6) Vinculación dinámica

La vinculación se refiere al acto de vincular una llamada a un procedimiento con el código correspondiente. El enlace dinámico es un enlace en el que el código asociado con una llamada a un procedimiento determinado se conoce sólo en tiempo de ejecución. Es una forma específica de implementación polimórfica. 7) Transmisión de mensajes: los objetos necesitan comunicarse entre sí y la forma de comunicación es enviar y recibir información entre objetos. El contenido del mensaje incluye la identificación del objeto que recibe el mensaje, la identificación de la función que debe llamarse y la información necesaria. El concepto de transmisión de mensajes facilita la descripción del mundo real.

Lenguaje orientado a objetos

Para que un lenguaje sea llamado lenguaje orientado a objetos, debe soportar varios conceptos principales orientados a objetos. Según los diferentes niveles de soporte, los lenguajes orientados a objetos comúnmente conocidos se pueden dividir en dos categorías: lenguajes basados ​​en objetos y lenguajes orientados a objetos.

Los lenguajes basados ​​en objetos solo admiten clases y objetos, mientras que los lenguajes orientados a objetos admiten conceptos que incluyen: clases y objetos, herencia y polimorfismo. Por ejemplo, Ada es un lenguaje típico basado en objetos porque no admite herencia ni polimorfismo. Además, otros lenguajes basados ​​en objetos incluyen Alphard, CLU, Euclid y Modula.

Algunos lenguajes orientados a objetos son lenguajes recién inventados, como Smalltalk y Java. Estos lenguajes a menudo absorben la esencia de otros lenguajes y tratan de eliminar sus deficiencias. Por lo tanto, las características de los lenguajes orientados a objetos son particularmente obvias. y lleno de vitalidad; otros evolucionaron transformando los lenguajes existentes y agregando características orientadas a objetos.