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

Autor: Laura McKinney
Data Utworzenia: 2 Kwiecień 2021
Data Aktualizacji: 3 Lipiec 2024
Anonim
Różnica między pakietami i interfejsami w Javie - Technologia
Różnica między pakietami i interfejsami w Javie - Technologia

Zawartość


Pakiety i interfejsy działają jak kontener. Klasy mogą wykorzystywać zawartość pakietów i interfejsów, odpowiednio je importując i implementując. 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 inne różnice za pomocą tabeli porównawczej.

  1. Wykres porównania
  2. Definicja
  3. Kluczowe różnice
  4. Wniosek

Wykres porównania

Podstawa do porównaniaPakietyInterfejsy
PodstawowyPakiety to grupa klas i / lub interfejsów razem.Interfejsy to grupa metod abstrakcyjnych i pól stałych.
Słowo kluczowePakiety są tworzone za pomocą słowa kluczowego „Pakiet”.Interfejs tworzony jest za pomocą słowa kluczowego „Interfejs”.
Składniapakiet nazwa_pakietu;
klasa publiczna nazwa_klasy {
.
(ciało klasy)
.
}
interfejs nazwa_interfejsu {
zmienna deklaracja;
deklaracja metody;
}
DostępPakiet można zaimportować Interfejs może zostać rozszerzony o inny interfejs i zaimplementowany przez klasę.
Słowo kluczowe dostępu Paczki można importować za pomocą słowa kluczowego „import”.Interfejsy można implementować za pomocą słowa kluczowego „implement”.


Definicja paczek

Pakiety to kolekcja lub grupy różnych klas i interfejsów. Klasy w pakietach są ze sobą powiązane w pewnym zakresie lub przez dziedziczenie. Możesz także stworzyć swój pakiet i używać go w swoim programie.

Tworzenie pakietu

Aby utworzyć pakiet, wykonaj następujące czynności.

  1. Otwórz plik, a następnie zadeklaruj nazwę pakietu na górze pliku, tak jak nazwa pakietu to nazwa, którą chcesz nadać pakietowi.
  2. Następnie definiujesz klasę, którą chcesz umieścić w pakiecie i pamiętasz, że deklarujesz ją jako publiczną.
  3. Zapisz plik jako plik .java, a następnie skompiluj plik, a następnie dla tego pliku zostanie wyświetlony plik „.class”.
  4. Aby utworzyć pakiet dla tego pliku, użyto polecenia „javac -d. nazwa_pliku.java. Możesz zobaczyć, że pakiet został utworzony z plikiem „.class” w bieżącym katalogu. Aby umieścić go w katalogu nadrzędnym, użyj „javac -d. . polecenie nazwa_pliku.java ”.
  5. Możesz także utworzyć podpakiet, podając nazwę paczki na górze pliku.

pakiet Mypackage; public class myclass {public void displayMypackage () {system.out.ln ("metoda displayMypackage klasy 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 programie jest „import”. Instrukcja importu może być napisana na dwa sposoby lub można powiedzieć, że istnieją dwa sposoby uzyskania dostępu do dowolnego pakietu. Po pierwsze, jeśli chcesz użyć konkretnej klasy z pakietu, po słowie kluczowym „import” następuje nazwa pakietu, a następnie operator kropki i nazwa klasy, której chcesz użyć z pakietu. Po drugie, jeśli chcesz użyć wielu klas zawartych w pakietach, po słowie kluczowym importu następuje nazwa pakietu, następnie kropka i operator „*”.

import nazwa_pakietu. Nazwa klasy; lub zaimportuj paczkę. *;

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

Zobaczmy teraz użycie pakietu z przykładem.

import Mypackage. myclass {class TestMypackage {public static void main (string args) {myclass ob1 = nowa myclass (); ob1.displayMypackage (); }} // metoda wyjściowa displayMypackage klasy myclass pakietu Mypackage.

W powyższym kodzie klasa TestMypackage zaimportowała pakiet Mypackage i zastosowała metodę displayMypackage ().

Definicja interfejsu

Interfejs jest rodzajem klasy, ale różni się tym, że metody zadeklarowane w interfejsie są abstrakcyjne, co oznacza, że ​​metody są tylko deklarowane, ale nie są zdefiniowane. Pola w interfejsie są zawsze publiczne, statyczne, końcowe. Pola muszą zostać zainicjowane w momencie deklaracji. Metody zadeklarowane przez interfejs są zdefiniowane przez klasę, która implementuje ten interfejs zgodnie z jego wymaganiami. Ponieważ metody w interfejsie nie wykonują żadnej funkcji, nie ma więc potrzeby tworzenia żadnego obiektu interfejsu. Dlatego dla interfejsu nie można utworzyć żadnego obiektu.

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

powierzchnia interfejsu {float pi = 3.14; float find_area (float a, float b) {} klasa Circle implementuje obszar {float find_area (float a, float b) {return (pi * a * a); } Class Shapes {public static void main (string args) {Area A = new Area (); Okrąg C = nowy okrąg (); A = C; liczba zmiennoprzecinkowa F = powierzchnia. find_area (10,10); system.out.ln („Obszar koła to:” + F); }

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

  1. Pakiet to grupa klas i interfejsów razem, natomiast interfejs to grupa metod abstrakcyjnych.
  2. Pakiet jest tworzony za pomocą słowa kluczowego pakiet podczas gdy interfejs jest tworzony za pomocą słowa kluczowego berło.
  3. Jeśli ma zostać użyta klasa lub interfejs w pakiecie, pakiet należy zaimportować, a interfejs należy zaimplementować.

Wniosek:

Zarówno pakiety, jak i interfejs są kontenerami. Pakiet zmniejsza rozmiar kodu, ponieważ po prostu importujemy klasę, która ma być używana, zamiast ponownie ją definiować.Podczas gdy interfejs zmniejsza nieporozumienia występujące podczas wielokrotnego dziedziczenia, ponieważ w przypadku wielokrotnego dziedziczenia klasa dziedzicząca nie musi decydować, która definicja metody, którą powinna dziedziczyć, zamiast tego określa własną.