Как най-достъпно в програмирането можеш да обясниш понятието клас

Докато преподавах курсове в Geekbrains, често попадах на групи, където всичко трябваше да бъде обяснено от напълно нулево ниво. Тези. не само успях да го обясня по най-достъпния начин, но и съм го правил много пъти. Ето моята методическа рецепта:

Когато става въпрос за класове, слушателите вече имат солидно разбиране за променливи и прости типове данни и поне масиви. Тези. до този момент всички вече разбират, че програмата може да работи с числа, низове и т.н., както и как го прави.

За да се доближим до концепцията заклас, е необходимо да представим на публиката проблем: как една програма може да работи с по-сложниобекти? Например артефакти на игралното поле, играчи, хора и т.н.

  • Първо, необходимо е конкретновъплъщение на някакъв обектда може да бъде поставено в променлива. Например, ако субектът е човек, тогава „Иванов“ и „Сидоров“ са въплъщенията на този субект и всеки трябва да може да „седи“ в своя собствена променлива.
  • Но тъй като, второ, обектът се описва не от една стойност, а от цял ​​набор от тях, тогава тази една променлива трябва да съдържа цяла структура, в която всеки атрибут може да бъде достъпен отделно.
  • Трето, необходимо е да се накара аудиторията да разграничи, че простите типове са пасивни (над тях се извършват действия: събиране, умножение, избор на подниз и т.н.), а изпълненията на споменатите по-горе обекти са активни (те ходят, скачат, сблъскват се с други обекти от същия или друг вид. Действията върху тях не могат да бъдат напълно систематизирани в синтаксиса на езика, така че е достатъчно просто да можете да опишете всеки такъвдейности за тези субекти).

Всичко трябва да бъде илюстрирано с примери и процеси от външния свят, които ще отразим в алгоритъма на програмата. В зависимост от езика, който се изучава, това ще бъдат различни неща.

Освен това (отново в зависимост от езика за програмиране), трябва да покажете как обектът се превръща вклас, въплъщението на обекта векземпляр на класа(и в този момент ролята наконструктораще стане ясна, ако е подходяща за въпросния език), наборът от стойности, които описват обекта - всвойстваи какво може да прави (или може да бъде) този клас направено над този клас) - вметодина класа.