Klassi ja liidese erinevus Java-s

Autor: Laura McKinney
Loomise Kuupäev: 2 Aprill 2021
Värskenduse Kuupäev: 10 Mai 2024
Anonim
Публичное собеседование: Junior Java Developer. Пример, как происходит защита проекта после курсов.
Videot: Публичное собеседование: Junior Java Developer. Пример, как происходит защита проекта после курсов.

Sisu


Klassi ja liidest kasutatakse mõlema jaoks uute referentstüüpide loomiseks. Klass on väljade ja meetodite kogum, mis töötavad väljadel. Liidesel on täiesti abstraktsed meetodid, st meetodid kellegagi. Liides on süntaktiliselt sarnane klassiga, kuid klassi ja liidese vahel on suur erinevus, mida saab klassiks muuta, kuid liidest ei saa kunagi realiseerida. Nii et õpiksime allpool näidatud võrdlustabeliga tundma õppida veel mõnda erinevust klassi ja liidese vahel.

  1. Võrdlusdiagramm
  2. Definitsioon
  3. Peamised erinevused
  4. Järeldus

Võrdlusdiagramm

Võrdluse alusKlassLiides
PõhilineObjektide loomiseks on klass klassifitseeritud.Liidest ei saa kunagi realiseerida, kuna meetodid ei suuda kutsudes toiminguid teha.
Märksõnaklassliides
JuurdepääsumäärajaKlassi liikmed võivad olla era-, avalikud või kaitstud.Liidese liikmed on alati avalikud.
Meetodid Klassi meetodid on määratletud konkreetse toimingu tegemiseks.Liidese meetodid on puhtalt abstraktsed.
Rakendage / laiendageKlass saab rakendada suvalist arvu liideseid ja laiendada ainult ühte klassi.Liides võib laiendada mitut liidest, kuid ei saa ühtegi liidest rakendada.
Konstruktor Klassil võivad olla konstruktorid muutujate lähtestamiseks.Liidesel ei saa kunagi olla konstruktorit, kuna lähtestamiseks pole peaaegu ühtegi muutujat.


Klassi määratlus

Klass on Java programmeerimise kõige olulisem aspekt, ilma klassideta ei saa Java-programmi rakendada. Klass loob viitetüübid ja neid viitetüüpe kasutatakse objektide loomiseks. Klassil on allkiri ja korpus. Klassi allkirjastamisel on klassi nimi ja teave, mis näitab, kas klass on teise klassi pärandanud. Klassi kehas on väljad ja meetodid, mis nendel väljadel töötavad. Klass luuakse märksõna abil klass. Võimaldab meil vaadata, kuidas klass kuulutada.

klass klassi_nimi {/ * väljad ... meetodid * /}

Klassi kiirendamisel sisaldab iga loodud objekt koopia väljadest ja meetoditest koos nendega. Klassis deklareeritud väljad ja liikmed võivad olla staatilised või mittestaatilised. Staatiliste liikmete väärtus on iga objekti puhul konstantne, samas kui mittestaatilisi liikmeid lähtestab iga objekt vastavalt vajadusele erinevalt.


Klassi liikmetel on juurdepääsunäitajad, mis otsustavad liikmete nähtavuse ja juurdepääsetavuse kasutajale või alaklassidele. Juurdepääsu spetsifikaadid on avalikud, privaatsed ja kaitstud. Klassi saab pärida mõni teine ​​klass, kasutades juurdepääsu spetsifikaatorit, mis otsustab alamklassi (pärandiklass) suveklassi (päritud klass) liikmete nähtavuse. Seega täidab klass objektipõhises programmeerimises andmete peitmise ja kapseldamise kontseptsiooni.

Liidese määratlus

Liides on ka Java-s määratletud viitetüüpide hulgas. Liidese tähtsus on see, et Javas saab klass pärida ainult ühe klassi. Selle piirangu vältimiseks tutvustasid Java kujundajad liidese kontseptsiooni. Liides on süntaktiliselt sarnane klassiga, kuid sellel puudub väljadeklaratsioon ja liidese sisestel meetoditel puudub rakendus. Liides deklareeritakse märksõna abil liides. Vaatame liidese deklaratsiooni.

liidese liides_nimi {tüüp var_nimi = väärtus; tüüp meetod1 (parameetrite loend); tüüp2 (parameetrite loend); . . }

Liides ei määratle ühtegi selle sees deklareeritud meetodit, kuna sellel puuduvad väljad, milles töötada. Kuna liidese sees olev meetod ei tee ühtegi toimingut, ei saa liidest kunagi realiseerida. Kui liideses on mõni väljaliige, tuleb see lähtestada nende deklareerimise ajal. Liides ei sisalda kunagi ühtegi konstruktorit, kuna sellel puuduvad väljaliikmed initsialiseerimiseks. Niisiis, liides määratleb ainult selle, mida klass peab tegema, selle asemel, kuidas seda teha.

Kui loodud liidest on märksõna abil võimalik rakendada suvalise arvu klasside kaudu tööriistad. Kuid liidest rakendavad klassid peavad määratlema kõik liidese sees olevad meetodid. Liides võib pärida ka teise liidese abil laiendada märksõna. Kui klass rakendab liidest, mis laiendab teist liidest. Seejärel peab klass määratlema mõlema ahelas esineva liidese meetodid. Liidese sisesed meetodid peavad olema alati avalikud, kuna neile peavad olema juurdepääs neid rakendavad klassid.

Klassi ja liidese peamised erinevused Java-s

  1. Klassi saab kiirendada, luues oma objektid. Liides ei ole kunagi teostatav, kuna liidese sees deklareeritud meetodid on abstraktsed ega tee mingeid toiminguid, seega pole mingit liidese kiirendamist vaja kasutada.
  2. Klass deklareeritakse märksõna klassi abil. Samal viisil luuakse liides märksõna liidese abil.
  3. Klassi liikmetel võib olla juurdepääsunäitaja nagu avalik, privaatne, kaitstud. Kuid liidese liikmed on alati avalikud, kuna neile peavad juurde pääsema neid rakendavad klassid.
  4. Klassisisesed meetodid on määratletud toimingu tegemiseks klassis deklareeritud väljadel. Kuna liides puudub väljade deklaratsioonis, on liidese sisesed meetodid puhtalt abstraktsed.
  5. Klass võib rakendada suvalist arvu liideseid, kuid võib laiendada ainult ühte superklassi. Liides võib laiendada mis tahes arvu liideseid, kuid ei saa ühtegi liidest rakendada.
  6. Klassil on määratletud konstruktorid muutuja initsialiseerimiseks. Kuid liidesel pole ühtegi konstruktorit, kuna puuduvad väljad, mida lähtestada. Liidese väljad lähtestatakse ainult nende deklareerimise ajal.

Järeldus:

Nii klassidel kui liidestel on oma tähtsus. Klassi kasutatakse siis, kui peame määratlema, kuidas seda ülesannet täidetakse. Liidest kasutatakse siis, kui peame teadma, mis ülesande tuleb täita.