Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 19118|Ответ: 2

[Источник] Краткое изложение порядка выполнения статических, нестатических и конструктивных методов в классе

[Скопировать ссылку]
Опубликовано 06.04.2017 15:12:32 | | | |
1 /*

2 * Несколько принципов

3 * 1. Статические переменные

4 * 1. Статические переменные — это переменные класса, и все объекты используют одинаковое пространство памяти

5 * 2. Объявление и определение статических переменных выполняется только один раз при первой загрузке класса

6 * 3. При первой загрузке класса сначала присваивать начальные значения всем статическим переменным члена в соответствии с типом, а затем придать правильные значения тем, что имеют rvalues

7 * 2. Статический начальный блок

8 * 1. Статические инициализационные блоки выполняются только один раз при первой загрузке класса

9          * ······ Несколько статических переменных и быстрый порядок появления ссылок выполняются последовательно······

10 * 3. Динамические переменные элементов

11 * 1. Определение динамических переменных выполняется перед конструктором каждый раз при создании объекта

12 * 4. Динамический инициализационный блок

13*1. Блок динамической инициализации выполняется перед конструктором каждый раз при создании объекта

14          * ······ Несколько динамических переменных членов и динамических инициализационных блоков выполняются в порядке их появления······

15 * Резюме: В общем, когда класс загружается впервые, он выполняется в следующем порядке, без наследования

16 * 1. Выполнить статическое определение переменной элемента и статический блок инициализации в порядке возникновения

17 * 2. Выполнить динамическое определение переменной элемента и динамический блок инициализации в порядке возникновения

18 * 3. Выполнить конструктора

19 * При повторном инстанциировании объекта можно выполнить только шаги 2 и 3

20          *  

21          * ············ Переменные элементов, определения и инициализационные блоки выполняются перед конструктором·········

22 * 5. Когда речь идёт о наследовании, оно осуществляется в следующем порядке

23 * 1. Выполнить определение статической переменной элемента и статический блок инициализации родительского класса, а также выполнить определение статической переменной элемента и статический блок инициализации подкласса

24 * 2. Выполнить нестатическое определение переменной элемента и динамическую инициализацию родительского класса, а также выполнить метод построения родительского класса

25 * 3. Выполнить определение нестатических переменных элементов подклассов, динамически инициализировать блоки и выполнить метод построения подклассов

26 * Также: если метод, используемый в методе построения родительского класса, был переписан подклассом, то метод переписки подкласса используется при вызове конструктора родительского класса при построении объекта подкласса





Предыдущий:.ctor и .cctor для .net
Следующий:Политика генерации первичных ключей NHIBERNATE
 Хозяин| Опубликовано 06.04.2017 15:17:20 |


При первой загрузке класса сначала присваивайте начальные значения всем статическим переменным членов в зависимости от типа, а затем выполняйте несколько статических переменных последовательно для прикреплённого правильного значения с правильными значениями
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com