Zalecane, 2024

Wybór Redakcji

Różnice między pakietami i interfejsami w Javie

Pakiety i interfejsy działają jako pojemnik. Zawartość w pakietach i interfejsach może być używana przez klasy przez odpowiednie importowanie i implementowanie. Podstawowa różnica między pakietami i interfejsami polega na tym, że pakiet zawiera grupę klas i interfejsów, podczas gdy interfejs zawiera metody i pola. Przeanalizujmy kilka innych różnic za pomocą tabeli porównawczej.

Wykres porównania

Podstawa do porównaniaPakietyInterfejsy
PodstawowyPakiety to grupa klas i / lub interfejsów.Interfejsy to grupa metod abstrakcyjnych i pól stałych.
Słowo kluczowePakiety są tworzone za pomocą słowa kluczowego "Pakiet".Interfejs jest tworzony za pomocą słowa kluczowego "Interfejs".
Składniapakiet nazwa_pakietu;
public class class_name {
.
(ciało klasy)
.
}
interface nazwa_interfejsu {name
deklaracja zmienna;
deklaracja metody;
}
DostępPakiet można zaimportowaćInterfejs można rozszerzyć o inny interfejs i zaimplementować go w klasie.
Uzyskaj słowo kluczowePakiety można importować za pomocą słowa kluczowego "import".Interfejsy mogą być implementowane za pomocą słowa kluczowego "implement".

Definicja pakietów

Pakiety to kolekcja lub grupy różnych klas i interfejsów. Klasy w pakietach są ze sobą powiązane w pewnym zakresie lub dziedziczeniu. Możesz także stworzyć swój pakiet i użyć go do swojego programu.

Tworzenie pakietu

Aby utworzyć pakiet, wykonaj następujące kroki.

  1. Otwórz plik, a następnie zadeklaruj nazwę pakietu na górze pliku, na przykład [package nazwa_pakietu; ] nazwa pakietu to nazwa, którą chcesz nadać pakietowi.
  2. Następnie zdefiniuj klasę, którą chcesz umieścić w pakiecie, i pamiętaj, że deklarujesz ją jako publiczną.
  3. Zapisz plik jako plik .java, a następnie skompiluj plik, a następnie pobierz plik ".class" dla tego pliku.
  4. Aby utworzyć pakiet dla tego pliku, użytą komendą jest "javac -d. file_name.java. Możesz zobaczyć, że pakiet jest tworzony zawierający plik ".class" w bieżącym katalogu. Aby umieścić go w katalogu nadrzędnym, użyj "javac -d. . file_name.java "command.
  5. Można również utworzyć podpakiet, deklarując nazwę podokresu jako [nazwa_pakietu_pakietu1. nazwa_pakietu2; ] u góry pliku.
 pakiet Mypackage; public class myclass {public void displayMypackage () {system.out.println ("wyświetlanie metodyPakowanie myclass pakietu" Mypackage "); } 

Korzystanie z pakietu

Pakiety utworzone lub dostępne w katalogu mogą być używane w programie za pomocą instrukcji importu. Słowem kluczowym używanym do importowania dowolnego pakietu w twoim programie jest "import". Oświadczenie importu można zapisać na dwa sposoby lub można powiedzieć, że istnieją dwa sposoby uzyskania dostępu do dowolnej paczki. Po pierwsze, jeśli chcesz użyć konkretnej klasy z pakietu, po słowach "import" następują nazwa pakietu, po której następuje operator kropki i nazwa klasy, której chcesz użyć z pakietu. Po drugie, jeśli chcesz używać wielu klas, które są zawarte w pakietach, po słowach importowanych następuje nazwa pakietu, a następnie kropka i operator "*".

 import nazwa_pakietu. Nazwa klasy; lub importuj nazwa_pakietu. *; 

W powyższym kodzie widoczny jest znak * wskazujący, że druga metoda importuje wszystkie klasy zawarte w pakietach.

Teraz przyjrzyjmy się używaniu pakietu z przykładem.

 importuj Mypackage. myclass {class TestMypackage {public static void main (string args []) {myclass ob1 = new myclass (); ob1.displayMypackage (); }} // metoda wyjścia displayMypackage z klasy myclass pakietu Mypackage. 

W powyższym kodzie klasa TestMypackage zaimportowała pakiet Mypackage i użyła jego metody displayMypackage ().

Definicja interfejsu

Interfejs jest rodzajem klasy, ale różni się w pewnym sensie tym, że metody zadeklarowane w interfejsie są abstrakcyjne, co oznacza, że ​​metody są zadeklarowane, ale nie są zdefiniowane. Pola w interfejsie są zawsze publiczne, statyczne, ostateczne. Pola muszą być zainicjalizowane w momencie deklaracji. Metody zadeklarowane przez interfejs są zdefiniowane przez klasę, która implementuje ten interfejs zgodnie z jego wymaganiami. Ponieważ metody interfejsu nie pełnią żadnej funkcji, więc nie ma potrzeby tworzenia żadnego obiektu interfejsu. W związku z tym nie można utworzyć żadnego obiektu dla interfejsu.

Interfejs może również dziedziczyć drugi interfejs, ale klasa dziedzicząca taki interfejs musi również implementować wszystkie metody odziedziczonego interfejsu. Ponieważ pola są inicjowane w momencie deklaracji w interfejsie, więc nie ma potrzeby konstruowania konstruktora w interfejsie, dlatego interfejs nie zawiera żadnego konstruktora. Zobaczmy przykład tworzenia i używania interfejsu.

 interfejs Area {float pi = 3, 14; float find_area (float a, float b) {} class Circle implementuje obszar {float find_area (float a, float b) {return (pi * a * a); } Kształty klas {public static void main (string args []) {Obszar A = nowy obszar (); Okrąg C = nowy okrąg (); A = C; float F = Area. find_area (10, 10); system.out.println ("Obszar koła to:" + F); } 

W powyższym kodzie stworzyliśmy obszar interfejsu, a klasa Circle zaimplementowała interfejs Area. Pole "pi" zostało zainicjowane w interfejsie w momencie deklaracji. Koło klasy zdefiniowało abstrakcyjną metodę obszaru klas zgodnie z jej wymaganiami.

Kluczowe różnice między pakietami i interfejsami w Javie

  1. Pakiet to grupa klas i interfejsów, natomiast interfejs to grupa metod abstrakcyjnych.
  2. Pakiet jest tworzony przy użyciu pakietu słów kluczowych , natomiast interfejs jest tworzony przy użyciu interfejsu słów kluczowych.
  3. Jeśli ma być używana klasa lub interfejs wewnątrz pakietu, pakiet musi zostać zaimportowany, podczas gdy interfejs musi zostać zaimplementowany.

Wniosek:

Zarówno pakiety, jak i interfejs są kontenerami. Pakiet zmniejsza rozmiar kodu, ponieważ właśnie importujemy klasę, która ma zostać użyta, zamiast ją ponownie zdefiniować. Podczas gdy interfejs zmniejsza konfuzje występujące podczas wielokrotnych dziedziczeń, ponieważ w przypadku dziedziczenia wielokrotnego klasa odziedziczająca nie musi decydować, że definicja której metody powinna dziedziczyć zamiast niej, definiuje własną.

Top