Клас по програмиране. Видове класове в езиците за програмиране

Класът в програмирането е група от данни, полета и функции или методи. Всички те се наричат променливи, методи или функции. Програмата е изградена от набор от класове. Веднъж дефинирани и реализирани, елементите му могат да се декларират подобно на променливите на езика от примитивните типове "int", "double" и "String".

Кратка история на езика за програмиране

Кратка история на езика за програмиране

SIMULA е първият обектно-ориентиран език, който се използва за създаване на симулации. Алън Кей, тогава студент в Университета на Юта, харесва езика, защото той може да се използва за персонален компютър за реализиране на графично ориентирани приложения. Той предположи, че език като SIMULA би предоставил добър начин за създаване на програми за начинаещи, и сподели своето виждане с Xerox Parc. В началото на 70-те години на миналия век екип, ръководен от Алън Кей, създава първия персонален компютър, наречен Dynabook, с обектно-ориентирания език Smalltalk, който съществува и до днес, въпреки че не се използва широко в търговската мрежа.

Идея обектно-ориентирано програмиране (ООП) е разработен през 70-те години на миналия век, а в началото на 80-те години Бьорн Щрауструп го интегрира в езика C, който става известен като "C ++" - първият обектно-ориентиран език (OLO), който се използва широко в търговската мрежа.

В началото на 90-те години на миналия век група в Sun, ръководена от Джеймс Гослинг, разработва по-опростена версия на C++, наречена Java. който беше предназначен за език за приложения за видео по заявка. Този проект за програмиране на Java от нулата така и не беше реализиран. Групата е принудена да пренасочи вниманието си към развитието език за Интернет приложения. Той става все по-популярен с развитието на интернет, въпреки че проникването му на пазара е по-скоро скромно поради възприеманата му неефективност.

Обектно-ориентирано моделиране

Класовете и обектите са два от малкото основни градивни елементи на ООП. Те се използват за моделиране на поведението и капсулиране на. В реалния свят можете да намерите много отделни обекти от един и същи тип. Например, има хиляди велосипеди от една и съща марка и модел. Всеки от тях е съставен от един и същи комплект и следователно съдържа еднакви компоненти. На езика на ОО това означава, че велосипедът е екземпляр от класа обекти, познат като Bicycles. Просто е. Класът в езиците за програмиране е план за създаване на конкретни обекти. Например, велосипедът е едно възможно изпълнение.

Обектно-ориентирано моделиране

Може би ще забележите, че класът Bicycle не съдържа никакви "основен" метод. Тъй като тя не представлява цялостно заявление, а само контур за велосипед. Отговорността за създаването и използването на нови обекти на велосипеди принадлежи на друг клас в програмирането. А Bicycle Demo е този, който създава два отделни обекта Bicycle и извиква техните методи.

Bicycle извиква методи

Резултатът от този тест показва крайната скорост и предавка на двата велосипеда.

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

Променливата е име със стойност, която може да се променя в хода на програмата. Според съдържащата се в тях информация те се разделят на 2 или повече вида в зависимост от използвания език. Като цяло има 2 вида класификации:

  1. Променливи от примитивни типове. Те се определят от една стойност - цяло число, число с плаваща запетая, символ или логически знак.
  2. Референтните променливи са имена на по-сложна информация: масиви или обекти от определен клас.

Ключовият момент на ООП е да се предотврати получаването на невярна информация, тъй като променливите не са инициализирани правилно. За да дефинирате обектите правилно, трябва да използвате метода конструктор, който се задейства автоматично при всяко създаване на обект. Тяхната основна задача е да резервират памет, да извършват инициализация на променливите на членовете на класа при програмиране. Те нямат връщаща стойност "void" и името им е същото като името на общата група. Неговият подразбиращ се аргумент е обектът, който се създава.

Класове и обекти в Python

Python принадлежи към OO езици за програмиране, по този начин се различава от процедурно-ориентираната, при която фокусът е върху функциите, и е обектно-ориентирана. Обектът е набор от данни и функции, които действат върху тях. Класът е проект за обект. Мислете за класа като за скица на къща. Той съдържа всички детайли на подове, врати, прозорци и други конструкции. Въз основа на тези описания той изгражда къща, която е обект.

Класове и обекти в Python

Обектът е просто набор от данни и методи (функции), които действат върху тези данни. Класът е проектът на обекта. Можете да си представите класа като скица (прототип) на къща. Съдържа всички детайли за подове, врати, прозорци и други структури. Въз основа на тези описания постройте къща, която е обект.

Тъй като от описанието могат да се направят много къщи, е възможно да се създадат много обекти от една група. Това се нарича също инстанция. Какво имаме в крайна сметка? Процесът демонстрира концепцията за инстанция на класа и нейното създаване. Точно както дефинициите на функции започват с ключовата дума "def", Python дефинира група с "class". Първият ред се нарича "docstring" и съдържа кратко описание на класа.

