b'\n_START_ARTICLE_\nKlas\xc4\x97 (programavimas)\n_START_PARAGRAPH_\nKlas\xc4\x97 (objektiniame programavime) - apra\xc5\xa1as, nusakantis tam tikro tipo objekt\xc5\xb3 duomen\xc5\xb3 strukt\xc5\xabr\xc4\x85 ir manipuliavimo jais taisykles (elges\xc4\xaf)._NEWLINE_Pavyzd\xc5\xbeiui, jei apra\xc5\xa1ome klas\xc4\x99 \xe2\x80\x9e\xc5\xbdmogus\xe2\x80\x9c, gal\xc4\x97sime kurti \xc5\xa1ios klas\xc4\x97s objektus kiekvienam konkre\xc4\x8diam asmeniui, \xc5\xa1ie objektai tur\xc4\x97s bendr\xc4\x85 duomen\xc5\xb3 strukt\xc5\xabr\xc4\x85, ta\xc4\x8diau skirtingas reik\xc5\xa1mes (skirsis \xc5\xabgis, svoris, lytis, vardas).\n_START_SECTION_\nKlas\xc4\x97s s\xc4\x85saja\n_START_PARAGRAPH_\nKiekviena klas\xc4\x97 gali realizuoti vien\xc4\x85 ar daugiau interfeis\xc5\xb3 (s\xc4\x85saj\xc5\xb3), kuriuose apra\xc5\xa1omos metod\xc5\xb3 signat\xc5\xabros. Klas\xc4\x97 gali b\xc5\xabti naudojama tiesiogiai ar per vien\xc4\x85 i\xc5\xa1 realizuojam\xc5\xb3 interfeis\xc5\xb3. Interfeisai leid\xc5\xbeia realizuoti tam tikr\xc4\x85 funkcionalum\xc4\x85 abstrak\xc4\x8diai, tada funkcionalumas vienodai veiks su bet kuria klase, realizuojan\xc4\x8dia interfeis\xc4\x85.\n_START_SECTION_\nKlas\xc4\x97s strukt\xc5\xabra\n_START_PARAGRAPH_\nKlas\xc4\x97 apra\xc5\xa1o objekte saugomus duomenis, daugelyje programavimo kalb\xc5\xb3 vieta saugoti tam tikro tipo duomenims yra vadinama atributu, kuri\xc5\xb3 konkre\xc4\x8di\xc5\xb3 reik\xc5\xa1mi\xc5\xb3 visuma nusako konkretaus objekto b\xc5\xabsen\xc4\x85. Geri OOP principai reikalauja, kad objekto b\xc5\xabsena turi b\xc5\xabti inkapsuliuojama ir gali b\xc5\xabti pakeista ar perskaityta tik per klas\xc4\x97je apra\xc5\xa1ytus metodus._NEWLINE_Kai kurie klas\xc4\x97s atributai gali b\xc5\xabti bendri visiems tos klas\xc4\x97s objektams (t. y. pakeitos vieno objekto atributo a reik\xc5\xa1m\xc4\x99, kei\xc4\x8diasi ir kito tos pa\xc4\x8dios klas\xc4\x97s objekto atributo a reik\xc5\xa1m\xc4\x97). Tokio tipo atributai vadinami statiniais atributais._NEWLINE_Klas\xc4\x97 taip pat nusako ir duomen\xc5\xb3 vientisumo taisykles, kurios turi b\xc5\xabti tenkinamos po kiekvieno metodo kvietimo. Tai yra esminis skirtumas nuo duomen\xc5\xb3 strukt\xc5\xabr\xc5\xb3, kur galima bet kuri \xc4\xafmanoma b\xc5\xabsena, tuo tarpu klas\xc4\x97s objektas gali pereiti tik \xc4\xaf tam tikras b\xc5\xabsenas. Nesilaikant inkapsuliacijos, b\xc5\xabsenos vientisumas gali b\xc5\xabti pa\xc5\xbeeistas._NEWLINE_Klas\xc4\x97se taip pat apibr\xc4\x97\xc5\xbeiamos specialios k\xc5\xabrimo ir naikinimo funkcijos \xe2\x80\x93 konstruktorius ir destruktorius. Konstruktorius gali b\xc5\xabti naudojamas pradinio objekto suk\xc5\xabrimui (be parametr\xc5\xb3) arba objekto suk\xc5\xabrimui pagal pradinius duomenis (su parametrais). Destruktoriuje gali b\xc5\xabti atlaisvinami i\xc5\xa1oriniai resursai, nuorodos \xc4\xaf kitus objektus. \xc4\xae destruktori\xc5\xb3 pana\xc5\xa1us metodas b\xc5\xabna ir tada, kai nebereikalingus objektus naikina ne programos kodas, o \xc5\xa1iuk\xc5\xa1li\xc5\xb3 surinktuvas. Tuomet jis vadinamas u\xc5\xbebaigikliu (angl. finalizer)._NEWLINE_Analogi\xc5\xa1kai kaip ir statiniai atributai, klas\xc4\x97je gali b\xc5\xabti apibr\xc4\x97\xc5\xbeti ir statiniai metodai, kurie gali b\xc5\xabti naudojami keisti statini\xc5\xb3 atribut\xc5\xb3 reik\xc5\xa1mes. Statiniai metodai, skirtingai nuo nestatini\xc5\xb3, taip pat gali b\xc5\xabti i\xc5\xa1kvie\xc4\x8diami net ir nesuk\xc5\xabrus (neinstancijavus) nei vieno tos klas\xc4\x97s objekto. Tokie metodai taip pat da\xc5\xbenai naudojami objekt\xc5\xb3 k\xc5\xabrimui, radimui, naikinimui.'