Põhierinevus – klass vs liides
Objektorienteeritud programmeerimine (OOP) on tarkvaraarenduse tavaline paradigma. See aitab klasside ja objektide abil programmeerimisse tuua reaalseid stsenaariume. Klass on kavand objekti loomiseks. Programmeerija saab luua klassi omaduste ja meetoditega. Õpilane ja õpetaja on objektid. Objekti loomist nimetatakse instantseerimiseks. OOP kasutab ka liideseid. Liidesed ja klass võivad tunduda sarnased, kuid neil on erinevus. Selles artiklis käsitletakse klassi ja liidese erinevust. Klassi ja liidese peamine erinevus seisneb selles, et klass on võrdlustüüp, mis on objekti eksemplareerimise plaan, samas kui liides on võrdlustüüp, mida ei saa kasutada objekti eksemplarimiseks.
Mis on klass?
OOP-is käsitletakse kõike objektina. Ilma klassita ei ole võimalik objekti luua. Klass on kavand objekti loomiseks. Maja ehitamisel joonistab arhitekt plaani. Kava on sarnane klassiga. Maja on objektiga sarnane. Klassis on plaan ehitada objekt. Objekt on see, mis luuakse klassi abil.
Klass sisaldab atribuute ja meetodeid. Õpilasel võivad olla sellised omadused nagu nimi, hinne, indeksnumber. Õpilasel võivad olla sellised meetodid nagu lugemine, kõndimine, õppimine. Luuakse klass vajalike omaduste ja meetoditega.
Klassi loomise süntaks paljudes programmeerimiskeeltes on järgmine. See luuakse märksõna klassi abil.
klassi klassi_nimi {
// omadused
//meetodid
}
Programmeerimiskeeled, nagu C ja Java, järgivad klassi abil objekti loomiseks sarnast süntaksit. Oletame, et klassi nimi on õpilane.
Õpilane s1=uus õpilane ();
See s1 on objekt. Atribuutidele mälu eraldamiseks kasutatakse märksõna "uus". Klassil on ka konstruktor atribuutide või muutujate lähtestamiseks.
Klassi liikmetel, nagu atribuudid ja meetodid, on juurdepääsu modifikaatorid. Juurdepääsuspetsifikaatorid kirjeldavad nende liikmete juurdepääsetavust ja nähtavust teistele klassidele. Klassi liikmetel võivad olla juurdepääsuspetsifikaadid, nagu avalik, privaatne ja kaitstud. Avalikud liikmed on juurdepääsetavad teistele klassidele. Privaatsed liikmed on juurdepääsetavad ainult klassile. Kaitstud liikmed on saadaval klassis ja asjakohastes alamklassides.
Mis on liides?
Abstraktsioon on objektorienteeritud programmeerimise tugisammas. See on juurutamise üksikasjade peitmine ja funktsioonide kuvamine kasutajale. Abstraktsioon saavutatakse abstraktsete klasside ja liideste abil. Abstraktsel meetodil pole teostust. Klassi, mis sisaldab vähem alt ühte abstraktset meetodit, nimetatakse abstraktseks klassiks.
Kui on kaks abstraktset klassi, tuleks rakendada nendes klassides deklareeritud meetodeid. Nende meetodite rakendamiseks kasutatakse uut klassi. Kui mõlemal klassil oleks sama meetod, võib see põhjustada ebaselguse probleemi. Seetõttu on programmeerimiskeeltel, nagu Java ja C, liides.
Liidesed sisaldavad ainult meetodite deklaratsiooni. Rakendusmeetod puudub. Samuti ei saa liideseid kasutada objektide loomiseks. Neid kasutatakse mitme pärimise toetamiseks ja koodi kaitsmiseks.
Liidese süntaks on järgmine. Liides kasutage märksõna "liides".
liidese liidese_nimi{
tüüp meetod1(parameetrite_loend);
tüüp meetod2(parameetrite_loend);
}
Vastav alt ül altoodule on liidestel ainult deklaratsioon. Määratlust ei ole. Seega ei saa liidesed objekte luua. See annab ainult abstraktse ülevaate sellest, mis liides on. Liideses deklareeritud meetodeid saab rakendada ühe või mitme klassi poolt. Klass kasutab liidese juurutamiseks märksõna "implement". Vaadake allolevat näidet, mis on kirjutatud Java abil.
Joonis 01: Programm, mis kasutab liideseid
Vastav alt ül altoodud programmile on A ja B liidesed. Liidesel A on meetodi deklaratsioon, milleks on summa(). Liidesel B on meetodi deklaratsioon sub(). Klass C rakendab mõlemat liidest, mis on A ja B. Seetõttu määratleb klass C nii summa() kui ka sub() meetodid. Pärast C-tüüpi objekti loomist on võimalik kutsuda mõlemad meetodid sum() ja sub().
Liideses deklareeritud meetodid peavad alati olema avalikud, kuna rakendusklassid määravad need. Liides võib pärida ka teiselt liideselt.
Millised on klassi ja liidese sarnasused?
- Mõlemad on võrdlustüübid.
- Mõlemad on seotud objektorienteeritud programmeerimisega.
Mis vahe on klassil ja liidesel?
Klass vs liides |
|
Klass on viitetüüp, mis on objekti loomise plaan. | Liides on viitetüüp, mida ei saa luua. |
Objekti teostus | |
Objekti loomiseks kasutatakse klassi. | Liidest ei saa luua, kuna meetodid ei suuda ühtegi toimingut sooritada. |
Ehitaja | |
Klass sisaldab konstruktorit muutujate lähtestamiseks. | Liides ei sisalda konstruktorit, kuna need pole peaaegu üldse initsialiseeritavad muutujad. |
Märksõna | |
Klass kasutab märksõna „klass”. | Liides kasutab märksõna „liides”. |
Juurdepääsu täpsustaja | |
Klassi liikmed võivad olla privaatsed, avalikud ja kaitstud. | Liidese liikmed peaksid olema alati avalikud, kuna rakendusklassid määravad nad. |
Kokkuvõte – klass vs liides
Objektorienteeritud programmeerimises kasutatakse laialdaselt klasse ja liideseid. Klassi ja liidese erinevus seisneb selles, et klass on viitetüüp, mis on objekti eksemplareerimise plaan, ja liides on viitetüüp, mida ei saa kasutada objekti eksemplarimiseks. Klass võib rakendada palju liideseid. Kuid see võib laiendada ainult ühte superklassi. Liideses võib pärida palju liideseid, kuid rakendust ei saa olla. Mõlemal on oma tähtsus. Programmeerija saab neid kasutada vastav alt arendustarkvarale.
Laadi alla PDF-klass vs liides
Saate alla laadida selle artikli PDF-versiooni ja kasutada seda võrguühenduseta kasutamiseks vastav alt tsitaadi märkusele. Laadige PDF-versioon alla siit Klassi ja liidese erinevus