www.wikidata.uk-ua.nina.az
Cya stattya potrebuye dodatkovih posilan na dzherela dlya polipshennya yiyi perevirnosti Bud laska dopomozhit udoskonaliti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Zvernitsya na storinku obgovorennya za poyasnennyami ta dopomozhit vipraviti nedoliki Material bez dzherel mozhe buti piddano sumnivu ta vilucheno lyutij 2020 V ob yektno oriyentovanomu programuvanni klas ce specialna konstrukciya yaka vikoristovuyetsya dlya grupuvannya pov yazanih zminnih ta funkcij Pri comu zgidno z terminologiyeyu OOP globalni zminni klasu chleni zminni nazivayutsya polyami danih takozh vlastivostyami abo atributami a chleni funkciyi nazivayut metodami klasu Stvorenij ta inicializovanij ekzemplyar klasu nazivayut ob yektom klasu Na osnovi odnogo klasu mozhna stvoriti bezlich ob yektiv sho vidriznyatimutsya odin vid odnogo svoyim stanom znachennyami poliv Poznachennya uspadkuvannya klasiv na UML diagramiV Unified Modeling Language klasi zobrazhuyutsya za dopomogoyu diagrami klasiv Zmist 1 Klasi ta ekzemplyari klasiv 2 Metodi klasiv 3 Interfejs ta realizaciya spadkuvannya realizaciyi 4 Stan ob yekta ponyattya oblastej dostupu konstruktori 5 Praktichnij pidhid 6 Prikladi stvorennya klasiv na riznih movah programuvannya 7 Div takozhKlasi ta ekzemplyari klasiv RedaguvatiKlas mozhna porivnyuvati z formoyu dlya vipichki pechiva forma odna a pechiva mozhna vipekti bezlich Pechivo ce konkretni ob yekti ekzemplyari klasu pechivo yake mozhe buti z riznoyu nachinkoyu Polya dozvolyayut vmistiti dani pro pevnij realnij ob yekt a metodi zdijsnyuvati obrobku cih danih Napriklad mozhna stvoriti zagalnij klas Lyudina z polyami Im ya ta Prizvishe rik narodzhennya profesiya zarplata Pri stvorenni zh na osnovi klasu konkretnogo ekzemplyaru dani polya zapovnyuyutsya konkretnimi danimi pro pevnu lyudinu Obrobkoyu cih danih mozhut zajmatisya vidpovidni metodi Napriklad mozhna stvoriti metod dlya obchislennya viku lyudini tosho Na osnovi klasiv mozhna stvoryuvati pidklasi yaki uspadkovuyut vlastivosti ta povedinku batkivskih klasiv Takim chinom mozhna stvoriti cilu iyerarhiyu klasiv Rizni movi desho po riznomu realizovuyut mehanizm uspadkuvannya Isnuye mnozhinne ta odinarne uspadkuvannya Mnozhinne ce koli pidklas stvoryuyetsya na osnovi kilkoh bezposerednih batkiv yak to v movi programuvannya C Odinarne uspadkuvannya ce koli klas mozhe mati odnogo bezposerednogo batka mova programuvannya Java Nadklasi mozhut mati svoyi nadklasi pidklasi mozhut takozh buti nadklasami dlya pevnih klasiv Metodi klasiv RedaguvatiCherez metodi realizuyetsya povedinka ob yektiv Praktichno vsya robota z ob yektami vidbuvayetsya cherez metodi Voni mozhut zminyuvati stan ob yekta abo zh prosto nadavati dostup do danih yaki buli inkapsulovani v ob yekti Isnuye kilka vidiv metodiv yaki mayut deyaki vidminnosti v riznih movah programuvannya Do metodiv ta poliv danih mozhna nadavati rizni prava dostupu vid yakih zalezhatime dostup do nih z riznih chastin programnogo kodu Prava dostupu ta vid metodiv zadayutsya modifikatorami pri opisi metodiv Metod yakij provodit stvorennya ta pochatkovu inicializaciyu ekzemplyara klasu nazivayut konstruktorom klasu Metod yakij provodit znishennya ob yekta nazivayut destruktorom klasu Interfejs ta realizaciya spadkuvannya realizaciyi RedaguvatiU programuvanni isnuye ponyattya programnogo interfejsu sho oznachaye perelik mozhlivih obchislen yaki mozhe vikonati ta chi insha chastina programi vklyuchayuchi opis togo yaki argumenti i v yakomu poryadku potribno peredavati na vhid algoritmam z cogo pereliku a takozh sho i v yakomu viglyadi voni budut povertati Abstraktnij tip danih interfejs pridumanij dlya formalizovanogo opisu takogo pereliku Sami algoritmi tobto dijsnij programnij kod yakij bude vikonuvati vsi ci obchislennya interfejsom ne zadayetsya programuyetsya okremo ta nazivayetsya realizaciyeyu interfejsu Programni interfejsi a takozh klasi mozhut rozshiryuvatisya shlyahom spadkuvannya yake ye odnim z vazhlivih zasobiv povtornogo vikoristannya gotovogo kodu v OOP Uspadkovanij klas abo interfejs bude mistiti v sobi vse sho zaznacheno dlya vsih jogo batkivskih klasiv v zalezhnosti vid movi programuvannya ta platformi yih mozhe buti vid nulya do neskinchennosti Napriklad mozhna stvoriti svij variant tekstovogo ryadka shlyahom uspadkuvannya klasu mij ryadok tekstu vid vzhe isnuyuchogo klasu ryadok tekstu pri comu peredbachayetsya sho programistu ne dovedetsya zanovo perepisuvati algoritmi poshuku ta inshe oskilki voni avtomatichno budut uspadkovani vid gotovogo klasu i bud yakij ekzemplyar klasu mij ryadok tekstu mozhe buti peredanij ne lishe v gotovi metodi batkivskogo klasu ryadok tekstu dlya provedennya potribnih obchislen a j vzagali v bud yakij algoritm zdatnij pracyuvati z ob yektami tipu ryadok tekstu oskilki ekzemplyari oboh klasiv sumisni po programnim interfejsam Klas dozvolyaye zadati ne lishe programnij interfejs do samogo sebe i do svoyih ekzemplyariv ale i v yavnomu viglyadi napisati kod vidpovidalnij za obchislennya Yaksho pri stvorenni svogo novogo tipu danih uspadkovuvati interfejs to mi otrimayemo mozhlivist peredavati primirnik svogo tipu danih v bud yakij algoritm yakij vmiye pracyuvati z cim interfejsom Odnak nam dovedetsya samim napisati realizaciyu interfejsu tobto ti algoritmi yakimi bude koristuvatisya cikavij nam algoritm dlya provedennya obchislen z vikoristannyam nashogo ekzemplyara Vodnochas pri nasliduvanni klasu avtomatichno uspadkovuyetsya gotovij kod pid interfejs ce ne zavzhdi tak batkivskij klas mozhe vimagati realizaciyi yakihos algoritmiv v dochirnomu klasi v obov yazkovomu poryadku V takij mozhlivosti uspadkovuvati gotovij kod i proyavlyayetsya te sho v ob yektno oriyentovanoyi programi tip danih klas viznachaye odnochasno yak interfejs tak i realizaciyu dlya vsih svoyih ekzemplyariv Stan ob yekta ponyattya oblastej dostupu konstruktori RedaguvatiOdniyeyu z problem strukturnogo programuvannya z yakoyu boretsya OOP ye problema pidtrimki pravilnogo znachennya zminnih programi Chasto rizni zminni programi zberigayut logichno pov yazani znachennya i za pidtrimannya ciyeyi logichnoyi zv yaznosti nese vidpovidalnist programist tobto avtomatichno zv yaznist ne pidtrimuyetsya Prikladom mozhe sluguvati para praporciv zvilnenij ta ochikuye premiyi za pidsumkami roku koli za pravilami viddilu kadriv lyudina mozhe buti vodnochas ne zvilnenoyu i ne ochikuvati premiyu abo ne zvilnenoyu ta ochikuvati premiyu abo zvilnenoyu i ne ochikuvati premiyu ale ne mozhe buti odnochasno zvilnenoyu i ochikuvati premiyu Tobto bud yaka chastina programi yaka prostavlyaye praporec zvilnenij zavzhdi povinna znimati praporec chekaye premiyi za pidsumkami roku Horoshij sposib virishiti cyu problemu ogolositi praporec zvilnenij nedostupnim do zmini dlya vsih dilyanok programi krim odnogo specialno obumovlenogo U cij specialno obumovlenij dilyanci vse bude napisano odin raz i pravilno a vsi inshi povinni budut zvertatisya do ciyeyi dilyanki zavzhdi koli voni hochut vstanoviti abo znyati praporec zvilnenij V ob yektno oriyentovanij programi praporec zvilnenij bude ogolosheno privatnim chlenom deyakogo klasu a dlya jogo chitannya ta zmini budut napisani vidpovidni publichni metodi Pravila sho viznachayut mozhlivist abo nemozhlivist bezposeredno zminyuvati bud yaki zminni nazivayutsya pravilami zavdannya oblastej dostupu Slova privatnij ta publichnij v comu vipadku ye tak zvanimi modifikatorami dostupu Voni nazivayutsya modifikatorami tomu sho v deyakih movah voni vikoristovuyutsya dlya zmini ranishe vstanovlenih prav pri spadkuvanni klasu Spilno klasi ta modifikatori dostupu zadayut oblast dostupu tobto u kozhnoyi dilyanki kodu zalezhno vid togo do yakogo klasu vona nalezhit bude svoya oblast dostupu shodo tih chi inshih elementiv chleniv svogo klasu ta inshih klasiv vklyuchayuchi zminni metodi funkciyi konstanti tosho Isnuye osnovne pravilo nisho v odnomu klasi ne mozhe bachiti privatnih elementiv inshogo klasu Shodo inshih bilsh skladnih pravil u riznih movah isnuyut inshi modifikatori dostupu ta pravila yih vzayemodiyi z klasami Majzhe kozhnomu chlenu klasa mozhna vstanoviti modifikator dostupu za vinyatkom statichnih konstruktoriv ta deyakih inshih rechej U bilshosti ob yektno oriyentovanih mov programuvannya pidtrimuyutsya taki modifikatori dostupu private zakritij vnutrishnij chlen klasu zvernennya do chlenu dopuskayutsya lishe z metodiv togo klasu u yakomu cej chlen viznachenij Bud yaki spadkoyemci klasu vzhe ne zmozhut otrimati dostup do cogo chlenu Spadkuvannya za tipom private zaboronyaye dostup z dochirnogo klasu do vsih chleniv batkivskogo klasu vklyuchayuchi navit public chleni S protected zahishenij vnutrishnij chlen iyerarhiyi klasiv zvernennya do chlena dopuskayutsya z metodiv togo klasu u yakomu cej chlen viznachenij a takozh z bud yakih metodiv jogo klasiv spadkoyemciv Spadkuvannya za tipom protected robit vsi public chleni batkivskogo klasu protected chlenami klasu spadkoyemcya S public vidkritij chlen klasu zvernennya do chlena dopuskayutsya z bud yakogo kodu Spadkuvannya za tipom public ne minyaye modifikatoriv batkivskogo klasu S Problema pidtrimki pravilnogo stanu zminnih aktualna i dlya vihidnogo momentu vistavlennya pochatkovih znachen Dlya cogo v klasah peredbacheni specialni metodi funkciyi zvani konstruktorami Zhoden ob yekt ekzemplyar klasu ne mozhe buti stvorenij inakshe yak shlyahom vikliku na vikonannya kod konstruktora yakij poverne stvorenij ta pravilno zapovnenij primirnik klasu U bagatoh movah programuvannya tip danih struktura yak i klas mozhe mistiti zminni ta metodi ale ekzemplyari struktur zalishayuchis prosto rozmichenimi dilyankami operativnoyi pam yati mozhut stvoryuvatisya v obhid konstruktoram sho zaboroneno dlya primirnikiv klasiv za vinyatkom specialnih vinyatkovih metodiv obhodu vsih podibnih pravil OOP peredbachenih v deyakih movah ta platformah U comu viyavlyayetsya vidminnist klasiv vid inshih tipiv danih viklik konstruktora obov yazkovij Praktichnij pidhid RedaguvatiU suchasnih ob yektno oriyentovanih movah programuvannya v tomu chisli v php Java C Oberon Python Ruby Smalltalk Object Pascal stvorennya klasu zvoditsya do napisannya deyakoyi strukturi sho mistit nabir poliv ta metodiv sered ostannih osoblivu rol grayut konstruktori destruktori finalizatori Praktichno klas mozhe rozumitisya yak yakijs shablon za yakim stvoryuyutsya ob yekti ekzemplyari cogo klasu Usi primirniki odnogo klasu stvoreni za odnim shablonom tomu mayut odin i toj zhe nabir poliv ta metodiv Prikladi stvorennya klasiv na riznih movah programuvannya RedaguvatiKlasi v movi Object Pascal Delphi Na movi Delphi klas opisuyetsya takim chinom TMyClass class TObject private Opisani v cij sekciyi elementi ne dostupni zzovni za mezhami klasu ale dostupni v mezhah modulya Tut zazvichaj znahodyatsya polya klasu protected Opisani v cij sekciyi elementi dostupni lishe klasu i vsim jogo nashadkam public Opisani v cij sekciyi elementi dostupni vsim published Opisani v cij sekciyi elementi dostupni vsim i vidobrazhayutsya v Object Inspector e end TMyClass im ya klasu class klyuchove slovo sho pochinaye viznachennya klasu v starih versiyah takozh bulo klyuchove slovo object TObject klas predok yaksho ye spadkuvannya private protected public published klyuchovi slova sho viznachayut iyerarhichnij dostup do poliv ta metodiv u viglyadi poznachennya sekcij oblastej vidimosti Stvoryuyetsya ekzemplyar ob yekt klasu tak MyClass TMyClass Create Znishuyetsya tak FreeAndNil MyClass abo tak MyClass Free Klasi v movi JavaViznachennya klasu na movi Java za dopomogoyu operatora class class MyClass String name Example Konstruktor public MyClass String name this name name Metod public String getName return name Stvorennya ekzemplyara klasu MyClass my new MyClass Example 2 Znishennya ekzemplyara klasu vidbuvayetsya za dopomogoyu zbiracha smittya avtomatichno Klasi v movi C Klas u movi C stvoryuyetsya takim chinom class MyClass public ParentClass ParentClass klas predok yaksho takij ye public elementi v cij sekciyi dostupni z bud yakoyi chastini programi MyClass konstruktor MyClass destruktor protected elementi v cij sekciyi dostupni z klasu i jogo nashadkiv private elementi v cij sekciyi dostupni lishe z klasu ce oblast dostupu za umovchannyam Pislya svogo stvorennya klas vvazhayetsya povnocinnim tipom danih i otzhe ekzemplyari klasu stvoryuyutsya takim chinom MyClass myinstance Zvernennya do chleniv klasu myinstance classmember Znishuyetsya ekzemplyar klasu yak i bud yaka zminna lishe u vipadku yaksho funkciya v yakij vin buv stvorenij zavershila robotu abo yaksho bula primusovo zvilnena dinamichna pam yat vidilena pid klas Klasi v movi C Klasi v movi C viznachayutsya takim chinom public class MyClass Chlen dostupnij bud yakomu klasu programi public int k Chlen dostupnij bud yakomu klasu v tomu zh moduli programi internal int l Chlen dostupnij bud yakomu klasu v tomu zh moduli programi abo lishe potochnim klasu i vsim jogo pidklasam v inshomu moduli protected internal int m Chlen dostupnij lishe potochnim klasu i vsim jogo pidklasam protected int n Chlen dostupnij lishe z potochnogo klasu za zamovchuvannyam private int p Na vidminu vid C modifikatori dostupu povinni vkazuvatisya dlya kozhnogo chlena okremo Anonimni klasi mozhna viznachiti v metodi napriklad tak public void DoSomething var person new Name Margarita Age 15 var pet new Name Dunya Type Cherepaha Owner person Console WriteLine Age of pet owner pet Owner Age Div takozh RedaguvatiDiagrama klasiv Ob yektno oriyentovane programuvannya Metod programuvannya Ob yekt programuvannya Zminna tipu nbsp Ce nezavershena stattya pro movi programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Cya stattya maye kilka nedolikiv Bud laska dopomozhit udoskonaliti yiyi abo obgovorit ci problemi na storinci obgovorennya Cya stattya mistit tekst sho ne vidpovidaye enciklopedichnomu stilyu Bud laska dopomozhit udoskonaliti cyu stattyu pogodivshi stil vikladu zi stilistichnimi pravilami Vikipediyi Mozhlivo storinka obgovorennya mistit zauvazhennya shodo potribnih zmin sichen 2018 Cyu stattyu treba vikifikuvati dlya vidpovidnosti standartam yakosti Vikipediyi Bud laska dopomozhit dodavannyam dorechnih vnutrishnih posilan abo vdoskonalennyam rozmitki statti sichen 2018 Cya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno sichen 2018 Otrimano z https uk wikipedia org w index php title Klas programuvannya amp oldid 39334132