Ero Java-luokan ja käyttöliittymän välillä

Kirjoittaja: Laura McKinney
Luomispäivä: 2 Huhtikuu 2021
Päivityspäivä: 13 Saattaa 2024
Anonim
Ero Java-luokan ja käyttöliittymän välillä - Tekniikka
Ero Java-luokan ja käyttöliittymän välillä - Tekniikka

Sisältö


Luokkaa ja käyttöliittymää käytetään luomaan uusia viitetyyppejä. Luokka on kokoelma kenttiä ja menetelmiä, jotka toimivat kentät. Rajapinnassa on täysin abstraktit menetelmät, ts. Menetelmät kenen kanssa tahansa. Rajapinta on syntaktisesti samanlainen kuin luokka, mutta luokan ja rajapinnan välillä on suuri ero, joka luokka voidaan välittää, mutta rajapinta ei voi koskaan toteutua. Joten voimme oppia lisää eroa luokan ja käyttöliittymän välillä alla olevan vertailutaulun avulla.

  1. Vertailutaulukko
  2. Määritelmä
  3. Keskeiset erot
  4. johtopäätös

Vertailutaulukko

Vertailun perusteetluokkaKäyttöliittymä
perustiedotLuokka pilkotaan objektien luomiseksi.Rajapinta ei voi koskaan välittyä, koska menetelmät eivät pysty suorittamaan mitään kutsuun liittyviä toimintoja.
avainsanaluokkakäyttöliittymä
KäyttöoikeustiedotLuokan jäsenet voivat olla yksityisiä, julkisia tai suojattuja.Rajapinnan jäsenet ovat aina julkisia.
menetelmät Luokan menetelmät on määritelty suorittamaan tietty toiminto.Rajapinnan menetelmät ovat puhtaasti abstrakteja.
Laitteen / ExtendLuokka voi toteuttaa minkä tahansa määrän rajapintoja ja voi laajentaa vain yhden luokan.Rajapinta voi laajentaa useita rajapintoja, mutta se ei voi toteuttaa mitään rajapintoja.
Rakentaja Luokassa voi olla rakentajia muuttujien alustamiseksi.Rajapinnassa ei voi koskaan olla rakentajaa, koska muuttujaa ei juuri ole alustamassa.


Määritelmä luokka

Luokka on Java-ohjelmoinnin tärkein osa ilman luokkia, joita ei voi toteuttaa Java-ohjelmassa. Luokka luo viitetyyppejä ja näitä viitetyyppejä käytetään objektien luomiseen. Luokalla on allekirjoitus ja runko. Oppitunnin allekirjoituksella on luokan nimi ja tiedot, jotka kertovat, onko luokka perinyt toisen luokan. Luokan rungossa on kentät ja menetelmät, jotka toimivat kyseisillä kentillä. Luokka luodaan avainsanalla luokka. Annetaan meidän nähdä kuinka luokka julistetaan.

luokka luokan_nimi {/ * kentät ... menetelmät * /}

Kun luokka on toteutettu, jokainen luotu objekti sisältää kopion kentistä ja menetelmistä niiden kanssa. Luokan sisällä ilmoitetut kentät ja jäsenet voivat olla staattisia tai epästaattisia. Staattisten jäsenten arvo on vakio jokaiselle objektille, kun taas jokainen objekti alustaa ei-staattiset jäsenet eri tavalla sen vaatimuksen mukaan.


Luokan jäsenillä on pääsymääritelmät, jotka päättävät jäsenten näkyvyydestä ja saavutettavuudesta käyttäjälle tai alaluokille. Käyttöoikeuksien määrittäjät ovat julkisia, yksityisiä ja suojattuja. Luokka voi periä toisen luokan käyttöoikeusspesifikaattorilla, joka päättää superluokan (peritty luokka) jäsenten näkyvyyden alaluokassa (perintöluokka). Täten luokka täyttää tiedon piilottamisen ja kapseloinnin käsitteen olio-ohjelmointiin.

Rajapinnan määritelmä

