Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 19118|Respuesta: 2

[Fuente] Resumen del orden de ejecución de métodos estáticos, no estáticos y constructivos en una clase

[Copiar enlace]
Publicado en 6/4/2017 15:12:32 | | | |
1 /*

2 * Varios principios

3 * 1. Variables miembros estáticas

4 * 1. Las variables miembros estáticas son variables de clase, y todos los objetos comparten el mismo espacio de memoria

5 * 2. La declaración y definición de variables estáticas de los miembros se ejecuta solo una vez cuando la clase se carga por primera vez

6 * 3. Al cargar una clase por primera vez, primero asigna valores iniciales a todas las variables miembros estáticas según el tipo, y luego asocia valores derechos a aquellas con valores r

7 * 2. Bloque inicial estático

8 * 1. Los bloques de inicialización estática solo se ejecutan una vez cuando la clase se carga por primera vez

9          * ······ Se ejecutan secuencialmente múltiples variables estáticas de miembros y el orden de ocurrencia rápida de referencia de inicio estático······

10 * 3. Variables dinámicas del miembro

11 * 1. La definición de variables miembros dinámicas se ejecuta antes que el constructor cada vez que se instancia un objeto

12 * 4. Bloque de inicialización dinámica

13*1. El bloque de inicialización dinámica se ejecuta antes que el constructor cada vez que se instancia un objeto

14          * ······ Múltiples variables de miembros dinámicos y bloques de inicialización dinámica se ejecutan en el orden en que aparecen······

15 * Resumen: En general, cuando una clase se carga por primera vez, se ejecuta en el siguiente orden, sin que se implique herencia

16 * 1. Ejecutar la definición estática de variables de miembro y el bloque de inicialización estática en orden de ocurrencia

17 * 2. Ejecutar la definición dinámica de variables miembros y el bloque de inicialización dinámica en el orden de ocurrencia

18 * 3. Ejecutar el constructor

19 * Al instanciar un objeto de nuevo, solo se pueden ejecutar los pasos 2 y 3

20          *  

21          * ············ Las variables miembros, definiciones y bloques de inicialización se ejecutan antes que el constructor·········

22 * 5. Cuando se trate de herencia, se llevará a cabo en el siguiente orden

23 * 1. Ejecutar la definición estática de variables miembro y el bloque de inicialización estática de la clase madre, y ejecutar la definición estática de variable miembro y el bloque de inicialización estática de la subclase

24 * 2. Ejecutar el bloque de definición de variable miembro no estática e inicialización dinámica de la clase madre, y ejecutar el método de construcción de clase padre

25 * 3. Ejecutar la definición de variables miembros no estáticas de subclases e inicializar dinámicamente los bloques, y ejecutar el método de construcción de subclases

26 * Además: Si el método usado en el método de construcción de clase padre ha sido reescrito por la subclase, entonces se utiliza el método de reescritura de subclase al llamar al constructor de clase padre al construir el objeto subclase





Anterior:.ctor y .cctor de .net
Próximo:Política de generación primaria nativa de claves nhibernate
 Propietario| Publicado en 6/4/2017 15:17:20 |


Al cargar una clase por primera vez, primero asigna valores iniciales a todas las variables de miembro estáticas según el tipo, y luego ejecuta varias variables de miembro estático en secuencia para el valor derecho adjunto con valores de la derecha
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com