Ebooks, Audobooks and Classical Music from Liber Liber
a b c d e f g h i j k l m n o p q r s t u v w x y z





Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Klasė (programavimas) - Vikipedija

Klasė (programavimas)

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.

Klasė objektiniame programavime aprašo tos klasės objektų duomenis ir metodus, taigi klasė aprašo tam tikro tipo objektų duomenų struktūrą ir manipuliavimo jais taisykles (elgesį). Pavyzdžiui, jei aprašome klasę „Žmogus“, galėsime kurti šios klasės objektus kiekvienam konkrečiam asmeniui, šie objektai turės bendrą duomenų struktūrą, tačiau skirtingas reikšmes (skirsis ūgis, svoris, lytis, vardas).

[taisyti] Klasės interfeisas

Kiekviena klasė gali realizuoti vieną ar daugiau interfeisų (sąsajų), kuriuose aprašomos metodų signatūros. Klasė gali būti naudojama tiesiogiai ar per vieną iš realizuojamų interfeisų. Interfeisai leidžia realizuoti tam tikrą funkcionalumą abstrakčiai, tada funkcionalumas vienodai veiks su bet kuria klase, realizuojančia interfeisą.

[taisyti] Klasės struktūra

UML notacija
UML notacija

Klasė aprašo objekte saugomus duomenis, kurių visuma nusako objekto būseną. Objekto būsena enkapsuliuojama ir gali būti pakeista ar perskaityta tik per klasėje aprašytus metodus.

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 enkapsuliacijos, būsenos vientisumas gali būti pažeistas.

Klasėse taip pat apibrėžiamos specialios kūrimo ir naikinimo funkcijos - konstruktorius ir 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. Tuomet jis vadinamas užbaigikliu (angl. finalizer).

Klasėje taip pat gali būti apibrėžti klasės (statiniai) metodai, kurie gali būti vykdomi neturint objekto. Tokie metoda dažnai naudojami objektų kūrimui, radimui, naikinimui.

[taisyti] Poklasiai ir viršklasiai

Paveldimumas
Paveldimumas

Dažnai klasės vienaip ar kitaip susijusios. Dažniausias sąryšis - paveldimumas, kur poklasiai (ar vaikinės klasės) paveldi duomenų struktūras ir metodus iš virš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.

Paveldėjimo ryšys dažnai pakeičiamas junginiu „yra“ (pvz., „Pingvinas yra Paukštis“).

Metodas, apibrėžtas bendresnėje klasėje, gali būti iš naujo deklaruojamas ir apibrėžiamas iš jos kildinamoje labiau konkrečioje klasėje. Mūsu pavyzdyje, metodas Perėti gali būti deklaruotas klasėje Paukštis ir atskirai aprašytas ereliui ir pingvinui, nes šie du paukščiai perėjimo metu elgiasi ne taip pat.

Kiekvienas objektas turi programuotojui nematomą laukelį, tiesiogiai ar netiesiogiai nurodantį būtent šis objekto klasę. Todėl su konkrečiu objektu galima elgtis ir kaip su bendresnei klasei priklausančiu abstrakčiu objektu. Tarkim, galima parašyti funkciją lizdas(Paukštis), kurios parametras gali būti tiek Erelis, tiek ir Pingvinas. Jei toje funkcijoje bus kviečiamas metodas Perėti, kvietimas nukeliaus į būtent to paukščio rūšiai specifinį metodą. Funkcija lizdas bendru atveju nežino, kokį konkrečiai kodą ji iškviečia.

Klasė Paukštis gali turėti savo supaprastintą metodo Perėti versiją, kuri iš bėdos tinka bet kokiam paukščiui. Kitais atvejai metodas Perėti gali būti šioje klasėje tik deklaruotas (abstraktus), neturintis jokio šį veiksmą atliekančio kodo. Abstrakčių metodų turinti klasė vadinama abstrakčia klase. Bet kurio realiai egzistuojančio objekto tikroji klasė negali būti abstrakti, tačiau gali būti kildinama iš abstrakčios klasės. Vien abstrakčius metodus turinti klasė pagal apibrėžimą artima interfeisui, tačiau programavimo kalbose jie aprašomi skirtingais raktažodžiais.

Kai kurios programavimo kalbos leidžia paveldimumą iš kelių klasių, tačiau dauguma leidžia paveldimumą tik iš vienos tėvinės klasės. Dažnai pasitaikantis kompromisas yra leisti paveldimumą iš vienos interfeisu nesančios klasės bei tuo pat metu iš neriboto skaičiaus interfeisų.

Kitos klasės kontekste apibrėžta klasė vadinama vidine (angl. inner class, member class). Vidinės klasės kodas pasiekia visas gaubiančiosios klasės duomenų struktūras (taip pat ir privačias).

Klasės pačios yra objektai. Jas sukuria klasių kroviklis.


Šiame straipsnyje naudojami diskutuotini terminai.
Daugiau apie kompiuterinius terminus skaitykite žodynėlyje.
Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com