Diferencia entre la unión estática y la unión dinámica

Diferencia entre la unión estática y la unión dinámica

Diferencia clave: estática Enlace vs vinculante dinámico
 

Lenguajes de programación como Java y C# Soporte de programación orientada a objetos (OOP). Permite construir software utilizando objetos. Hay muchos objetos en un sistema de software o un programa. Estos objetos tienen atributos y métodos. Los atributos describen las características. Métodos describen las acciones que el objeto puede realizar. Los datos se pasan a través de objetos utilizando métodos. Los valores requeridos se envían a través de llamadas de método con parámetros. La implementación del método real está en la definición del método. Hay un enlace entre una llamada de método y definición de método. Se conoce como vinculación. Hay dos tipos de enlaces. Son de unión estática y unión dinámica. El diferencia clave entre la unión estática y la unión dinámica es que, En la unión estática, la unión se resuelve en el tiempo de compilación, mientras que la unión dinámica se resuelve en el tiempo de ejecución, que es el tiempo real de ejecución. Este artículo analiza la diferencia entre estos dos mecanismos de unión.

CONTENIDO

1. Descripción general y diferencia de claves
2. ¿Qué es la unión estática?
3. ¿Qué es la vinculación dinámica?
4. Similitudes entre la unión estática y la unión dinámica
5. Comparación lado a lado: unión estática frente a unión dinámica en forma tabular
6. Resumen

¿Qué es la unión estática??

La vinculación es el enlace entre una llamada de método y definiciones de método.

Figura 01: Unión estática y unión dinámica

Consulte el siguiente programa escrito en Java.

Clase pública A

Public void Method1 ()

Sistema.afuera.println ("método1");

Public void Method2 ()

Sistema.afuera.println ("método2");

public static void main (string [] args)

Un obj = nuevo a ();

obj.Método 1();

obj.método2 ();

Según el programa anterior, se crea un objeto de Tipo A. Luego se llaman a Method1 y Method2. Identificar qué método debe solicitar la ejecución se conoce como vinculante. Declaración obj.Method1 () llamará a Method1 () y OBJ.Method2 () llamará a Method2 (). Este enlace es vinculante.

En la unión estática, la unión se resuelve en el tiempo de compilación por el compilador. También se conoce como Fiesta temprana. La vinculación ocurre antes de que un programa realmente se ejecute. La unión estática se produce en la sobrecarga del método. Consulte el siguiente programa escrito en Java.

Cálculo público vacío

public void suma (int x, int y)

Sistema.afuera.println ("la suma es", x+y);

su suma pública nula (doble x, doble y)

Sistema.afuera.println ("la suma es", x+y);

public static void main (string [] args)

Cálculo cal = nuevo cálculo ();

California.suma (2,3);

California.suma (5.dieciséis.4);

Según el programa anterior, al pasar los dos enteros, se invocará el método con dos enteros. Al pasar dos valores dobles, se invocará el método correspondiente a dos valores dobles. Este proceso de unión ocurre en el momento de la compilación. El compilador sabe que debe llamar al método de suma con dos valores enteros para Cal.suma (2,3). Para Cal (5.1,6.4), llamará al método de suma con dos valores dobles. Toda la información requerida se conoce antes del tiempo de ejecución, por lo que aumenta la eficiencia del programa y la velocidad de ejecución.

¿Qué es la vinculación dinámica??

En la unión dinámica, el compilador no resuelve el enlace en el tiempo de compilación. La unión ocurre en tiempo de ejecución. También se conoce como Atención tardía. La unión dinámica ocurre en el método anular.  Consulte el programa escrito en Java.

Public Class Shape ()

public void draw ()

Sistema.afuera.println ("Dibujar forma");

public class Circle () extiende la forma

public void draw ()

Sistema.afuera.println ("dibujar círculo");

Public Class Triangle () extiende la forma

public void draw ()

Sistema.afuera.println ("dibujar triángulo");

