Las similitudes y diferencias entre la programación orientada a objetos y la programación procedimental
Todos los ordenadores 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 se ve afectado".
El primer método de programación se denomina "modelo orientado a procesos". Un programa escrito según este modelo se caracteriza por una serie de pasos lineales (código), que pueden entenderse como un código que actúa sobre datos. , como c .
El segundo método de programación se denomina "modelo orientado a objetos". Los programas escritos según este modelo se organizan en torno a los datos del programa (objetos) y a interfaces estrictamente definidas para los objetos. Cuenta con acceso a código de control de datos. Al transferir el control a los datos, el modelo orientado a objetos tiene las ventajas de abstracción, encapsulación, herencia y polimorfismo en los patrones organizativos.
Abstracción
La abstracción es un elemento básico de la programación orientada a objetos y los programadores la utilizan para gestionar la complejidad.
Una forma eficaz de gestionar la abstracción es utilizar la función de clasificación jerárquica, que permite al usuario descomponer un sistema complejo en función de su significado físico y dividirlo en partes más manejables. Por ejemplo, un sistema informático es un objeto independiente. Dentro de un sistema informático, consta de varios subsistemas: monitor, teclado, disco duro, DVD-ROM, disquete, audio, etc. Cada subsistema está compuesto por componentes especializados. El punto clave es utilizar niveles de abstracción para gestionar sistemas informáticos.
La esencia de la programación orientada a objetos: Estos objetos abstractos pueden considerarse 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, entonces.
*Computadora (objeto). entrada (propiedad del teclado). Visualización (método de visualización)
* Utiliza la jerarquía para hacer referencia y manipular, independientemente de cómo lo maneje internamente la computadora.
*Mientras haya un objeto de computadora, este puede responder a mis operaciones y a mi escritura en el teclado.
*El objeto de la computadora envía el mensaje a la pantalla y la pantalla muestra el mensaje.
*/
Un objeto informático contiene todas sus propiedades y operaciones. Este es uno de los tres principios de la programación orientada a objetos: la encapsulación.
Paso 3: Empaquetado
La encapsulación es un mecanismo que vincula el código y los datos manipulados por el código para que no estén sujetos a interferencias externas ni a un mal uso. La encapsulación puede entenderse como un paquete protector que evita que otro código definido fuera del paquete acceda arbitrariamente al código y a los datos. El acceso al código y los datos dentro del contenedor se controla a través de una interfaz bien definida. El beneficio de encapsular código es que todos saben cómo acceder al código, por lo que pueden usarlo directamente sin preocuparse por los detalles de implementación o por efectos secundarios impredecibles.
En JAVA, la unidad de encapsulación más básica es una clase, que define un conjunto de comportamientos (datos y código) que disfrutará un objeto. Cada objeto de una clase contiene su estructura y comportamiento definidos. Estos objetos son como un molde. Por lo tanto, los objetos también se denominan instancias de clases.
Cuando defines una clase, especificas el código y los datos que componen la clase. En particular, los objetos definidos por una clase se denominan variables miembro o variables de instancia. El código que manipula datos se llama métodos miembro. Los métodos definen cómo usar las variables miembro, lo que significa que el comportamiento y la interfaz de una clase deben definirse mediante métodos que operen con datos de instancia.
Debido a que el propósito de las clases es encapsular la complejidad, existe un mecanismo para ocultar la complejidad. Por lo tanto, JAVA proporciona modos de acceso público y privado. La interfaz pública de una clase representa todo lo que los usuarios externos deben 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, lo que garantiza que no sucederá nada inesperado.
4. Herencia
La herencia se refiere al proceso mediante el cual un objeto obtiene atributos de otro objeto. Es el segundo de los tres principios de la programación orientada a objetos y apoya el concepto de clasificación jerárquica. Por ejemplo, los gatos persas son un tipo de gato, los gatos son un tipo de mamíferos y los mamíferos son un tipo de animales.
Sin utilizar el concepto de jerarquía, cada objeto necesita tener todas sus características claramente definidas. Con la clasificación jerárquica, un objeto sólo necesita definir sus propiedades únicas en su clase y luego heredar sus propiedades públicas de su clase principal. Por tanto, es precisamente gracias al 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 sus antepasados en la jerarquía de clases.
La herencia y la encapsulación pueden interactuar. Si una clase determinada encapsula ciertas propiedades, entonces cualquiera de sus subclases contendrá las mismas propiedades, así como todas las propiedades de cada subclase. Este es un concepto importante. La complejidad de los programas orientados a objetos aumenta linealmente, no geométricamente. La nueva subclase hereda todas las propiedades de todos los antepasados. No habrá interacciones inesperadas entre las subclases y otro código del sistema.
5. Polimorfismo
Polimorfismo significa que un método solo puede tener un nombre, pero puede tener múltiples formas, es decir, se pueden definir múltiples métodos con el mismo nombre en el programa. , se describe el uso de "Una interfaz, múltiples métodos" y se puede hacer referencia a él a través de parámetros y tipos de métodos.
6. Combinación de encapsulación, herencia y polimorfismo
En un entorno compuesto de encapsulación, herencia y polimorfismo, los programadores pueden escribir programas más robustos y escalables. Una jerarquía de clases bien diseñada es la base para la reutilización del código. La encapsulación permite a los programadores portar programas sin modificar el código de la interfaz pública. El polimorfismo permite a los programadores desarrollar código conciso, comprensible y fácilmente modificable, como el de los automóviles.
Desde la perspectiva de la herencia, los conductores dependen de la herencia para conducir diferentes tipos (subcategorías) de automóviles. Independientemente de si el vehículo es un coche o un camión, un Mercedes-Benz o un Fiat, el conductor encontrará volante, freno de mano y palanca de cambios. Después de conducir un rato, todos conocen la diferencia entre transmisiones manuales y automáticas, porque en realidad saben que son lo mismo que los superdeportivos: transmisiones.
Desde la perspectiva del embalaje, los conductores siempre ven las características del embalaje. Los frenos esconden mucha complejidad y parecen lo suficientemente simples como para operarlos con los pies. La implementación del tamaño del motor, freno de mano y neumáticos no tiene impacto en la definición de la categoría de freno.
Desde una perspectiva polimórfica, el sistema de frenado se puede dividir en bloqueo positivo y bloqueo negativo. El conductor sólo necesita frenar con los pies. La misma interfaz se puede utilizar para controlar varias implementaciones diferentes (bloqueo positivo o negativo).
De esta forma, cada componente independiente se puede transformar en un objeto de coche. De manera similar, al utilizar principios de diseño orientado a objetos, los programadores pueden combinar los componentes de un programa complejo para formar un programa consistente, robusto y mantenible.