|
0 / 0 / 0
Регистрация: 25.07.2014
Сообщений: 32
|
||||||
О порядке создания объекта - разобрать логику работы кода14.08.2014, 02:37. Показов 2277. Ответов 7
Метки нет (Все метки)
Доброго всем времени, вот разбираюсь с порядками инициализации и создания объектов. Все вроде бы ясно-понятно, но не могу понять одного момента.
Есть код:
0
|
||||||
| 14.08.2014, 02:37 | |
|
Ответы с готовыми решениями:
7
Бинарный поиск через рекурсию: разобрать логику кода |
|
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,766
|
|
| 14.08.2014, 08:35 | |
|
Сначала создаётся объект (выделяется память), затем производится инициализация полей и только потом вызывается конструктор.
0
|
|
|
237 / 236 / 72
Регистрация: 02.07.2013
Сообщений: 881
|
|||
| 14.08.2014, 09:16 | |||
|
почему это не должно работать?
0
|
|||
|
0 / 0 / 0
Регистрация: 25.07.2014
Сообщений: 32
|
||||||
| 14.08.2014, 13:44 [ТС] | ||||||
|
Wado-Ru, меня это почему-то смущает) вроде как конструирование объекта ещё не завершено, а мы уже методы для него вызываем. Но, насколько я поняла, здесь главное что - что этот метод foo() может спокойно исполнятся и на данном этапе создания объекта, поскольку он не использует никакие части объекта, которые могли бы быть на данном этапе ещё не проинициализированны. а вот, например, такой случай:
Я правильно размышляю?
0
|
||||||
|
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,766
|
|
| 14.08.2014, 14:00 | |
|
Работать будет. Выведет "Child foo() 0". Вот если бы вместо "x" был указатель на объект и вызывался бы какой-нибудь его метод, то случилось бы исключение NullPointerException.
0
|
|
|
0 / 0 / 0
Регистрация: 25.07.2014
Сообщений: 32
|
|
| 14.08.2014, 18:25 [ТС] | |
|
kotelok, ага, спасибо) уже разобралась. точнее дочитала до того момента, где сказано, что "при создании нового объекта первым делом выделяется память под него и вся она заполняется двоичными нулями". получается именно с примитивами все будет работать, но не так как предполагается, а со ссылочными типами- фиг.
п.с. сорри, что я ваш же ответ вам пересказала. мне так проще размышляется-запоминается
0
|
|
|
238 / 238 / 113
Регистрация: 03.09.2011
Сообщений: 558
|
|
| 14.08.2014, 22:56 | |
|
както у вас все сложно...
Default Values It's not always necessary to assign a value when a field is declared. Fields that are declared but not initialized will be set to a reasonable default by the compiler. Generally speaking, this default will be zero or null, depending on the data type. Relying on such default values, however, is generally considered bad programming style. The following chart summarizes the default values for the above data types.Data Type Default Value (for fields) byte 0 short 0 int 0 long 0L float 0.0f double 0.0d char '\u0000' String (or any object) null boolean false Local variables are slightly different; the compiler never assigns a default value to an uninitialized local variable. If you cannot initialize your local variable where it is declared, make sure to assign it a value before you attempt to use it. Accessing an uninitialized local variable will result in a compile-time error.
0
|
|
|
237 / 236 / 72
Регистрация: 02.07.2013
Сообщений: 881
|
|
| 15.08.2014, 11:36 | |
|
вопрос был вообще-то не о том, что поля в налы и нули инициализируются, а переменные нет. А о том, в каком порядке происходит инициализация и вызов конструктора.
0
|
|
| 15.08.2014, 11:36 | |
|
Помогаю со студенческими работами здесь
8
Объясните, пожалуйста, логику работы кода
Метод Симпсона: разобрать логику программы Разобрать логику. Основной код уже есть Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|