Porovnávacia tabuľka
Základ pre porovnanie | Trieda | Rozhranie |
---|---|---|
základné | Trieda je inštancia na vytvorenie objektov. | Rozhranie nemôže byť nikdy inštančné, pretože metódy nie sú schopné vykonať žiadnu akciu pri vyvolaní. |
kľúčové | trieda | rozhranie |
Špecifikátor prístupu | Členovia triedy môžu byť súkromní, verejní alebo chránení. | Členovia rozhrania sú vždy verejné. |
metódy | Metódy triedy sú definované tak, aby vykonávali špecifickú akciu. | Metódy v rozhraní sú čisto abstraktné. |
Implementovať / predĺžiť | Trieda môže implementovať ľubovoľný počet rozhraní a môže rozšíriť iba jednu triedu. | Rozhranie môže rozšíriť viac rozhraní, ale nemôže implementovať žiadne rozhranie. |
staviteľ | Trieda môže mať konštruktory na inicializáciu premenných. | Rozhranie nemôže mať nikdy konštruktora, pretože neexistuje takmer žiadna premenná na inicializáciu. |
Definícia triedy
Trieda je najdôležitejším aspektom programovania Java bez tried, ktoré nemôžete implementovať java program. Trieda vytvára referenčné typy a tieto referenčné typy sa používajú na vytváranie objektov. Trieda má podpis a telo. Podpis triedy má názov a informácie triedy, ktoré určujú, či trieda zdedila inú triedu. Telo triedy má pole a metódy, ktoré pôsobia na týchto poliach. Trieda je vytvorená pomocou triedy kľúčových slov. Umožňuje nám zistiť, ako deklarovať triedu.
class class_name {/ * polia ... metódy * /}
Keď je trieda inštanktovaná, každý vytvorený objekt obsahuje kópiu polí a metód s nimi. Polia a členov deklarované v triede môžu byť statické alebo nonstaticky. Hodnota statického člena je konštantná pre každý objekt, zatiaľ čo neštatívne členy sú inicializované každým objektom inak podľa jeho požiadaviek.
Členovia triedy majú špecifikátory prístupu, ktoré určujú viditeľnosť a prístupnosť členov pre užívateľa alebo podtriedy. Špecifikátory prístupu sú verejné, súkromné a chránené. Triedu môže zdediť iná trieda s využitím prístupového špecifikátora, ktorý rozhodne o viditeľnosti členov nadradenej triedy (dedičnej triedy) v podtriede (dedičnosť triedy). Takto trieda spĺňa pojem skrývania a zapuzdrenia údajov v programovaní orientovanom na objekt.
Definícia rozhrania
Rozhranie je tiež medzi referenčnými typmi definovanými v jazyku Java. Význam rozhrania spočíva v tom, že v Jave trieda môže zdediť iba jednu triedu. Aby sa zabránilo tomuto obmedzeniu, dizajnéri Java predstavili koncept rozhrania. Rozhranie je syntakticky podobné triede, ale chýba deklarácia poľa a metódy vo vnútri rozhrania nemajú žiadnu implementáciu. Rozhranie je deklarované pomocou rozhrania pre kľúčové slová. Pozrime sa na deklaráciu rozhrania.
rozhranie_menu_zmeny {typ var_name = hodnota; typ metódy1 (zoznam parametrov); typ metódy2 (zoznam parametrov);, , }
Rozhranie neurčuje žiadnu metódu deklarovanú v ňom, pretože v poli nie je k dispozícii. Len preto, že akákoľvek metóda vnútri rozhrania nevykonáva žiadnu akciu, rozhranie nemôže byť nikdy inštančné. Ak rozhranie má nejakého člena poľa, musí sa inicializovať v čase jeho vyhlásenia. Rozhranie nikdy neobsahuje žiadnych konštruktérov, pretože chýbajú členovia polí, aby sa mohli inicializovať. Takže rozhranie definuje len to, čo trieda musí robiť namiesto toho, ako to musí robiť.
Rozhranie vytvorené raz môže byť implementované ľubovoľným počtom tried pomocou kľúčových nástrojov . Triedy implementujúce rozhranie však musia definovať všetky metódy vo vnútri rozhrania. Rozhranie môže tiež dediť ďalšie rozhranie pomocou rozšíreného kľúčového slova. Ak trieda implementuje rozhranie, ktoré rozširuje iné rozhranie. Potom trieda musí definovať metódy oboch rozhraní, ktoré sa objavujú v reťazci. Metódy v rozhraní musia byť vždy verejné, pretože musia byť prístupné triedam, ktoré ich implementujú.
Kľúčové rozdiely medzi triedou a rozhraním v jazyku Java
- Triedu možno vytvoriť pomocou objektov. Rozhranie nie je nikdy inštanktované, pretože metódy deklarované v rozhraní sú abstraktné a nevykonávajú žiadnu akciu, takže nie je možné použiť inštanciu žiadneho rozhrania.
- Trieda je deklarovaná pomocou triedy kľúčových slov. Rovnakým spôsobom je vytvorené rozhranie pomocou rozhrania pre kľúčové slová.
- Členovia triedy môžu mať špecifikátor prístupu ako verejný, súkromný, chránený. Členovia rozhrania sú však vždy verejné, pretože musia byť prístupné triedami, ktoré ich realizujú.
- Metódy vo vnútri triedy sú definované tak, aby vykonali akciu na poliach deklarovaných v triede. Keď rozhranie nemá pri deklarovaní polí, metódy vo vnútri rozhrania sú čisto abstraktné.
- Trieda môže implementovať ľubovoľný počet rozhraní, ale môže rozšíriť len jednu super triedu. Rozhranie môže rozšíriť ľubovoľný počet rozhraní, ale nemôže implementovať žiadne rozhranie.
- Trieda má vnútri definované konštruktory, aby inicializovala premennú. Ale rozhranie nemá žiadne konštruktory, pretože neexistujú polia, ktoré by sa mali inicializovať. Polia rozhrania sa inicializujú len v čase ich vyhlásenia.
záver:
Obe triedy a rozhrania majú svoju vlastnú dôležitosť. Trieda sa používa vtedy, keď potrebujeme definovať, ako sa má úloha vykonať. Rozhranie sa používa, keď potrebujeme vedieť, akú úlohu treba vykonať.