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

Змесціва выдалена Змесціва дададзена
чарцёж дома = рысунак дома https://be-tarask.wikipedia.org/wiki/%D0%A0%D1%8B%D1%81%D1%83%D0%BD%D0%B0%D0%BA#cite_note-4
д афармленьне
 
Радок 1:
У першым набліжэньні '''аб’ект''' — вылучаная вобласьць памяці. [[аб'ектнаАб’ектна-арыентаванае праграмаваньне|Аб’ектна-арыентаваныя]] [[мова праграмаваньня|мовы праграмаваньня]] выкарыстоўваюць [[зьменная|зьменныя]] для доступу да аб’ектаў, а таму паняткі ''аб’ект'' і ''зьменная'' часам выкарыстоўваюцца як ўзаемазамяняльныя. Аднак, аб’ект не існуе да таго часу, пакуль ня вылучаная памяць.
 
У [[працэдурнае праграмаваньне|працэдурным праграмаваньні]] аб’ект можа ўтымліваць у сабе дадзеныя альбо інструкцыі, але не адное і другое разам. Інструкцыі могуць мець выгляд працэдуры або функцыі. У [[аб'ектнааб’ектна-арыентаванае праграмаваньне|аб’ектна-арыентаваным праграмаваньні]] аб’ект зьяўляецца экзэмплярам [[кляса (праграмаваньне)|клясы]]. Кляса ўтрымлівае ў сабе набор дадзеных і інструкцый, якія зьдзяйсьняюць апэрацыі з дадзенымі, робяць аб’ект мог прымаць [[паведамленьне (праграмаваньне)|паведамленьні]], апрацоўваюць дадзеныя і адпраўляюць паведамленьні іншым аб’ектам.
 
Для лепшага разуменьня розьніцы паміж клясай і аб’ектам можна прывесьці наступны прыклад. Калі хтосьці хоча жыць у доме, ні рысунак гэтага дома, ні ягоны фатаздымак, ні мадэль дома не дапамогуць гэтаму чалавеку. Што тут патрэбна — дык гэта рэальны дом, пабудаваны ў адпаведнасьці з спэцыфікацыямі. Выкарыстоўваючы гэтую аналёгію, рысунак прадстаўляе клясу, а рэальны дом прадстаўляе аб’ект.
 
== Тэорыя ==
 
У строгім [[матэматыка|матэматычным]] выкладаньні [[інфарматыка|інфарматыкі]] панятак '''аб’ект''' выкарыстоўваецца ў чыста матэматычным сэнсе для абазначэньня любой «рэчы». Улічваючы тое, што пакуль яшчэ гэтая інтэрпрэтацыя цалкам прымальная для апісаньня абстрактнай тэорыі, і хаця гэты панятак недастаткова канкрэтны, каб апісваць прымітыўныя [[тып дадзеных|тыпы дадзеных]] у больш канкрэтных галінах (кшталту [[праграмаваньне|праграмаваньня]]), ён усё яшчэ дастаткова блізкі да бягучага разуменьня паняткаў «вылічэньне» і «[[апрацоўка інфармацыі]]». Па гэтай прычыне аб’екты ўсё яшчэ зьяўляюцца '''канцэптуальнымі сутнасьцямі''', але звычайна адпавядаюць непарыўнаму блёку кампутарнай памяці вызначанага памеру ў вызначаным месцазнаходжаньні. Такая рэалізацыя абраная з прычыны таго, што вылічэньне і апрацоўка інфармацыі патрабуюць строга пэўную форму кампутарнай памяці. У гэтым сэнсе аб’екты — гэта фундамэнтральныя прымітывы, якія патрабуюцца для дакладнага вызначэньня такіх паняткаў як [[спасылка (праграмаваньне)|спасылкі]], [[зьменная|зьменныя]] і адпаведнасьць імёнаў.
 
Аб’екты існуюць толькі ў сваім кантэсьце. Частка кампутарнай памяці ўтрымлівае аб’ект толькі тады, пакуль праграма разглядае гэтую частку памяці як аб’ект. Таму [[час жыцьця аб'ектаў|час жыцьця аб’ектаў]] — гэта час пакуль вобласьць памяці разглядаецца як аб’ект. Вось чаму аб’екты зьяўляюцца канцэптуальнымі паняткамі, ня гледзячынягледзячы на іхнае фізычнае знаходжаньне ў памяці.
 
== Аб’екты ў аб’ектна-арыентаваным праграмаваньні ==
У [[аб'ектнааб’ектна-арыентаванае праграмаваньне|аб’ектна-арыентаваным праграмаваньні]] (ААП) экзэмпляр праграмы (напрыклад, праграма, запушчаная на кампутары) разглядаецца як дынамічны набор аб’ектаў, якія ўзаемадзейнічаюць між сабой. Аб’екты ў ААП пашыраюць агульнае вызначэньне аб’ектаў, прыведзенае вышэй, шляхам выкарыстаньня адмысловага віду [[тып дадзеных|тыпізаваньня]], якое, апроч іншага, дазваляе утрымліваць у сабе наступныя рэчы:
 
У [[аб'ектна-арыентаванае праграмаваньне|аб’ектна-арыентаваным праграмаваньні]] (ААП) экзэмпляр праграмы (напрыклад, праграма, запушчаная на кампутары) разглядаецца як дынамічны набор аб’ектаў, якія ўзаемадзейнічаюць між сабой. Аб’екты ў ААП пашыраюць агульнае вызначэньне аб’ектаў, прыведзенае вышэй, шляхам выкарыстаньня адмысловага віду [[тып дадзеных|тыпізаваньня]], якое, апроч іншага, дазваляе утрымліваць у сабе наступныя рэчы:
# дадзеныя, якія прадстаўляюць дадзеныя, асацыяваныя з аб’ектам;
# [[мэтад (праграмаваньне)|мэтады]], якія зьвяртаюцца да дадзеных загадзя вызначанымі спосабамі.
Радок 35 ⟶ 33:
 
== Прыклад ==
 
Прыкладам з жыцьця можа быць аб’ект «мой сабака», які зьяўляецца экзэмплярам [[кляса (праграмаваньне)|клясы]] «сабака», які ў сваю чаргу зьяўляецца падклясай клясы «жывёла». У выпадку [[палімарфізм|паліморфных]] аб’ектаў пэўныя дэталі гэтага тыпу могуць выбарачна інгаравацца, напрыклад, аб’ект «сабака» можа выкарыстоўвацца фукцыяй, якая шукае «жывёлу». Але гэтаксама можа апрацоўвацца і «котка», бо яна таксама належыць да клясы «жывёла». Калі аб’ектры разглядаць як «жывёлаў», пэўныя члены і атрыбуты клясаў «сабака» альбо «котка» будуць недаступныя, напрыклад, такія як атыбут «хвост», бо ня ўсе жывёлы маюць хвасты.
 
== ЗьнешніяВонкавыя спасылкі ==
* [http://java.sun.com/docs/books/tutorial/java/concepts/object.html ''Што такое аб’ект?''] (па{{Ref-ангельску)en}} з ''The Java Tutorials''
 
[[Катэгорыя:Праграмаваньне]]