Класът създава нов локален Пространство от имена, където са дефинирани всички негови атрибути, като те могат да бъдат данни или функции. Има и специални, които започват с двойно подчертаване (__). Например, "__doc__" дава символния низ на този клас в програмирането.

След като бъде дефиниран, се създава нов обект със същото име. Той ви позволява да получавате достъп до различни атрибути и да създавате нови обекти от този клас.

Нови обекти от този клас

Ключова дума "клас"

Python е отличен език, който поддържа ООП, той се използва за създаване на клас. Той предлага няколко предимства пред други езици като Java, C++ или R. Това е динамичен език с типове данни от високо ниво, така че разработката е много по-бърза, отколкото при Java или C ++. Програмистът не трябва да декларира типове променливи и аргументи. Това също така улеснява разбирането и изучаването на Python от начинаещите, тъй като кодът му е по-четим и интуитивен.

За да дефинирате клас в Python, можете да използвате ключовата дума "class", последвана от име и двоеточие. Вътрешността на метода "__init__" трябва да бъде дефинирана с "def". Това е инициализатор, който може да се използва за създаване на обекти по-късно и трябва да присъства винаги. Той е подобен на конструктора на Java.

Изисква се един-единствен аргумент "self", който се отнася до самия обект. Вътре в метода се използва ключовата дума "pass" и се прилага правилно отстъпление. "Self" в Python е еквивалентно на "this" в C++ или на класове в Java. В този случай има празно поле "Dog", но все още няма обект. Класът има точни спецификации, като план или модел. Те сключват договор за класа.

Преглед на разбивката

Урокът може да бъде разделен на две части:

  1. Заглавието на класа, което се състои от ключовата дума "клас" и името, което му е присвоено. Имената в езиците за програмиране са известни и като идентификатори.
  2. Корпус, който се състои от двойка отварящи се/затварящи се вълнообразни скоби с елементи между тях.

Ето един шаблон за изходния код на клас:

клас

{

...

}

Когато даден клас е записан, той се заменя с името. Тялото се състои от един или от няколко елемента, низът означава произволен брой предходни части. По-специално, ключовата дума "клас" трябва да започва с първата колона на реда, последвана от останалата информация за заглавието - идентификатор в най-простия случай.

Отворените скоби ограничават заглавието и започват тялото на класа. Някои програмисти предпочитат да го поставят в края на реда, но повечето го поставят на отделен ред. Къдравата скоба ограничава тялото на класа. Обичайната практика е да се поставя затваряща скоба в колона отделно.

Колекция от елементи

Съдържанието на тялото на класа се състои от набор от елементи. Членове от променливи, наречени полета, и частите, които тя прави, обозначени с методи, известни също като процедури.

Съдържанието на тялото трябва да бъде отстъпено с поне две колони. Много програмисти ги правят по четири колони, за да улеснят четенето на изходния код. Числото няма значение, но трябва да съответства на избраната сума.

Има още едно правило, което трябва да се спазва: идентификаторите на класовете трябва да започват с главна буква, както и всяка нова дума в тях.

Класовете се състоят от елементи. Членовете са или полета, или методи. Всеки софтуер трябва да има специален метод, наречен "main"; ако изходният код се слее, се получава шаблон за минимално приложение.

Това е фактическият стандарт, при който имената започват с главна буква, както и допълнителните думи в него. Например: myClass се вписва, но myClass и myclass не се вписват. Идентификаторът на класа трябва да бъде и името на файла, в който сте поставили изходния код. Необходимо е да имате разширение ".java".

Ключови думи

Ключовите думи за класове в Java са запазени думи, като основните градивни елементи на езика. Не може да се използва за имена на създадени обекти. Като идентификатори на класове, полета и методи. Компилаторът разпознава тези думи и ги третира като специални.

Ключови думи

Когато се стартира Java приложение, командата "java" се използва за стартиране на JVM и за задаване на файла с класове, който да се изпълни. Процесът започва със специален метод, който потребителят дефинира като "главен" метод на приложението. Тази конвенция е традиция на програмирането в Java, наследена от " C ".

Изходният код на "main" () винаги изглежда по следния начин

public static void main (String[ ] identifier)

{

...

}

Ключовете "public" и "static" като специални модификатори за намиране на "main" са намерени и са достъпни. Идентификаторът е всичко друго, но до голяма степен стандартът използва името "arg", което е съкращение на аргументи.

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

"Клас" може да се разбира като прототип, който дефинира променливи и методи, общи за определен тип инстанция, дефинира всичко, което характеризира и може да създаде една или повече инстанции. Той задава общи за инстанциите променливи и методи от този тип създадени от класа, но тогава всеки от тях ще има свои собствени стойности: модел, цвят и рецепта.

