Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 19118|Resposta: 2

[Fonte] Resumo da ordem de execução de métodos estáticos, não estáticos e construtivos em uma classe

[Copiar link]
Publicado em 06/04/2017 15:12:32 | | | |
1 /*

2 * Vários princípios

3 * 1. Variáveis estáticas dos membros

4 * 1. Variáveis estáticas de membro são variáveis de classe, e todos os objetos compartilham o mesmo espaço de memória

5 * 2. A declaração e definição das variáveis membros estáticas é executada apenas uma vez, quando a classe é carregada pela primeira vez

6 * 3. Ao carregar uma classe pela primeira vez, primeiro atribua valores iniciais a todas as variáveis estáticas de acordo com o tipo, e então anexe valores à direita àqueles com valores r

7 * 2. Bloco inicial estático

8 * 1. Blocos de inicialização estática são executados apenas uma vez, quando a classe é carregada pela primeira vez

9          * ······ Múltiplas variáveis estáticas e a ordem rápida de ocorrência de referência de iniciação estática são executadas sequencialmente······

10 * 3. Variáveis dinâmicas dos membros

11 * 1. A definição de variáveis dinâmicas de membro é executada antes do construtor a cada vez que um objeto é instanciado

12 * 4. Bloco de inicialização dinâmica

13*1. O bloco de inicialização dinâmica é executado antes do construtor toda vez que um objeto é instanciado

14          * ······ Múltiplas variáveis dinâmicas de membros e blocos de inicialização dinâmica são executados na ordem em que aparecem······

15 * Resumo: Em geral, quando uma classe é carregada pela primeira vez, ela é executada na seguinte ordem, sem envolvimento de herança

16 * 1. Executar definição estática de variável membro e bloco de inicialização estática na ordem de ocorrência

17 * 2. Executar definição dinâmica de variável membro e bloco de inicialização dinâmica na ordem de ocorrência

18 * 3. Executar o construtor

19 * Ao instanciar um objeto novamente, apenas os passos 2 e 3 podem ser executados

20          *  

21          * ············ Variáveis membro, definições e blocos de inicialização são executados antes do construtor·········

22 * 5. Quando houver herança envolvida, ela deve ser realizada na seguinte ordem

23 * 1. Execute a definição estática da variável membro e o bloco de inicialização estática da classe pai, e execute a definição da variável estática membro e o bloco de inicialização estática da subclasse

24 * 2. Execute o bloco de definição de variável membro não estática e inicialização dinâmica da classe pai, e execute o método de construção da classe pai

25 * 3. Executar a definição de variáveis membros não estáticas de subclasses e inicializar dinamicamente blocos, e executar o método de construção de subclasses

26 * Além disso: Se o método usado no método de construção da classe pai foi reescrito pela subclasse, então o método de reescrita da subclasse é usado ao chamar o construtor da classe pai ao construir o objeto subclasse





Anterior:.ctor e .cctor do .NET
Próximo:Política de geração de chaves primárias nativas Nhibernate
 Senhorio| Publicado em 06/04/2017 15:17:20 |


Ao carregar uma classe pela primeira vez, primeiro atribua valores iniciais a todas as variáveis estáticas de membro de acordo com o tipo, e então execute múltiplas variáveis estáticas de membro em sequência para o valor direito anexado com valores certos
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com