Rekomenduojama, 2024

Redaktoriaus Pasirinkimas

Skirtumas tarp klasės ir sąsajos „Java“

Klasės ir sąsajos naudojamos ir kuriant naujus tipų tipus. Klasė yra laukų ir metodų rinkinys, veikiantis laukuose. Sąsaja turi visiškai abstrakčius metodus, ty metodus niekam. Sąsaja yra sintaksiškai panaši į klasę, tačiau yra didelis skirtumas tarp klasės ir sąsajos, kuri yra klasė, kurią galima išreikšti, tačiau sąsaja niekada negali būti išreikšta. Taigi, sužinokime daugiau skirtumo tarp klasės ir sąsajos, naudojant žemiau pateiktą palyginimo lentelę.

Palyginimo diagrama

Palyginimo pagrindasKlasėSąsaja
PagrindinisKlasė kuriama objektams kurti.Sąsaja niekada negali būti atskleista, nes metodai negali atlikti jokių veiksmų, kuriais remiamasi.
Raktinis žodisklasėsąsaja
Prieigos specifikacijaKlasės nariai gali būti privatūs, vieši arba saugomi.Sąsajos nariai visada yra vieši.
MetodaiKlasės metodai apibrėžti tam, kad atliktų konkretų veiksmą.Sąsajoje naudojami metodai yra tik abstrakčiai.
Įdiegti / išplėstiKlasė gali įgyvendinti bet kokį sąsajos skaičių ir gali išplėsti tik vieną klasę.Sąsaja gali išplėsti kelias sąsajas, bet negali įdiegti jokių sąsajų.
KonstruktoriusKlasė gali turėti konstruktorių, kad inicijuotų kintamuosius.Sąsaja niekada negali turėti konstruktoriaus, nes beveik nėra kintamojo inicijuoti.

Klasės apibrėžimas

Klasė yra svarbiausias „Java“ programavimo aspektas be klasių, kurių negalite įgyvendinti „Java“ programoje. Klasė sukuria referencinius tipus ir šie atskaitos tipai naudojami objektams kurti. Klasė turi parašą ir kūną. Klasės parašas turi klasės pavadinimą ir informaciją, nurodančią, ar klasė paveldėjo kitą klasę. Klasės kūnas turi laukus ir metodus, kurie veikia tose srityse. Klasė sukuriama naudojant raktinių žodžių klasę . Leidžia pamatyti, kaip paskelbti klasę.

 klasės klasės_pavadinimas {/ * laukai ... metodai * /} 

Kai klasė pristato, kiekvienas sukurtas objektas turi laukų ir metodų kopiją su jais. Klasės laukai ir nariai gali būti statiniai arba ne statiniai. Statinis narių skaičius yra pastovus kiekvienam objektui, o ne statiniai nariai inicijuojami kiekvienam objektui skirtingai, atsižvelgiant į jo reikalavimą.

Klasės nariai turi prieigos specifiką, kuris nusprendžia, ar nariai ar poklasiai yra matomi ir prieinami. Prieigos specifikai yra vieši, privatūs ir apsaugoti. Klasę gali paveldėti kita klasė, naudodama prieigos specifiką, kuris nuspręs dėl superklasės (paveldėtos klasės) narių matomumo poklasyje (paveldi klasė). Taigi klasė atitinka duomenų slėpimo ir kapsuliavimo sąvoką objektų orientuotoje programoje.

Sąsajos apibrėžtis

Sąsaja taip pat yra tarp „Java“ apibrėžtų tipų. Sąsajos svarba yra ta, kad „Java“ klasė gali paveldėti tik vieną klasę. Siekiant išvengti šio apribojimo, „Java“ dizaineriai pristatė sąsajos koncepciją. Sąsaja yra sintaksiškai panaši į klasę, tačiau trūksta lauko deklaracijos, o sąsajos viduje esantys metodai neturi jokio įgyvendinimo. Sąsaja deklaruojama naudojant raktinių žodžių sąsają . Pažvelkime sąsajos deklaraciją.

 sąsajos sąsajos_ vardas {tipas var_name = vertė; tipo metodas1 (parametrų sąrašas); tipo metodas2 (parametrų sąrašas); . . } 

Sąsaja neapibrėžia jokio viduje deklaruoto metodo, nes juo trūksta laukų. Tiesiog todėl, kad bet kuris sąsajos viduje atliktas metodas neveikia jokių veiksmų, sąsaja niekada negali būti iš karto atnaujinta. Jei sąsajoje yra bet koks lauko narys, jis turi būti inicijuotas deklaracijos pateikimo metu. Sąsaja niekada neturi jokių konstruktorių, nes trūksta lauko narių, kad gautų inicijavimą. Taigi sąsaja tik apibrėžia, ką klasė turi daryti, o ne tai, kaip ji turi daryti.

Sukurta sąsaja gali būti įdiegta bet kokiu klasių skaičiumi naudojant raktinių žodžių įrankius . Tačiau klasės, įgyvendinančios sąsają, turi apibrėžti visus sąsajoje esančius metodus. Sąsaja taip pat gali paveldėti kitą sąsają naudojant išplėstinį raktinį žodį. Jei klasė įdiegia sąsają, kuri išplečia kitą sąsają. Tada klasė turi nustatyti abiejų sąsajų, esančių grandinėje, metodus. Sąsajoje esantys metodai visada turi būti vieši, nes jie turi būti prieinami pagal jas įgyvendinančias klases.

Pagrindiniai skirtumai tarp klasės ir sąsajos „Java“

  1. Klasę galima išreikšti kuriant jo objektus. Sąsaja niekada neatidaroma, nes sąsajoje deklaruoti metodai yra abstraktūs ir neatlieka jokių veiksmų, todėl nėra jokios sąsajos išraiškos.
  2. Klasė deklaruojama naudojant raktinių žodžių klasę. Taip pat sukuriama sąsaja naudojant raktinių žodžių sąsają.
  3. Klasės nariai gali turėti prieigos specifiką, pavyzdžiui, viešą, privatų, apsaugotą. Tačiau sąsajos nariai visada yra vieši, nes jie turi būti prieinami pagal jas įgyvendinančias klases.
  4. Klasės viduje apibrėžti metodai, skirti atlikti veiksmus klasėje deklaruotuose laukuose. Kadangi sąsajoje trūksta laukų deklaravimo, sąsajoje esantys metodai yra tik abstrakčiai.
  5. Klasė gali įgyvendinti bet kokį sąsajų skaičių, tačiau gali pratęsti tik vieną super klasę. Sąsaja gali išplėsti bet kokį sąsajų skaičių, tačiau negali įdiegti jokių sąsajų.
  6. Klasės viduje yra apibrėžti konstruktoriai, kad gautų kintamąjį. Tačiau sąsaja neturi jokių konstruktorių, nes nėra laukų, kuriuos reikia inicijuoti. Sąsajos laukai inicijuojami tik deklaracijos pateikimo metu.

Išvada:

Abi klasės ir sąsajos turi savo svarbą. Klasė naudojama tada, kai reikia apibrėžti, kaip bus atlikta užduotis. Naudojama sąsaja, kai reikia žinoti, kokią užduotį reikia atlikti.

Top