Prueba de clase pública

public static void main (string [] args)

Forma s;

s = nueva forma ();

s.dibujar();

s = nuevo círculo ();

s.dibujar();

s = nuevo triángulo ();

s.dibujar();

Según el programa anterior, la forma de clase tiene un método sorteo (). Circle de clase y triángulo de clase extiende la clase de forma. El círculo de clase y el triángulo de clase pueden heredar los atributos y los métodos de forma de clase. Por lo tanto, la forma de clase es la clase súper o matriz. Circle de clase y triángulo de clase son sub clases o clases derivadas. Estas clases también tienen el método Draw () con sus propias implementaciones.  Por lo tanto, se anula el método sorteo () en la súper clase.

En el método principal, se invocan diferentes objetos. Hay una variable de referencia del tipo de forma, que es s. Luego, S invoca el método de acuerdo con la clase específica. En el momento de la compilación, el compilador solo referirá el método de súper clase de sorteo. Cuando comienza la ejecución real, conducirá a la ejecución de diferentes métodos de dibujo. Primero, S señalará el objeto de la forma de tipo. Por lo tanto, invocará el método de dibujo en la clase de forma. Entonces el S apuntará el objeto de tipo círculo, e invocará el método de dibujo de la clase círculo. Finalmente, S se referirá al objeto de tipo Triángulo, e invocará el método de dibujo en la clase Triangle. Aunque la variable de referencia es de forma de tipo, el enlace depende del tipo de objeto. Este concepto se conoce como vinculación dinámica. La información se proporciona en tiempo de ejecución, por lo que la velocidad de ejecución es más lenta en comparación con la unión estática.

¿Cuál es la similitud entre la unión estática y la unión dinámica??

  • Ambos están relacionados con un polimorfismo que permite que un objeto se comporte de múltiples maneras.

¿Cuál es la diferencia entre la unión estática y la unión dinámica??

Unión estática frente a unión dinámica

La unión estática es el tipo de enlace que recopila toda la información requerida para llamar a una función durante el tiempo de compilación. La unión dinámica es el tipo de enlace que recopila toda la información requerida para llamar a una función durante el tiempo de ejecución.
 Tiempo de encuadernación
La unión estática se produce en el momento de la compilación. La unión dinámica ocurre en el tiempo de ejecución.
Funcionalidad
La vinculación estática utiliza información de tipo para vincular. La vinculación dinámica usa objetos para resolver para unir.
 Objeto real
La unión estática no usa un objeto real para vincular. Enlace dinámico, use el objeto real para vincular.
Sinónimos
La unión estática también se conoce como unión temprana. La unión dinámica también se conoce como enlace tardío.
Ejecución
La velocidad de ejecución es rápida en la unión estática. La velocidad de ejecución es baja en unión dinámica.
Ejemplo
La unión estática se utiliza en la sobrecarga de métodos. La unión dinámica se utiliza en el método anular.

Resumen -estático Enlace vs vinculante dinámico 

Hay un enlace entre una llamada de método y definición de método. Se conoce como vinculación. Hay dos tipos de enlaces llamados unión estática y unión dinámica. La diferencia entre la unión estática y la unión dinámica es que en la unión estática, la unión se resuelve en el tiempo de compilación, mientras que la unión dinámica se resuelve en el tiempo de ejecución, que es el tiempo real de ejecución. Como la información requerida se proporciona antes del tiempo de ejecución, la unión estática es rápida en la ejecución en comparación con la unión dinámica.

Descargue el PDF de la unión estática frente a la vinculación dinámica

Puede descargar la versión PDF de este artículo y usarla para fines fuera de línea según la nota de cita. Descargue la versión PDF aquí: Diferencia entre vinculación estática y vinculación dinámica

Referencia:

1.Entrevista de Java 04 - Bintería estática frente a la vinculación dinámica, Tutoriales de Mahika, 27 de diciembre. 2017. Disponible aquí