Клас у програмуванні. Види класів у мовах програмування

Клас у програмуванні. Види класів у мовах програмування

Клас у програмуванні - це угруповання даних, полів і функцій або методів. Всі вони називаються змінними, методами або функціями-членами. Програма побудована з набору класів. Як тільки він визначений і реалізований, можна оголосити його елементи аналогічно мовним змінним з примітивних типів "int", "double" і "String".

Коротка історія мови програмування

SIMCEбув першою об 'єктною мовою, вона використовувалася для створення симуляцій. Алану Кею, який у той час навчався в університеті штату Юта, сподобався язик тим, що в перспективі його можна було застосувати для персонального комп 'ютера з метою реалізації графічно-орієнтованих додатків. Він припустив, що така мова, як SIMCE, надасть новачкам хороший спосіб для створення програм, і поділився своїм баченням з Xerox Parc. На початку 1970-х років команда, очолювана Аланом Кейєм, створила перший ПК під назвою Dynabook з об 'єктно-орієнтованою мовою Smalltalk, який існує і донині, хоча в комерційних цілях не особливо широко використовується.


Ідея об 'єктно-орієнтованого програмування (ОВП) отримала розвиток в 1970-х, а на початку 1980-х Бьорн Страуструп інтегрував його в мову Сі, який став називатися "" C++ "" - перша об' єктно-орієнтована мова (ООЯ), що широко використовується в комерційних цілях.

На початку 1990-х років група в Sun під керівництвом Джеймса Гослінга розробила більш просту версію C++ під назвою Java. Яка мала стати мовою для додатків відео за запитом. Цей проект Java програмування з нуля так і не був реалізований. Група змушена була переорієнтувати свою увагу на розробку мови для інтернет-додатків. Він став набувати все більш широку популярність у міру того, як розвивався інтернет, хоча його проникнення на ринок було досить стриманим через уявну неефективність.

Об 'єктно-орієнтоване моделювання

Класи та об 'єкти є двома з небагатьох ключових будівельних блоків ОВП. Вони використовуються для моделювання поведінки та інкапсуляції. У реальному світі можна знайти безліч окремих однотипних об 'єктів. Наприклад, існують тисячі велосипедів однієї і тієї ж марки і моделі. Кожен був побудований з одного набору і, отже, містить рівні компоненти. В ГО термінах, це означає, що велосипед є екземпляром з класу об 'єктів, відомих, як велосипеди. Все просто. Клас у мовах програмування - це план, створення конкретних об 'єктів. Наприклад, Bicycle є однією з можливих реалізацій.

Можна помітити, що Bicycle клас не містить "main" "метод. Через те що він не представляє повний додаток, а тільки план для велосипедів. Відповідальність за створення та використання нових Bicycle об 'єктів належить іншому класу в програмуванні. А Bicycle Demo - той, який створює два окремих Bicycle об 'єкти і викликає їх методи.

Вихідні дані цього тесту виводять кінцеву швидкість і передачу для двох велосипедів.

Основні терміни

Змінна - це назва зі значенням, яке може змінюватися в усій програмі. Відповідно до інформації, що міститься, вони класифікуються на 2 і більше типів, залежно від мови, що використовується. У загальному випадку існує 2 типи класифікацій:


  1. Змінні примітивних типів. Вони визначаються одним значенням - цілим, з плаваючою комою, символом або логічним знаком.
  2. Змінні-посилання - це імена більш складної інформації: масиви або об 'єкти певного класу.

Ключовим моментом ОВП є запобігання неправильній інформації, оскільки змінні не були правильно ініціалізовані. Для правильного визначення об 'єктів необхідно використовувати конструктор - методів, що спрацьовує автоматично кожного разу, коли створюється об' єкт. Основна місія їх - зарезервувати пам 'ять, виконати ініціалізацію змінних членів класу в програмуванні. Вони не мають поверненого значення "void", і їх ім 'я збігається з назвою загальної групи. Його неявний аргумент - це об 'єкт, який створюється.

Класи і об 'єкти в Python

Python належить до ГО мов програмування, тим самим відрізняючись від процедурно-орієнтованого, де основний упор робиться на функції, він базується на об 'єктах. Об 'єкт - набір даних і функцій, які впливають на них. Клас - це план для об 'єкта. Можна думати про клас, як про ескізу (прототип) вдома. Він містить всі деталі про підлоги, двері, вікна та інші конструкції. На підставі цих описів будують будинок, який є об 'єктом.

Об 'єкт - це просто набір даних і методів (функцій), які впливають на ці них. Клас - це план для об 'єкта. Можна думати про клас, як про ескізу (прототип) вдома. Він містить всі деталі про підлоги, двері, вікна та інші конструкції. На підставі цих описів будують будинок, який є об 'єктом.

Оскільки з опису можна зробити багато будинків, є можливість створити багато об 'єктів з однієї групи. Вона також називається екземпляром. Що ми маємо в підсумку? Що процес демонструє поняття екземпляра класу і його створення. Подібно до того, як визначення функцій починаються з ключового слова "def", в Python визначають групу за допомогою "class". Перший рядок називається "docstring" і має короткий опис класу.

