Klasė (programavimas): Skirtumas tarp puslapio versijų

Ištrintas turinys Pridėtas turinys
VP-bot (aptarimas | indėlis)
S Smulkūs pataisymai, kalbos
VP-bot (aptarimas | indėlis)
S robotas: smulkūs taisymai
Eilutė 14:
Klasė taip pat nusako ir duomenų vientisumo taisykles, kurios turi būti tenkinamos po kiekvieno metodo kvietimo. Tai yra esminis skirtumas nuo duomenų struktūrų, kur galima bet kuri įmanoma būsena, tuo tarpu klasės objektas gali pereiti tik į tam tikras būsenas. Nesilaikant inkapsuliacijos, būsenos vientisumas gali būti pažeistas.
 
Klasėse taip pat apibrėžiamos specialios kūrimo ir naikinimo funkcijos – [[Konstruktorius (programavimas)|konstruktorius]] ir [[Destruktorius (programavimas)|destruktorius]]. Konstruktorius gali būti naudojamas pradinio objekto sukūrimui (be parametrų) arba objekto sukūrimui pagal pradinius duomenis (su parametrais). Destruktoriuje gali būti atlaisvinami išoriniai resursai, nuorodos į kitus objektus. Į destruktorių panašus metodas būna ir tada, kai nebereikalingus objektus naikina ne programos kodas, o [[Šiukšlių surinktuvas|šiukšlių surinktuvas]]. Tuomet jis vadinamas [[Užbaigiklis (programavimas)|užbaigikliu]] ({{en|finalizer}}).
 
Analogiškai kaip ir statiniai atributai, klasėje gali būti apibrėžti ir statiniai metodai, kurie gali būti naudojami keisti statinių atributų reikšmes. Statiniai metodai, skirtingai nuo nestatinių, taip pat gali būti iškviečiami net ir nesukūrus (neinstancijavus) nei vieno tos klasės objekto. Tokie metodai taip pat dažnai naudojami objektų kūrimui, radimui, naikinimui.
 
== Poklasiai ir viršklasiai ==
[[Vaizdas:klasiu-paveldimumas.png|frame|right|Paveldimumas]]
Dažnai klasės vienaip ar kitaip susijusios. Dažniausias sąryšis – [[Paveldėjimas (programavimas)|paveldimumas]], kur žemesnės klasės (ar vaikų klasės) paveldi duomenų struktūras ir metodus iš aukštesnių klasių (tėvinių klasių). Paveldėtos klasės paprastai keičia tėvinės klasės funkcionalumą – prideda naujų metodų ar duomenų, perrašo ar uždraudžia kai kuriuos metodus.