Аб’ект (праграмаваньне): розьніца паміж вэрсіямі

Змесціва выдалена Змесціва дададзена
Радок 18:
У выпадку большасьці аб’ектаў, да дадзеных аб’екта можна зьвяртуцца толькі праз мэтады, што гарантуе тое, што дадзеныя заўжы застануцца ў дапушчальных межах. Аднак пэўныя мовы не адрозьніваюць дадзеныя і мэтады.
 
УАмаль амальва усіхўсіх аб’ектна-арыентаваных мовах праграмаваньня для выкліку пэўнага мэтаду альбо функцыі аб’екта выкарыстоўваецца апэратар «кропка» (.). Напрыклад, разгледзім арытмэтычную клясу зь імем АрытКляса<tt>ArytmKlasa</tt>, якая ўтрымлівае мэтады кшталту дадай<tt>dadać()</tt>, адымі<tt>adymi()</tt>, памнож<tt>pamnožyć()</tt> і падзялі<tt>padzialić()</tt>, якія вылічаюць вынік двух лікаў, якія былі ім перададзеныя ў якасьці аргумэнтаў. Гэтая кляса можа выкарыстоўвацца для вылічэньня здабытку 78 і 69, але спачатку трэба стварыць клясу і затым выклікаць мэтад здабытку наступым чынам (прыклад на [[псэўдакод]]зе):
 
1 int вынікvynik = 0; ''// Ініцыялізаваньне''
2 арытАб’ект1arytmAbjekt1 = new АрытКлясаArytmKlasa(); ''// Стварэньне новага экзэмпляру клясы «АрытКлясаАрытмКляса»''
3 вынікvynik = арытАб’ект1arytmAbjekt1.памножpamnožyć(78, 69); ''// [[Здабытак]] 78 і 69 захоўваецца ў зьменнай «вынік»
 
У мовах, дзе кожны аб’ект ствараецца з клясы, аб’ект называецца '''экзэмплярам''' гэтай клясы. Калі кожны аб’ект мае тып, то два аб’екты адной і той жа клясы будуць мець адзін і той жа [[тып дадзеных]].
 
Часам аб’ект застаецца без спасылак на яго ў праграме. Такі аб’ект ужо ня можа выконваць ніякіх дзеяньняў. У такіх выпадках у мовах, дзе рэалізаваны аўтаматычны збор сьмецьця, [[зьбіральнік сьмецьця]] пазначацьпазначыць памяць, якая займаецца аб’ектам, як вольную, хаця фактычна яна яшчэ будзе ўтрымлівацўтрымліваць дадзеныязьвесткі аб’екта да таго часу, пакуль яны ня будуць перазапісаныя.
 
Тры ўласьцівасьці, якія характарызуюць аб’екты:
 
# Унікальнасьць: уласьцівасьць аб’екта, якая адрозьнівае яго ад іншых аб’ектаў;
# Стан: апісвае дадзеныязьвесткі, якія захоўваюцца ў аб’екце;
# Паводзіны: апісвае мэтады ў [[інтэрфэйс (праграмаваньне)|інтэрфэйсе]] аб’екта, празь якія ён можа быць выкарыстаны.