Последно време попадам на доста объркани класове и кодове като цяло, затова за момента се въздържам от публикуване на код от други автори. Вместо това предпочитам да дам няколко определения на основни понятия и термини в обектното програмиране.
В първата част ще разгледам Абстракция и Капсулация
Абстракцията означава, че включваме в класа си само тези елементи от неговата същност, които имат пряко отношение към начина на използване. Разбира се, трябва да ги моделираме по подходящ начин спрямо това изискване.
Например: програмираме клас за login. Не сме се замисляли до този момент, че някога може би ще ни е нужно ЕГН и телефон например, защото не ни трябва в тази проекция, в която ще използваме класа.
Абстракцията ни дава възможност, при положение ,че решим да събираме и тези данни от потребителите в бъдеще, да не използваме сложни структури, а да добавим данните просто като символен низ в реалния клас, който наследява абстрактния.
Капсулацията е точно това, което чуваме – възможността да затворим определени свойства вътре в класа си и да позволим достъп само до други такива отвън.
Например, ако имаме клас “Човек”, който има публично свойство ЕГН и искаме да получим датата на раждане, то може да имаме достъпно само за четене на свойство “дата на раждане”, която да се взима от ЕГН-то. За потребителите на нашия клас не представлява интерес откъде идва датата на раждане, как се получава или изчислява – те си получават датата, когато четат свойсвтото “дата на раждане” и това е. Вътрешното състояние на класа не е желателно да се извежда или да зависи от външни фактори. То е като добре затворена и заключена кутия…
В следваща част на “Принципи и основни понятия в ООП” ще бъдат разгледани понятията Наследяване и Полиморфизъм