Концепцията на обекти
Обект - това е обща и широко понятие, което може да има различни интерпретации. Най-общо казано, на обекта - е всяко лице, което има набор от свойства и има определено поведение. От това следва, че обектът може да бъде почти всичко - материални обекти (компютър, кола, човек), логически понятия (файл, документ, структура на данните, прозорецът в мулти-система за графика), математически понятия (например, геометрични обекти като сегмент, кръг ).
Един обект в тесния смисъл може да бъде разбрано официално описание счита същество, т.е. модел. За това описание нужда от език, например - език за програмиране. В този случай, обектът става част от езика, и в този контекст тя ще се счита за по-нататък. Моделиране на реални обекти - това е най-важният етап в развитието на програми за обектите, до голяма степен определя успеха на проекта. Трябва да се разбере, че всеки модел - е само част от първоначалната симулирана обекта, който отразява качествата и атрибутите на обекта, който са най-важни от гледна точка на проблема да бъде решен. Промяна на формулиране на проблема може да доведе до значителни промени в модела. Това е типично за сложни обекти. То няма смисъл да се изгради цялостен модел "за всички поводи", тъй като този модел ще бъде много тромава и на практика неизползваеми. Ето защо, една от най-важните принципи на изграждане на модела - на принципа на абстракция. т.е. определяне на най-съществените характеристики на обекта, източник и отстраняването на дребни детайли.
От това следва, че за една и съща оригиналния обект може да се изгради различни модели, всеки от които ще представляват само някои от най-важните характеристики на обекта.
Например, за източника на "човека" на обект може да се изгради модел на следната информация:
· Човек като студент на институцията
· Човек като служител
· Едно лице като пациент здравните заведения
· Човекът като отделението на вътрешните работи, и т.н.
За описание на обекта, трябва да укажете свойствата (параметри, характеристики), и за да се опише поведението си - да се създаде набор от практики, наречени методи на обекти. Свойствата на обекти са описани като област конвенционални данни. По време на програмата се съхраняват съответните стойности. Основните видове имоти са:
· Простите примитивни типове (число, низ, реално, булеви);
· Структурирани видове (масив, запис, или структура);
· Свойства на обекти, които представляват обекти на същия или от различен характер.
Наличието на обект свойства е проява на методите на взаимодействие обекти - т.нар агрегация kotorayabolee обсъдени подробно в раздел 2.2.
Набор от свойствата на обекти е създадена в описанието на обекта, а не да бъдат в последствие се промени. Както може да се прилага като примери за свойства:
· Име на файла на обекта, размер, дата, тип;
· Прозорец Object позиция екран, размер, вид фон запълване, тип конструкция, регистрация в заглавието;
· Object-кар: цената, тип, модел, размер на двигателя, цвят и др.;
· Object-студент: име, група, специалност, оценка;
· Object-кръг: център координира, радиус, видимост състояние, цвят.
поведение обект е описан от набор от методи. Всеки метод - код, издаден под формата на функция. Комбинирането с обработваните данни (свойства) и програмен код за обработката им (т.е. методи) се нарича принципа на капсулиране. Този принцип е един от основния ООП. Ако не съществуват по-ранни данни и обработка на функции независимо една от друга, подходът на обект, те образуват ново дружество - обект. С други думи, на самия обект е отговорен за обработката на данните им. Това позволява по-ясно разделение на отговорностите в програмата обект. Обектът може да се разглежда като "черна кутия", която изпълнява определен набор от функции. Изпълнението на тези функции не е необходимо да се отнася за потребителя на клиента, е достатъчно да се знае, че един обект предоставя набор от услуги.
Въпреки разнообразието на предмети от различно естество, следните групи методи, присъщи на почти всички обекти.
1. конструктори и деструктори. Дизайнер е отговорен за създаването на нов обект, т.е. това разпределение обект памет и инициализация на основната памет. Конструктор се нарича преди всички други методи. Значението се определя от проектанта, е гарантирано, че създава обект с някои първоначални стойности на свойства. Това елиминира цял клас неприятни логически грешки, като например използването на неинициализирани променливи.
За един и същ обект може да бъде предоставена на няколко различни конструктори, че различните свойства на новия обект се инициализира. Първоначалните стойности на имотите често се предават като входни параметри на строителя. Деструкторът е отговорен за унищожаването на обекта, т.е. освобождавайки заделена памет обект. За разлика от конструктори, деструктори механизъм не се изпълнява във всички обектно-ориентирани езици.
2. методи, чрез които да се запознаят с текущата стойност на определени свойства. Обикновено, за всеки имот, получава свой собствен метод за достъп до съхранената стойност в него. Приети начини за възлагане на такива имена, състоящи се от две части - префикс Вземи и името на съответния имот, например - GetColor, GetName, GetPrice. Такива методи обикновено Се-формализирани като функции, които връщат стойност на съответните свойства.
3. Методи, които са отговорни за промяна на стойността на едно или повече свойства. Те решиха да се започне с комплект префикс, например, SetColor, SetName, SetPrice. Нови стойността на имотите се предават като параметри Set-методи. Въпреки някои синтактични прилики, че е необходимо да се прави разлика между действия, извършени от дизайнери и настройка методи: конструктор създава нов обект, и Set-метод променя само стойността на едно или повече свойства на вече създаден обект. Доста често, Set-методи, преди да промените стойностите на имотите направи допълнителна работа, например - вижте новите стойности на имотите.
Наличие на Set / Get-метод се дължи на факта, че в съответствие с принципа на капсулиране свойства на обекта трябва да бъдат затворени до външна намеса. Достъпът до имотите трябва да се извършва само чрез покани да се получи / Set-методи. В този случай, детайлите на вътрешния изпълнението на съхранението на обекта са напълно затворени от потребителите. Набор от методи Accessor дефинира отворен интерфейс обект.
В допълнение към тези методи, обект често има по-специфични и уникални методи за определяне на функцията на обекта. Например:
· Списък на обекта: добавяне, изтриване и търсене на елемента;
· Прозорец на обекта: преместване, промяна на атрибутите, дисплей;
· Object-кар: стартиране на двигателя, за ускорение / въртенето;
· Object-студент: посещаемост изпълнението на задачи, подавайки контролни точки за обучение;
· Обект-кръг: дисплей, движение, участък / компреса.
В резултат на това, програмата обект е набор от взаимодействащи обекти, които се отнасят един към друг за осъществяване на необходимите действия. По този начин всеки обект преминава определен жизнен цикъл: тя е създадена от дизайнера, и се използва от други предмети, е унищожен. Очевидно е, че броят на подобни обекти (множество файлове, няколко прозореца, много студенти) може да съществува едновременно. Затова има нужда от инструмент на формалното описание на едни и същи обекти и като такъв инструмент е важна концепция на обективната подход - на класа.