Об'єкт першого класу (також англ. First-class citizen, громадянин першого класу) — сутність, яка може бути побудована в рантаймі (під час виконання програми), передаватись як параметр, повертатись з підпрограми, або присвоюватись змінній. Цей термін був придуманий Крістофером Стречі в контексті «функції як громадяни першого сорту» в середині 1960-х років.

ВизначенняРедагувати

Об'єкти є об'єктами першого класу коли:

  • можуть бути збережені в змінних і структурах даних
  • можуть бути передані як параметр у підпрограму
  • можуть бути повернуті в результаті роботи підпрограми
  • можуть бути побудовані під час виконання
  • мають внутрішню ідентичність (незалежно від імені)

ПрикладиРедагувати

Слово об'єкт вживається тут не в сенсі ООП. Так наприклад скалярні об'єкти такі як цілі та числа з плаваючою крапкою майже в усіх мовах є об'єктами першого класу.

В С та С++ функція не є об'єктом першого класу, тому що не може бути створена під час виконання програми.

Об'єкти другого та третього класуРедагувати

Рафаель Фінкель пропонує визначення об'єктів другого та третього класу. Але його визначення об'єкту першого класу суперечить визначенням інших авторів: він не вимагає можливості створення під час виконання програми

Дія Перший Другий Третій
Передати значення як параметр Так Так Ні
Повернути значення з процедури Так Ні Ні
Присвоїти значення змінній Так Ні Ні

ПосиланняРедагувати