Клас створює новий локальний простір імен, в якому визначені всі його атрибути, вони можуть бути даними або функціями. У ньому також є спеціальні, що починаються з подвійного підкреслення (__). Наприклад, "__doc__" дає рядок документа цього класу в програмуванні.

Як тільки його визначають, створюється новий об 'єкт з тією ж назвою. Він дозволяє отримувати доступ до різних атрибутів, а також створювати нові об 'єкти цього класу.

Ключове слово "class"

Python - відмінна мова, яку підтримує ОВП, її застосовують для встановлення класу. Він пропонує ряд переваг порівняно з іншими мовами Java, C++ або R. Це динамічна мова з високорівневими типами даних, тому розробка відбувається набагато швидше, ніж при Java або C++. Програмісту не потрібно оголошувати типи змінних і аргументів. Це також полегшує розуміння і вивчення Python для початківців, його код більш читабельний і інтуїтивно зрозумілий.


Щоб визначити клас у Python, можна застосувати ключове слово "class", за яким слідує ім 'я та двокрапка. Всередині його "__init__" метод повинен бути визначений з "def". Це ініціалізатор, який пізніше можна застосувати для створення об 'єктів, він повинен бути присутнім завжди. Це схоже на конструктор Java.

Потрібен один аргумент self, який стосується самого об 'єкта. Всередині методу використовується ключове слово "pass", і застосовують правильний ^. "Self" в Python еквівалентно "this" в C++ або класів в Java. У цьому випадку є переважно порожній "Dog", але ще немає об 'єкта. Клас має точні специфікації, як план або шаблон. Вони встановлюють контракт класу.

Розбивка перегляду

Клас можна розбити на дві частини:

  1. Заголовок класу, який складається з ключового слова "" class "" і імені, яке йому присвоюється. Імена в мовах програмування також відомі як ідентифікатори.
  2. Тіло, яке складається з пари тих, хто відкриває/закриває хвилястих дужок з елементами між ними.

Ось шаблон для вихідного коду класу:

class


{

...

}

Коли пишеться клас, його замінюють іменем. Тіло складається з одного або декількох елементів, рядок означає будь-яку кількість попередніх частин. Зокрема, ключове слово "" class "" має починатися з першого стовпчика рядка, за яким слідує інша частина інформації заголовка - ідентифікатор у найпростішому випадку.

Відкрита хвиляста дужка розмежовує заголовок і ініціює тіло класу. Деякі програмісти люблять розміщувати її наприкінці рядка, але більшості подобається - на окремій лінії. Хвиляста дужка обмежує тіло класу. Звичайна практика полягає в тому, щоб поміщати закриваючу дужку в стовпчику окремо.


Збірка елементів

Вміст тіла класу складається з збірки елементів. Члени зі змінних, званих полями, і частин, які він робить, позначаються методами також відомими, як процедури.

Вміст тіла повинен мати порожній, ніж два стовпчики. Багато програмістів роблять їх у чотири стовпчики за раз, щоб полегшити читання вихідного коду. Кількість не має значення, але має відповідати будь-якій вибраній сумі.

Є ще одне правило, яке потрібно виконувати: ідентифікатори класів повинні починатися з головної літери, також, як кожне нове слово в ньому.

Класи складаються з елементів. Члени - це або поля, або методи. Кожна ЗА зобов 'язана мати спеціальний метод з назвою "main", якщо об' єднати вихідний код, то вийде шаблон для мінімальної програми.

Це стандарт де-факто, де імена починаються з заголовної букви, так само як і додаткові слова в нім. наприклад: MyClass підходить, а myClass і Myclass - ні. Ідентифікатор класу також повинен бути назвою файлу, в який вводять вихідний код. Він зобов 'язаний мати розширення "" .java "".


Ключові слова

Ключові слова класів в Java - це слова, зарезервовані, як основні будівельні блоки мови. Не можна використовувати їх для імен створюваних об 'єктів. Таких як ідентифікатори класів, полів і методів. Компілятор розпізнає ці слова і розглядає їх, як особливі.

Коли виконується Java, застосовується команда "java", яка запускає JVM, і вказують файл класу для його виконання. Процес починається зі спеціального методу, який користувач визначає, як "основний" метод програми. Ця угода є традицією Java програмування з нуля, успадкованої від "" C "".

Вихідний код "main" () завжди виглядає приблизно так:

public static void main (String[ ] identifier)

{

...

}

Ключові "public" і "static", як спеціальні модифікатори, для знаходження "main" були знайдені і доступні. Ідентифікатор буває чим завгодно, але значною мірою - стандарт використовує ім 'я "арг", що є абревіатурою від аргументів.

Java конструктор класу

"Class" "можна розуміти як прототип, який регламентує змінні і методи, загальні для конкретного типу примірників, він визначає все, що характеризує і може створювати один або кілька примірників. Він встановлює змінні та методи, загальні для примірників цього типу створеного класом, але потім кожен матиме свої власні значення: шаблон, колір і рецепт.

