Скриване на реализацията

Програмистите полезно разделени в класове от създателите (тези, които се създават нови типове данни) и клиентски програмисти От благодарност, този термин на приятел Скот Майерс. (клас потребители, използващи типове данни в техните приложения). Втората цел - да се съберат колкото се може повече класове, колкото е възможно, за да се справи с бързото развитие на програмите. Целта на създателя на класа - за изграждане на клас, който се отваря само това, което е необходимо да се програмистът-клиент, и се крият останалите. Защо? Програмист клиент няма да могат да получат достъп до скритите части, и по тази причина, класовете на създателя си запазва правото да ги променя произволно, без страх, че ще нарани някого. "Hidden" част от обичайните и най "крехка" част на обекта, който може лесно да съсипе невнимателно или неинформирани клиент програмист, така че се крие изпълнението намалява броя на грешките в програмите.

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

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

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

Java използва три ясни думи, които характеризират степента на достъп: публични, частни и защитени. Тяхната цел и употреба са много прости. Тези спецификатори за достъп определят кой има право да използва следното определение за тях. Slovopublic означава, че следващите дефиниции са достъпни за всички. Напротив, думата частни средства, които след това предлага са достъпни само за тип творец в рамките на нейните методи. Терминът Личен - «крепостна стена" между вас и програмистът-клиент. Ако някой се опита да използва лично -TERM, той ще бъде спрян от грешка компилация. защитени спецификатор работи подобно на лично. с едно изключение - получени класове имат достъп до членовете маркирани защитени. но нямат достъп до частен членен (наследството ще разгледаме накратко).

В Java, също имат достъп до "по подразбиране" се използва при липса на някое от тези определители. Необходимо е също така понякога се нарича достъп в рамките на пакета (достъп пакет), тъй като класове могат да използват приятелски членове на други класове на техния пакет, но извън тези същите приятелски членове придобие самостоятелен статут.