Doporučená, 2024

Redakce Choice

Rozdíl mezi balíčky a rozhraními v Javě

Obaly a rozhraní fungují jako kontejner. Obsah v balíčcích a rozhraních mohou třídy používat importem a implementací odpovídajícím způsobem. Základním rozdílem mezi balíčky a rozhraními je, že balíček obsahuje skupinu tříd a rozhraní, zatímco rozhraní obsahuje metody a pole. Podívejme se na některé další rozdíly pomocí srovnávací tabulky.

Srovnávací graf

Základ pro porovnáníBalíčkyRozhraní
ZákladníBalíčky jsou skupinou tříd a / nebo rozhraní.Rozhraní je skupina abstraktních metod a konstantních polí.
Klíčové slovoBalíčky jsou vytvořeny pomocí klíčového slova „Package“.Rozhraní je vytvořeno pomocí klíčového slova "Interface".
Syntaxpackage package_name;
public class class_name {
.
(tělo třídy)
.
}
rozhraní interface_name {
variabilní prohlášení;
prohlášení o metodě;
}
PřístupLze importovat balíčekRozhraní může být rozšířeno o další rozhraní a implementováno třídou.
Přístupové klíčové slovoBalíč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 jsou vzájemně propojeny 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

Pro vytvoření balíčku postupujte podle následujících kroků.

  1. Otevřete soubor a poté deklarujte název balíčku v horní části souboru, například [package package_name; ] název balíčku je název, který chcete balíku poskytnout.
  2. Dále definujete třídu, kterou chcete vložit do balíčku, a nezapomeňte, že ji deklarujete jako veřejnou.
  3. Uložte soubor jako soubor .java a poté soubor zkompilovat, poté pro tento soubor získáte soubor „.class“.
  4. Pro vytvoření balíčku pro tento soubor je použit příkaz „javac -d. file_name.java. Vidíte, že balíček je vytvořen v souboru „.class“ v aktuálním adresáři. Umístit ho do nadřazeného adresáře pomocí „javac -d. . file_name.java ”.
  5. Můžete také vytvořit dílčí balíček deklarováním názvu dílčího balíčku jako [package package_name1. package_name2; ] v horní části souboru.
 balíček Mypackage; public class myclass {public void displayMypackage () {system.out.println ("metoda displayMypackage třídy myclass balíku Mypackage"); } 

Použití balíčku

Balíky vytvořené nebo dostupné v adresáři mohou být použity v programu pomocí příkazu import. Klíčové slovo použité k importu jakéhokoli balíčku ve vašem programu je „import“. Příkaz importu lze psát dvěma způsoby, nebo můžete říci, že existují dva způsoby přístupu k libovolnému balíčku. Za prvé, pokud chcete použít určitou třídu z balíčku, za klíčovým slovem „import“ následuje název balíčku, za kterým následuje operátor tečky a název třídy, který chcete z balíčku použít. Za druhé, pokud chcete použít mnoho tříd, které jsou obsaženy v balíčcích, pak za klíčovým slovem import následuje název balíčku, za kterým následuje tečka a operátor „*“.

 import název_balíku. jméno třídy; nebo import název_balíku. *; 

Ve výše uvedeném kódu můžete vidět znak *, který označuje, že druhá metoda importuje všechny třídy obsažené v balíčcích.

Podívejme se nyní na použití balíčku s příkladem.

 importovat Mypackage. myclass {class TestMypackage {public static void main (řetězec args []) {myclass ob1 = new myclass (); ob1.displayMypackage (); }} // způsob výstupu 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ě deklarace. Metody deklarované rozhraním jsou definovány třídou, která implementuje toto rozhraní podle svého požadavku. Vzhledem k tomu, že metody v rozhraní neprovádějí žádnou funkci, není třeba vytvářet žádné objekty rozhraní. Pro rozhraní tedy nelze vytvořit žádný objekt.

Rozhraní může také zdědit jiné rozhraní, ale třída zdědí takové rozhraní musí také provádět všechny metody zděděného rozhraní. Vzhledem k tomu, že pole jsou inicializována v okamžiku jejich deklarace v rozhraní, takže v rozhraní není potřeba konstruktor, rozhraní tedy neobsahuje žádný konstruktor. Podívejme se na příklad vytvoření a použití rozhraní.

 rozhraní Oblast {float pi = 3, 14; float find_area (float a, float b) {} třída Kruh implementuje oblast {float find_area (float a, float b) {return (pi * a * a); } Tvary třídy {public static void main (řetězec args []) {Oblast A = nová oblast (); Kruh C = nový kruh (); A = C; float F = Oblast. find_area (10, 10); system.out.println ("Oblast kruhu je:" + F); } 

Ve výše uvedeném kódu jsme vytvořili rozhraní Area a třída Circle implementovala rozhraní Area. Pole „pi“ bylo inicializováno v rozhraní v době jeho prohlášení. Třída Circle definovala abstraktní metodu oblasti třídy podle svého požadavku.

Klíčové rozdíly mezi balíčky a rozhraními v jazyce Java

  1. Balíček je skupina tříd a rozhraní, zatímco rozhraní je skupina abstraktních metod.
  2. Balík je vytvořen pomocí balíčku klíčových slov , zatímco rozhraní je vytvořeno pomocí rozhraní klíčových slov.
  3. Pokud má být v balíčku použito třídy nebo rozhraní, balíček musí být importován, zatímco rozhraní musí být implementováno.

Závěr:

Oba balíčky a rozhraní jsou kontejnery. Balíček snižuje velikost kódu, protože právě importujeme třídu, která má být použita, místo aby ji znovu definovala. Vzhledem k tomu, že rozhraní redukuje vzniklé zmatky při vícečetných dědičnostech, protože v případě vícenásobných dědičností se zděděná třída nemusí rozhodnout, že definice toho, kterou metodu by měla zdědit, ale definuje její vlastní.

Top