У Java спочатку створюють клас, перш ніж ви можете створювати екземпляри. Об 'єкт стає екземпляром класу. Він містить атрибути та методи, створюючи типи, методи, функції та ім 'я атрибутів, а також тип даних, імена та інші параметри, які вони використовують.

Базова структура виглядає так.

Створено JavaScript з назвою класу "MyClass", який має загалом три атрибути, і всі вони є закритими: «String», «int» и «float».

Гранична змінна

Класи зберігання C використовуються для опису функцій змінної. Вони в основному включають в себе область дії, видимість і час життя, які допомагають відстежувати існування певної змінної під час виконання програми.

Мова C використовує 4 класи зберігання. А саме:

  1. Auto - встановлюється типово для всіх змінних, оголошених всередині функції або блоку класів у C. Отже, ключове слово "auto" рідко використовується при написанні програм мовою Сі. Доступ до автоматичних змінних можливий тільки всередині блоку/функції, в якій вони були оголошені, а не поза ними, що визначає їх область дії. Звичайно, до них можна отримати доступ у вкладені всередині батьківського блоку/функції, в яких була оголошена автоматична змінна. Тим не менш, до них можна отримати доступ і поза їх області дії, вказуючи на дуже точне місце в пам 'яті, де знаходяться.
  2. Зовнішній, коли змінна визначена в іншому місці, а не там, де використовується. Як правило, значення присвоюється в одному блоці, і це може бути перезаписано в іншому. Таким чином, "extern" - це не що інше, як глобальна змінна, ініціалізована з допустимим значенням, в якому вона оголошена для використання в іншому місці.
  3. Статичний, використовується для оголошення статичних змінних, які широко застосовуються при написанні класів у C. Вони мають властивість зберігати своє значення навіть після того, як виходять за межі області видимості. Таким чином, можна сказати, що вони ініціалізуються тільки один раз і існують до завершення програми, їм нова пам 'ять не виділяється, оскільки вони не оголошуються повторно, а область дії залежить від функції, для якої вони були визначені. Загальні статичні змінні можуть бути доступні в будь-якому місці програми. Типовим значенням є 0 компіляторів.
  4. Регістр, оголошує змінні, які мають ту ж функціональність, що і автоматичні. Єдина відмінність полягає в тому, що компілятор намагається зберегти їх в мікропроцесорі, якщо доступ вільний. Це робить набагато швидше, ніж у пам 'яті під час виконання програми. Якщо вільний регістр недоступний, вони зберігаються тільки в пам 'яті. Зазвичай деякі змінні, до яких у програмі потрібно звертатися дуже часто, оголошуються з ключовим словом "register", що покращує час виконання програми.

Синтаксис: клас зберігання var_data_type назва _ зміни.

Секрети програмування

Такі рекомендації не є вичерпними і призначені для правильного використання шаблонів проектування об 'єктно-орієнтованого програмування:

  1. Уникати всемогутніх класів у Python.
  2. Застосовувати значущі назви.
  3. Розробляючи клас або рефакторинг існуючого коду, розробник повинен скласти список всіх завдань, і придумати ім 'я.
  4. При застосуванні ОВП набагато простіше придумати значущі імена, оскільки сам шаблон проектування часто визначає тип відповідальності.
  5. Назва класу зобов 'язана починатися з головної літери. Якщо назва представляє складне слово або декілька слів, перша літера кожного слова повинна верхнього регістру. Приклад: class Study, class StudyTonight etc.
  6. Класи містять члени-дані та функції-члени. А доступ до цих елементів і змінної залежить від специфікаторів.
  7. Поняття членів класу. Що це означає? Клас у C++ подібний до структур C. Єдина відмінність полягає в тому, що він за замовчуванням використовує приватний контроль доступу, а структура - public.
  8. Всі функції OOPS, обертаються навколо класів в C - успадкування, інкапсуляція, абстракція та інші.
  9. Об 'єкти містять окремі копії даних-членів.
  10. Можна створити стільки об 'єктів, скільки потрібно.

Об 'єкт має індивідуальні змінні. Вони ініціалізуються з використанням спеціальних функцій класу, званих конструкторами. І кожен раз коли він виходить з області видимості, викликається інша спеціальна функція, звана Destructor, щоб звільнити пам 'ять, зарезервовану об' єктом. C++ не має автоматичного збирача сміття, як у JAVA, в ньому Destructor виконує це завдання.

У статті написано простою мовою про класи в програмуванні. Сподіваємося, матеріал був вам зрозумілий. Знання правил застосування об 'єктно-орієнтованих мов - основна умова розробки успішного додатку. Хороша архітектура означає гроші, зекономлені на навчанні, обслуговуванні, тестуванні, виправленні, розширенні та масштабуванні вихідного коду. Це вимагає більше часу і турботи про початкову розробку, але швидко повертає інвестиції з великими інтересами. Неминуче, що навіть краще спроектовані архітектури потребують тимчасового коригування та рефакторингу.