Rajapinta on myös Java-määriteltyjen vertailutyyppien joukossa. Rajapinnan merkitys on, että Java-luokassa luokka voi periä vain yhden luokan. Tämän rajoituksen välttämiseksi Java-suunnittelijat ottivat käyttöön käyttöliittymäkonseptin. Rajapinta on syntaktisesti samanlainen kuin luokka, mutta siitä puuttuu kenttäilmoitus ja rajapinnan sisällä olevilla menetelmillä ei ole toteutusta. Rajapinta ilmoitetaan avainsanalla käyttöliittymä. Katsotaanpa käyttöliittymän ilmoitusta.

käyttöliittymä_nimi {tyyppi var_name = arvo; tyypin menetelmä1 (parametriluettelo); tyyppi menetelmä2 (parametriluettelo); . . }

Rajapinta ei määrittele mitään sen sisällä ilmoitettua menetelmää, koska siitä puuttuu kentät, joita varten sitä voidaan käyttää. Koska rajapinnan sisällä oleva menetelmä ei suorita mitään toimia, rajapinta ei voi koskaan toteutua. Jos rajapinnassa on kenttäjäsen, se on alustettava heidän ilmoituksensa yhteydessä. Rajapinta ei koskaan sisällä konstruktoreita, koska siitä puuttuu kenttäjäseniä alustamaan. Joten rajapinta määrittelee vain sen, mitä luokan on tehtävä sen sijaan, kuinka sen on tehtävä.

Luodun käyttöliittymän voi toteuttaa mikä tahansa lukumäärä luokkia avainsanan avulla työkoneet. Mutta rajapinnan toteuttavien luokkien on määriteltävä kaikki menetelmät rajapinnan sisällä. Rajapinta voi myös periä toisen käyttöliittymän käyttämällä pidentää avainsana. Jos luokka toteuttaa käyttöliittymän, joka laajentaa toisen rajapinnan. Sitten luokan on määritettävä molempien ketjussa esiintyvien rajapintojen menetelmät. Rajapinnan sisällä olevien menetelmien on aina oltava julkisia, koska niitä toteuttavien luokkien on käytettävä niitä.

Java-luokan ja käyttöliittymän tärkeimmät erot

  1. Luokka voidaan toteuttaa luomalla sen objektit. Rajapinta ei koskaan toteutetta, koska rajapinnan sisällä ilmoitetut menetelmät ovat abstrakteja eikä suorita mitään toimia, joten minkään rajapinnan pikaistamiseen ei ole tarvetta.
  2. Luokka ilmoitetaan käyttämällä avainsanaluokkaa. Samalla tavalla käyttöliittymä luodaan avainsanaliittymän avulla.
  3. Luokan jäsenillä voi olla pääsymäärittely, kuten julkinen, yksityinen, suojattu. Mutta rajapinnan jäsenet ovat aina julkisia, koska heidät on saatava käyttöönsä niitä toteuttavien luokkien toimesta.
  4. Luokan sisällä olevat menetelmät on määritelty suorittamaan toiminto luokassa ilmoitetuissa kentissä. Koska rajapinnasta puuttuu kenttien ilmoittaminen, rajapinnan sisällä olevat menetelmät ovat puhtaasti abstrakteja.
  5. Luokka voi toteuttaa minkä tahansa määrän rajapintoja, mutta voi ulottaa vain yhden superluokan. Rajapinta voi laajentaa rajattoman määrän rajapintoja, mutta ei voi toteuttaa mitään rajapintoja.
  6. Luokassa on määritelty rakentajat, jotta muuttuja alustetaan. Mutta rajapinnalla ei ole konstruktoreita, koska ei ole alustettavia kenttiä. Rajapinnan kentät alustetaan vain niiden ilmoittamishetkellä.

johtopäätös:

Sekä luokilla että rajapinnoilla on oma merkityksensä. Luokkaa käytetään, kun meidän on määritettävä, miten tehtävä suoritettaisiin. Käyttöliittymää käytetään, kun meidän on tiedettävä, mikä tehtävä on tehtävä.