¿Cuál es la diferencia entre programación orientada a objetos y programación orientada a procedimientos?
El lenguaje C es programación orientada a procesos. Su característica más importante es la función, que llama a una subfunción a través de la función principal. El orden en que se ejecutan los programas lo determina el programador. Fue el primer lenguaje de programación que aprendí.
C es programación orientada a objetos y las clases son sus características principales. Durante la ejecución del programa, la función principal primero ingresa, define algunas clases y ejecuta las funciones miembro de las clases según sea necesario. se diluye (de hecho, todavía hay un proceso, que son las declaraciones de la función principal), y las clases son objetos, por eso lo llamamos programación orientada a objetos.
Diferencias: 1. Modelo de programación
Todas las computadoras se componen de dos elementos: código y datos. Para ser precisos, algunos programas se escriben en torno a "lo que está sucediendo" y otros se escriben en torno a "quién". de ".
El primer método de programación se denomina "modelo orientado a procesos". Los programas escritos según este modelo se caracterizan por una serie de pasos lineales (código) que pueden entenderse. Es el código que actúa sobre los datos. Como C y otros lenguajes de procedimiento.
El segundo método de programación se denomina "modelo orientado a objetos". Los programas escritos según este modelo giran en torno a los datos (objetos) del programa. y Se utiliza una interfaz estrictamente definida para el objeto para organizar el programa. Se caracteriza por el acceso al código de control de datos. Al transferir el control a los datos, el modelo orientado a objetos tiene: abstracción, encapsulación, herencia y polimorfismo. p>
2. Abstracción
El elemento básico de la programación orientada a objetos es la abstracción, y los programadores la utilizan para gestionar la complejidad.
Formas efectivas de gestionar la abstracción Utiliza clasificación jerárquica. Características Este método permite a los usuarios descomponer un sistema complejo según su significado físico y dividirlo en partes más manejables. Por ejemplo, un sistema informático es un objeto independiente. Dentro del sistema informático, hay varios subsistemas que se componen de: monitor. teclado, disco duro, DVD-ROM, disquete, estéreo, etc. Cada uno de estos subsistemas está compuesto por componentes especializados. La clave es utilizar la abstracción jerárquica para administrar el sistema informático (o cualquier otro sistema complejo) Complejidad
La esencia de la programación orientada a objetos: estos objetos abstractos pueden verse como entidades concretas que responden a mensajes que nos dicen qué hacer
/* (Según tengo entendido)
*La computadora es una entidad. Quiero ingresar caracteres y el monitor los muestra, luego
*Computadora (objeto).Input (atributos del teclado).Display (método de visualización)
<. p>*Utilice capas para hacer referencia y operar, independientemente de cómo lo maneje la computadora internamente.*Siempre que haya un objeto de computadora, puede responder a mis operaciones y escribo en el teclado.
*El objeto de la computadora transmite este mensaje a la pantalla y la pantalla muestra
*/
El objeto de la computadora contiene todos sus atributos y operación. Este es uno de los tres principios principales de la programación orientada a objetos:
3. Encapsulación
La encapsulación es una forma de agrupar el código y los datos operados por el código. un mecanismo que protege a los dos de interferencias externas y uso indebido. La encapsulación puede entenderse como un contenedor utilizado como protección para evitar que otro código definido fuera del contenedor acceda arbitrariamente al código y los datos. una interfaz claramente definida La ventaja de encapsular código es que todos saben cómo acceder al código y pueden usarlo directamente sin preocuparse por los detalles de implementación y sin preocuparse por efectos secundarios impredecibles.
En JAVA, el más básico. La unidad de encapsulación es una clase. Una clase define el comportamiento (datos y código) que será compartido por un grupo de objetos. Cada objeto de una clase contiene la estructura y el código que define. Estos objetos parecen estar moldeados. Por lo tanto, los objetos también se denominan instancias de clases.
Al definir una clase, es necesario especificar el código y los datos que componen la clase. El objeto definido se llama variable miembro o variable de instancia. El código que opera los datos se llama método miembro. El método define cómo usar la variable miembro, lo que significa que el comportamiento y la interfaz de la clase están definidos por. el método que opera los datos de la instancia.
Dado que el propósito de una clase es encapsular la complejidad, existe un mecanismo dentro de la clase para ocultar la complejidad de la implementación. Por lo tanto, JAVA proporciona modos de acceso público y privado. La interfaz de la clase representa todo lo que los usuarios externos deben saber o pueden saber. Solo se puede acceder a los datos del método privado a través del código de miembro de la clase. Esto garantiza que no sucedan cosas no deseadas.
La herencia se refiere a un objeto. El proceso de obtener atributos de otro objeto. Es una cara.
El segundo de los tres principios principales de la programación orientada a objetos respalda el concepto de clasificación jerárquica. Por ejemplo, los gatos persas son un tipo de gato, los gatos son un tipo de mamífero y los mamíferos son un tipo de animal. no utilizar jerarquías El concepto de cada objeto necesita definir claramente todas sus características. A través de la clasificación jerárquica, un objeto solo necesita definir sus atributos únicos en su clase y luego heredar sus atributos comunes de la clase principal. del mecanismo de herencia que un objeto puede convertirse en una instancia específica de una clase general. Una subclase profundamente heredada heredará todas las propiedades de cada uno de sus antepasados en la jerarquía de clases.
La herencia y la encapsulación pueden interactuar con cada uno. other Si una clase determinada encapsula ciertas propiedades, cualquiera de sus subclases contendrá las mismas propiedades, más todas las propiedades de cada subclase. Esta es la linealidad en la complejidad de los programas orientados a objetos. Las nuevas subclases heredan todas las propiedades de todos sus antepasados. Las subclases y otro código en el sistema no tendrán interacciones impredecibles.
5. Polimorfismo
p>Polimorfismo significa que un método solo puede tener. un nombre, pero puede tener muchas formas. Es decir, se pueden definir varios métodos con el mismo nombre en el programa, que se describe como "una interfaz, varios métodos". >
6. Uso combinado de encapsulación, herencia y polimorfismo
En un entorno compuesto de encapsulación, herencia y polimorfismo, los programadores pueden escribir programas que sean más robustos y extensibles que el modelo orientado a procesos. Una jerarquía de clases cuidadosamente diseñada es la base para reutilizar el código. La encapsulación permite a los programadores trasladar el programa sin modificar el código de la interfaz pública. El polimorfismo permite que el programa sea conciso, fácil de entender y de modificar. Por ejemplo: automóvil
Desde la perspectiva de la herencia, los conductores dependen de la herencia para conducir diferentes tipos (subclases) de automóviles, independientemente de si se trata de un automóvil, un camión o un Mercedes. -Benz o Fiat, el conductor puede encontrar el volante, el freno de mano y la palanca de cambios después de conducir durante un período de tiempo, todos sabrán la diferencia entre las transmisiones manuales y automáticas, porque en realidad las conocen todas. superclase entre estos dos: transmisión.
Desde la perspectiva del paquete, el conductor siempre ve las características empaquetadas que esconden mucha complejidad y su apariencia es tan simple que puede operarlo con los pies. el tamaño del motor, el freno de mano y los neumáticos no tiene ningún impacto en la definición de la clase de freno.
Desde una perspectiva polimórfica, el sistema de frenos se puede dividir en bloqueos de avance y retroceso. El conductor solo necesita usar el suyo. pie para frenar para detener. La misma interfaz se puede utilizar para controlar varias implementaciones diferentes (bloqueo hacia adelante o bloqueo hacia atrás). De esta manera, cada componente independiente se convierte en el objeto del automóvil. Al utilizar principios de diseño orientado a objetos, los programadores pueden combinar varios componentes de un programa complejo para formar un programa consistente, robusto y fácil de mantener.