Rozdíl mezi balíčky a rozhraními v Javě
Obsah
Balíčky i rozhraní fungují jako kontejner. Obsah v balíčcích a rozhraních mohou třídy použít importem a implementací odpovídajícím způsobem. Základní rozdíl mezi balíčky a rozhraními je v tom, že balíček obsahuje skupinu tříd a rozhraní, zatímco rozhraní obsahuje metody a pole. Podívejme se na další rozdíly pomocí srovnávací tabulky.
- Srovnávací tabulka
- Definice
- Klíčové rozdíly
- Závěr
Srovnávací tabulka
Základ pro srovnání | Balíčky | Rozhraní |
---|---|---|
Základní | Balíčky je skupina tříd a / nebo rozhraní společně. | Rozhraní je skupina abstraktních metod a konstantních polí. |
Klíčové slovo | Balíčky jsou vytvářeny pomocí klíčového slova „Package“. | Rozhraní se vytváří pomocí klíčového slova „Rozhraní“. |
Syntax | package package_name; public class class_name { . (tělo třídy) . } | interface interface_name { variabilní deklarace; deklarace metody; } |
Přístup | Balíček lze importovat | Rozhraní lze rozšířit o jiné rozhraní a implementovat třídou. |
Přístup k klíčovému slovu | Balíčky lze importovat pomocí klíčového slova „import“. | Rozhraní lze implementovat pomocí klíčového slova „implementovat“. |
Definice balíčků
Balíčky jsou kolekce nebo skupiny různých tříd a rozhraní. Třídy v balíčcích spolu navzájem souvisí v určitém rozsahu nebo dědičností. Můžete také vytvořit svůj balíček a použít jej pro svůj program.
Vytvoření balíčku
Při vytváření balíčku postupujte podle následujících kroků.
- Otevřete soubor a poté deklarujte název balíčku v horní části souboru, například název balíčku je název, který chcete tomuto balíčku dát.
- Dále definujete třídu, kterou chcete do balíčku vložit, a pamatujete, že ji deklarujete jako veřejnou.
- Uložte soubor jako soubor .java a poté jej zkompilujte a pro tento soubor se získá „.class“.
- Pro vytvoření balíčku pro tento soubor je použit příkaz „javac -d. file_name.java. Můžete vidět, že balíček je vytvořen obsahující soubor „.class“ v aktuálním adresáři. Chcete-li jej umístit do nadřazeného adresáře, použijte „javac -d. . file_name.java ”.
- Můžete také vytvořit dílčí balíček deklarováním názvu dílčího balíčku jako v horní části souboru.
balíček Mypackage; public class myclass {public void displayMypackage () {system.out.ln ("method displayMypackage třídy myclass balíčku Mypackage"); }
Používání balíčku
Balíčky vytvořené nebo dostupné v adresáři lze v programu použít pomocí příkazu import. Klíčovým slovem použitým k importu jakéhokoli balíčku v programu je „import“. Příkaz importu lze napsat dvěma způsoby, nebo můžete říci, že existují dva způsoby přístupu k jakémukoli balíčku. Nejprve, pokud chcete použít konkrétní třídu z balíčku, za klíčovým slovem „import“ následuje název balíčku, dále operátor tečky a název třídy, který chcete z balíčku použít. Zadruhé, pokud chcete použít mnoho tříd obsažených v balíčcích, pak za klíčovým slovem importu následuje název balíčku dále následovaný tečkou a operátorem „*“.
import package_name. jméno třídy; nebo importovat název_balíku. *;
Ve výše uvedeném kódu vidíte znak *, který označuje, že druhá metoda importuje všechny třídy obsažené v balíčcích.
Nyní si ukážeme použití balíčku s příkladem.
import Mypackage. myclass {class TestMypackage {public static void main (string args) {myclass ob1 = new myclass (); ob1.displayMypackage (); }} // output method displayMypackage třídy myclass balíčku Mypackage.
Ve výše uvedeném kódu třída TestMypackage importovala balíček Mypackage a použila metodu displayMypackage ().
Definice rozhraní
Rozhraní je druh třídy, ale liší se v tom smyslu, že metody deklarované v rozhraní jsou abstraktní, což znamená, že metody jsou deklarovány, ale nejsou definovány. Pole v rozhraní jsou vždy veřejná, statická, konečná. Pole musí být inicializována v době prohlášení. Metody deklarované rozhraním jsou definovány třídou, která implementuje toto rozhraní podle jeho požadavku. Protože metody v rozhraní nevykonávají žádnou funkci, není tedy možné vytvářet žádný objekt rozhraní. Z tohoto důvodu nelze pro rozhraní vytvořit žádný objekt.
Rozhraní může také zdědit druhé rozhraní, ale třída zděděná takovým rozhraním musí také implementovat všechny metody zděděného rozhraní. Protože jsou pole inicializována v okamžiku jejich deklarace v rozhraní, takže v rozhraní není potřeba konstruktor, rozhraní neobsahuje žádný konstruktor. Podívejme se na příklad vytváření a používání rozhraní.
plocha rozhraní {float pi = 3,14; float find_area (float a, float b) {} třída Circle implementuje Area {float find_area (float a, float b) {return (pi * a * a); } Tvary tříd {public static void main (řetězcové args) {Area A = new Area (); Kruh C = nový kruh (); A = C; float F = plocha. find_area (10,10); system.out.ln ("Oblast kruhu je:" + F); }
Ve výše uvedeném kódu jsme vytvořili oblast rozhraní a třída Circle implementovala oblast rozhraní. Pole „pi“ bylo inicializováno v rozhraní v době jeho deklarace. Třída Circle definovala abstraktní metodu oblasti třídy podle jejího požadavku.
- Balíček je skupina tříd a rozhraní společně, zatímco rozhraní je skupina abstraktních metod.
- Balíček je vytvořen pomocí klíčového slova balík zatímco rozhraní je vytvořeno pomocí klíčového slova rozhraní.
- Pokud má být použita třída nebo rozhraní uvnitř balíčku, musí být importován balíček, zatímco rozhraní musí být implementováno.
Závěr:
Oba balíčky a rozhraní jsou kontejnery. Balíček zmenší velikost kódu, protože právě importujeme třídu, která se má použít, místo aby ji znovu definovali.Vzhledem k tomu, že rozhraní snižuje záměny, k nimž došlo při vícenásobném dědictví, protože v případě vícenásobného dědictví třída dědičnosti nerozhoduje o tom, jakou definici metody by měla zdědit, místo toho definuje svou vlastní.