Vertailukaavio
Vertailun perusteet | luokka | liitäntä |
---|---|---|
perustiedot | Luokka luodaan esineiden luomiseksi. | Käyttöliittymää ei voi koskaan tuoda esiin, koska menetelmät eivät kykene suorittamaan minkäänlaisia toimia vetoamisen yhteydessä. |
avainsana | luokka | liitäntä |
Access-määritys | Luokan jäsenet voivat olla yksityisiä, julkisia tai suojattuja. | Käyttöliittymän jäsenet ovat aina julkisia. |
menetelmät | Luokan menetelmät määritellään suorittamaan tietty toiminto. | Liitännän menetelmät ovat puhtaasti abstrakteja. |
Laitteen / Extend | Luokka voi toteuttaa minkä tahansa määrän rajapintoja ja voi laajentaa vain yhden luokan. | Liitäntä voi laajentaa useita rajapintoja, mutta ei voi toteuttaa mitään rajapintaa. |
Rakentaja | Luokalla voi olla rakentajia muuttujien alustamiseksi. | Rajapinnalla ei voi koskaan olla rakentajaa, koska alustusta ei juuri ole. |
Luokan määritelmä
Luokka on tärkein osa Java-ohjelmointia ilman luokkia, joita ei voi toteuttaa Java-ohjelmassa. Luokka luo referenssityyppejä ja näitä viite- tyyppejä käytetään objektien luomiseen. Luokalla on allekirjoitus ja elin. Luokan allekirjoituksella on luokan nimi ja tiedot, jotka kertovat, onko luokka perinyt toisen luokan. Luokan rungossa on kenttiä ja menetelmiä, jotka toimivat näillä kentillä. Luokka luodaan käyttämällä avainsanaluokkaa. Katsotaan, miten luokkaa voidaan julistaa.
luokan luokan_nimi {/ * kentät ... menetelmät * /}
Kun luokka on julkaistu, jokainen luotu objekti sisältää kopion kentistä ja menetelmistä niiden kanssa. Luokan sisällä ilmoitetut kentät ja jäsenet voivat olla staattisia tai ei-staattisia. Staattisten jäsenten arvo on vakio jokaiselle objektille, kun taas ei-staattiset jäsenet alustavat kukin kohde eri tavalla sen vaatimuksen mukaan.
Luokan jäsenillä on pääsy-määrittelijät, jotka päättävät jäsenten näkyvyyden ja saatavuuden käyttäjälle tai alaluokille. Käyttöoikeudet ovat julkisia, yksityisiä ja suojattuja. Luokka voidaan periä toisella luokalla käyttämällä pääsy-määrittelyä, joka päättää superklassin (perinnöllinen luokka) jäsenten näkyvyyden alaluokassa (perintöluokka). Täten luokka täyttää datan piilottamisen ja kapseloinnin käsitteen Object Oriented ohjelmoinnissa.
Liitännän määritelmä
Käyttöliittymä on myös Java: ssa määriteltyjen vertailutyyppien joukossa. Rajapinnan tärkeys on, että Java-luokassa luokka voi periä vain yhden luokan. Tämän rajoituksen välttämiseksi Java-suunnittelijat esittivät käyttöliittymän käsitteen. Käyttöliittymä on syntaktisesti samanlainen kuin luokka, mutta sillä ei ole kenttäilmoitusta, eikä rajapinnan sisäisillä menetelmillä ole mitään toteutusta. Käyttöliittymä ilmoitetaan avainsanaliitännän avulla . Katsokaamme rajapinnan ilmoitusta.
käyttöliittymän_nimi {tyyppi var_name = arvo; tyyppi menetelmä1 (parametriluettelo); tyyppi menetelmä2 (parametriluettelo); . . }
Liitäntä ei määrittele mitään sen sisällä ilmoitettua menetelmää, koska se puuttuu kentistä toimiakseen. Vain siksi, että mikä tahansa käyttöliittymän sisäinen menetelmä ei suorita mitään toimintoja, käyttöliittymää ei voi koskaan päivittää. Jos rajapinnassa on jokin kenttäjäsen, se on alustettava ilmoituksen tekohetkellä. Liitäntä ei sisällä koskaan rakentajia, koska se puuttuu kenttäelimistä alustamaan. Niinpä rajapinta määrittelee vain sen, mitä luokan on tehtävä sen sijaan, miten se on tehtävä.
Luodun käyttöliittymän voidaan toteuttaa millä tahansa luokalla käyttämällä avainsanan työkaluja . Liitännän toteuttavien luokkien on kuitenkin määritettävä kaikki rajapinnan sisäiset menetelmät. Liitäntä voi myös periä toisen käyttöliittymän käyttämällä laajennettua avainsanaa. Jos luokka toteuttaa rajapinnan, joka laajentaa toista liitäntää. Sitten luokan on määriteltävä sekä ketjussa esiintyvien rajapintojen menetelmät. Käyttöliittymän sisäisten menetelmien on aina oltava julkisia, koska niitä on käytettävä niitä käyttävien luokkien avulla.
Tärkeimmät erot luokassa ja käyttöliittymässä Java: ssa
- Luokka voidaan tuoda esiin luomalla sen kohteet. Käyttöliittymä ei ole koskaan toteutettu, koska käyttöliittymän sisällä ilmoitetut menetelmät ovat abstrakteja eivätkä suorita mitään toimintaa, joten mitään käyttöliittymää ei voi käyttää.
- Luokka ilmoitetaan käyttämällä avainsanaluokkaa. Samalla tavalla luodaan käyttöliittymä avainsanaliitännän avulla.
- Luokan jäsenillä voi olla pääsymääritys, kuten julkinen, yksityinen, suojattu. Liittymän jäsenet ovat kuitenkin aina julkisia, koska niitä on käytettävä niitä käyttävien luokkien kautta.
- Luokan sisäiset menetelmät määritellään suorittamaan toimia luokassa ilmoitetuilla kentillä. Koska rajapinnasta puuttuu kenttien ilmoitus, rajapinnan sisäiset menetelmät ovat puhtaasti abstrakteja.
- Luokka voi toteuttaa minkä tahansa määrän rajapintoja, mutta voi laajentaa vain yhden superluokan. Liitäntä voi laajentaa minkä tahansa määrän rajapintoja, mutta ei voi toteuttaa mitään rajapintaa.
- Luokassa on sen sisällä määriteltyjä konstruktoreita saadakseen muuttujan alustettua. Liitännällä ei kuitenkaan ole konstruktoreita, koska aloja ei ole alustettavissa. Käyttöliittymän kentät alustetaan vain niiden ilmoituksen yhteydessä.
johtopäätös:
Sekä luokilla että rajapinnoilla on oma merkitys. Luokkaa käytetään, kun meidän on määritettävä, miten tehtävä tehdään. Käyttöliittymää käytetään, kun meidän on tiedettävä, mikä tehtävä on tehtävä.