КомпютриПрограмиране

PLO - какво е това? Основните принципи на обектно-ориентираното програмиране

Защо обектно-ориентираното програмиране е за предпочитане в повечето проекти? PLO предлага ефективен начин да се справят с тяхната сложност. Вместо да разглеждаме една програма като последователност от изпълними инструкции, то тя представлява като група от обекти с определени свойства и да ги произвеждат с определени действия. Това води до по-ясни, по-надеждни и legkosoprovozhdaemyh приложения.

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

процедурни езици

C, Pascal, FORTRAN и други подобни езици са процесуални. Това означава, че всеки един от оператора казва на компютъра да направи нещо: за да получите данните, да добавите до номера, разделени в шест, резултатът показва. Приложение процесуално език е списък с инструкции. Ако той е малък, не се изисква друго организиращ принцип (често наричан като парадигма). Програмистът създава списък от инструкции, и компютъра ги изпълнява.

Разделение на функции

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

Приложението е разделена на функции, всяка от които има ясно дефинирана цел и интерфейс.

Идеята за разделяне на процедурите може да се разширява в по-голяма група от обект нарича модул, но принципът е аналогично: групиране на компоненти, които носят списъци на документ.

Разделение на функции и модули - един от крайъгълните камъни на структуриран програмиране, които в продължение на няколко десетилетия, докато ООП беше тя поставя парадигма.

структурирани програмни проблеми

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

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

Какви са причините за тези проблеми, свързани с процедурни езици? На първо място, функциите имат неограничен достъп до глобални данни. На второ място, несвързани процедури и лоши стойности симулират реалния свят.

Ако разгледаме тези въпроси в контекста на счетоводството инвентаризация софтуер, един от най-важните елементи на глобалната данни е набор от ИЕ. Различни функции могат да се отнасят до тях, за да въведете нова стойност, тя се показва, промени и така. Г.

неограничен достъп

Програмата писмено, например, в C, има два вида данни. Местна скрити в рамките на функцията и други процедури, не се използват.

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

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

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

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

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

Моделиране реалния свят

Вторият и по-важен проблем на процесуалния парадигма е, че местоположението си на конкретни данни и функции лошо симулира нещата в реалния свят. Тук имаме работа с обекти като хора или автомобили. Те са като няма данни или функцията. Комплекс от реалния свят обекти имат качества и поведение.

атрибути

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

поведение

Поведение - е, че в реалния свят предмети са произведени в отговор на някакво въздействие. Ако попитате шеф за увеличаване на заплатите, отговорът е "да" или "не". Ако натиснете върху спирачката, колата ще спре. И спиране на поведение изказване са примери. Поведение, подобна на процедурата: той се нарича, за да направи нещо, и той го прави. По този начин, данните и функциите сами по себе си не моделират реални обекти ефективно.

Решаването

Обектът в обектно-ориентиран е представен като съвкупност от данни и функции. Само на процедурите, които се наричат член-функции в C ++, позволяват да се получи стойността си. Те са скрити и защитени от промени. Значение и функции са капсулирани в една. Капсулирането и upryatyvanie - основни термини в описанието на обектно-ориентирани езици.

Ако искате да промените данните, той знае точно какви функции да си взаимодействат с тях. Никакви други процедури, които не могат да имат достъп до тях. Това улеснява писането, отстраняване на грешки, и поддържане на програмата.

Заявлението обикновено се състои от няколко обекта, които взаимодействат помежду си, което води до функциите на страните.

Днес ООП език най-широко използваната (обектно-ориентираното програмиране) - C ++ (плюс плюс). В Java липсват някои функции, като например насоки, образци и множествено наследяване, което го прави по-малко мощен и гъвкав, отколкото C ++. C # още не е достигнал популярността на C ++.

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

аналогия

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

Трябва да се помни, че ориентацията на обектите не се отнася до подробностите на работната програма. Повечето инструкции C ++ оператори съответства на процедурните езици като С, в действителност, функциите на страните в C ++ са много сходни функции в В. Само по-широкия контекст ще позволят да се установи дали инструкцията за процедурни и обектно-ориентирани.

Обектът в обектно-ориентиран: Определение

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

Какви неща са обекти в обектно-ориентиран? Ето някои типични категории.

Физическо обект в обектно-ориентиран - е:

  • модели транспорт поток;
  • електрически компоненти в програмите за схема за проектиране;
  • модел на икономиката на страната;
  • въздухоплавателни средства в системата за контрол на въздушното движение.

Елементи на околната среда компютъра на потребителя:

  • меню;
  • прозорци;
  • графики (линия, правоъгълник, кръг);
  • клавиатура, мишка, принтер, дискове.

хора:

  • работници;
  • студенти;
  • клиенти;
  • продавачи.

информация:

  • счетоводството;
  • личен въпрос;
  • речника;
  • таблица на ширини и дължини на населени места.

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

клас

Обекти в ООП - член на клас. Какво означава това? Езиците за програмиране са вградени типове данни. Тип междинно съединение, т. Е. Една число, което е предварително определено в C ++. Можете да декларирате произволен брой INT променливи.

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

Клас в ООП - описание на редица подобни обекти. Принс, Стинг и Мадона бяха певците. Никой не е с това име, но хората могат да се нарекат така, ако те имат съответните характеристики. OOP обект - този случай.

наследяване

В живота, класове са разделени в подкласове. Например, животните се разделят на земноводни, бозайници, птици, насекоми и така нататък. D.

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

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

рециклиране

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

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

Създаване на нови типове данни

Съоръжения, подходящи за създаването на нови типове данни. Да предположим, че програма използва двуизмерни стойности (например координати или географска ширина и дължина), и имат желание да изразят действието на аритметика върху тях:

позиция1 = позиция + произход,

където позиция1, позиция и произход - двойка независими числени стойности. Създаване на клас, който включва тези две стойности, както и декларации на променливи от своите обекти създава нов тип данни.

Полиморфизъм, претоварване

Оператори = (равни) и + (плюс), използвани в аритметична позиционен горе не действат както и вграден видове, като междинно съединение. Позиция обекти и др., Не са предварително определени и поставени от софтуер. Как тези оператори знаят как да се справиш с тях? Отговорът се крие във факта, че новите поведения може да бъде настроен за тях. Тези операции ще бъдат член функции клас позиция.

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

Книга за ООП "обектно-ориентираното програмиране за Dummies" ще даде възможност на всеки да се запознае с тази тема по-подробно.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 bg.unansea.com. Theme powered by WordPress.