В Java първо създавате клас, преди да можете да създавате негови екземпляри. Обектът става инстанция на класа. Той съдържа атрибути и методи, като при създаването му трябва да посочите типовете, методите, функциите и името на атрибута, както и типа данни, имената и другите параметри, които те използват.

Основната структура изглежда по следния начин.

Основна структура на класовете в Java

JavaScript е създаден с името на класа "MyClass", който има общо три атрибута, всички от които са частни: "String", "int" и "float".

Пределна променлива

Класовете за съхранение на C се използват за описание на функции на променливи. Те включват главно обхват, видимост и време на живот, които помагат да се проследи съществуването на дадена променлива по време на изпълнение.

Езикът C използва 4 класа за съхранение. А именно:

  1. Auto - задава се по подразбиране за всички променливи, декларирани във функция или блок на клас в C. Поради това ключовата дума "auto" рядко се използва при писане на програми на C. Достъпът до външните променливи е възможен само в блока/функцията, в която са декларирани, а не извън нея, което определя техния обхват. Разбира се, те могат да бъдат вложени в родителския блок/функция, в който е декларирана автоматичната променлива. Достъпът до тях обаче може да бъде осъществен и извън техния обхват, като се посочи много точно място в паметта, където те се.
  2. Външни, когато променливата е дефинирана на друго място, а не там, където се използва. Обикновено в един блок се задава стойност, която може да бъде презаписана в друг блок. Така че "extern" не е нищо повече от глобална променлива, инициализирана с валидна стойност, когато е декларирана за използване другаде.
  3. Static, използва се за деклариране на статични променливи, които често се използват при писане на класове в C. Склонни са да запазят стойността си дори след като са излезли от обхвата. Така можем да кажем, че те се инициализират само веднъж и съществуват до прекратяването на програмата; за тях не се заделя нова памет, тъй като не се декларират отново, а обхватът им зависи от функцията, за която са дефинирани. Достъп до глобални статични променливи може да се осъществи от всяко място в програмата. Компилаторът им задава стойност по подразбиране 0.
  4. Register, декларира променливи, които имат същата функционалност като автоматичните променливи. Единствената разлика е, че компилаторът се опитва да ги съхрани в микропроцесора, ако достъпът до тях е свободен. Така използването е много по-бързо, отколкото в паметта по време на изпълнение. Ако няма свободен регистър, те се съхраняват само в паметта. Обикновено няколкото променливи, които трябва да се достъпват много често в програмата, се декларират с ключовата дума "register", което подобрява времето за изпълнение на програмата.

Синтаксис: storage class var_data_type variable_name.

Синтаксис: клас за съхранение

Тайните на програмирането

Следващите насоки не са изчерпателни и имат за цел да ви насочат към правилното използване на шаблоните за проектиране на обектно-ориентирано програмиране:

  1. Избягване на многообхватни класове в Python.
  2. Прилагане на смислени имена.
  3. Когато разработва клас или преработва съществуващ код, разработчикът трябва списък на всички задачи и измисляне на име.
  4. Когато се прилага ООП, е много по-лесно да се измислят значими имена, тъй като самият шаблон за проектиране често определя вида отговорност.
  5. Името на класа трябва да започва с главна буква. Ако името е сложна дума или няколко думи, първата буква на всяка дума трябва да е главна. Пример: клас Study, клас StudyTonight и т.н.
  6. Класовете съдържат членове за данни и функции на членовете. Достъпът до тези елементи и променливи зависи от спецификаторите.
  7. Понятието за членове на класа. Какво означава това?? Класът в C ++ е подобен на структурите в C. Единствената разлика е, че по подразбиране се използва частен контрол на достъпа, а структурата е публична.
  8. Всички функции на OOPS се въртят около класовете в езика C - наследяване, капсулиране, абстракция и др.
  9. Обектите съдържат отделни копия на данните на членовете.
  10. Можете да създадете толкова обекти, колкото ви е необходимо.

Обектът има индивидуални променливи. Те се инициализират чрез специални функции на класа, наречени конструктори. А когато обектът излезе от обхвата, се извиква друга специална функция, наречена Destructor, за да се освободи паметта, резервирана от обекта. C+ не разполага с автоматично събиране на боклука като JAVA, това прави Destructor.

Всеки обект има различни променливи

Статията е написана на разбираем език за класовете в програмирането. Надявам се, че сте разбрали материала. Познаването на правилата на обектно-ориентираните езици е от съществено значение за разработването на успешно приложение. Добрата архитектура означава спестени средства за обучение, поддръжка, тестване, поправки, разширяване и мащабиране на изходния код. Изисква повече време и грижи при първоначалното разработване, но бързо възвръща инвестицията с голям интерес. Неизбежно дори и по-добре проектираните архитектури се нуждаят от времеви корекции и префактуриране.

Статии по темата