Закрепление материала: Объекты и ссылки

Модуль "Объекты и ссылки" • урок 6 из 7 • ~5 минут

Суть урока. В первом модуле мы заложили фундамент для изучения структур данных. Мы разобрали разницу между статическими и динамическими объектами, поняли суть ссылочного типа, изучили три важнейших уровня абстракции при проектировании любой структуры и познакомились с абстрактными типами данных.
Итоги модуля: статические объекты в стеке и динамические в куче, указатель с адресом и объект с данными, три уровня описания структуры данных
Три опоры модуля: память, указатели, уровни описания

Краткое резюме модуля

За прошедшие уроки мы разобрали базовые механизмы работы с данными в памяти:

Ключевые идеи

Коротко: главное

  • Статические объекты живут в стеке, их размер и время жизни фиксированы.
  • Динамические объекты живут в куче, их размер может определяться в рантайме, а программист сам управляет их памятью.
  • Ссылочный тип (указатель) хранит физический адрес объекта, а не сами данные.
  • Проектирование структур делится на функциональный (математическая спецификация), логический (средства языка) и физический (размещение в памяти) уровни.
  • АТД определяется операциями; благодаря инкапсуляции реализацию можно менять, не трогая использующие программы.

Проверьте себя

Вопрос 1

В чем заключается ключевое различие между статическими и динамическими объектами?

Вопрос 2

Какой тип данных не хранит непосредственно сами полезные данные (числа, строки), а хранит лишь координаты того места, где они лежат?

Вопрос 3

На каком уровне описания структуры данных мы решаем, будут ли элементы лежать в памяти единым сплошным блоком, или же мы используем цепное размещение с помощью ссылок?

Вопрос 4

Что определяет абстрактный тип данных (АТД) с точки зрения использующей программы?

Как вам урок? Спасибо за отзыв!