Forskel mellem pakker og grænseflader i Java
Indhold
Pakker og grænseflader fungerer begge som en container. Indholdet i pakker og grænseflader kan bruges af klasserne ved at importere og implementere det tilsvarende. Den grundlæggende forskel mellem pakker og grænseflader er, at en pakke indeholder en gruppe klasser og grænseflader, mens en grænseflade indeholder metoder og felter. Lad os undersøge nogle andre forskelle ved hjælp af sammenligningstabel.
- Sammenligningstabel
- Definition
- Vigtige forskelle
- Konklusion
Sammenligningstabel
Grundlag for sammenligning | pakker | interfaces |
---|---|---|
Grundlæggende | Pakker er en gruppe af klasser og / eller grænseflader sammen. | Interfaces er en gruppe af abstrakte metoder og konstante felter. |
Søgeord | Pakker oprettes ved hjælp af "Pakke" nøgleord. | Interface oprettes ved hjælp af "Interface" nøgleord. |
Syntaks | pakke pakkenavn; offentlig klasse klassens navn { . (klasse af klasse) . } | interface interface_navn { variabel erklæring; metodedeklaration; } |
Adgang | En pakke kan importeres | En grænseflade kan udvides med en anden grænseflade og implementeres af klassen. |
Adgang til nøgleord | Pakker kan importeres ved hjælp af "import" nøgleord. | Grænseflader kan implementeres ved hjælp af "implementer" nøgleord. |
Definition af pakker
Pakker er samling eller grupper af forskellige klasser og grænseflader. Klasserne i pakker er relateret til hinanden i et vist omfang eller efter arv. Du kan også oprette din pakke og bruge den til dit program.
Oprettelse af en pakke
Følg nedenstående trin for at oprette en pakke.
- Åbn en fil, og erklær derefter navnet på pakken øverst i filen, ligesom pakkenavnet er det navn, du vil give pakken.
- Dernæst definerer du en klasse, du vil lægge i pakken, og husk, at du erklærer den for offentlig.
- Gem filen som en .java-fil, og kompilér derefter filen, så fås ".class" til den fil.
- For at oprette en pakke til denne fil er den anvendte kommando “javac -d. file_name.java. Du kan se, at pakken er oprettet, der indeholder en ”.klasse” -fil i det aktuelle bibliotek. Brug “javac -d til at placere det i overordnet bibliotek. . file_name.java ”kommando.
- Du kan også oprette en underpakke ved at angive navnet på pakken som øverst i filen.
pakke Mypackage; public class myclass {public void displayMypackage () {system.out.ln ("metode displayMypackage of class myclass of package Mypackage"); }
Brug af pakken
De pakker, der er oprettet eller tilgængelige i biblioteket, kan bruges i programmet ved hjælp af en importerklæring. Nøgleordet, der bruges til at importere en hvilken som helst pakke i dit program, er “import”. Importerklæringen kan skrives på to måder, eller du kan sige, at der er to måder at få adgang til en hvilken som helst pakke. For det første, hvis du vil bruge en bestemt klasse fra en pakke, efterfølges "import" -søgeordet af pakkenavnet yderligere efterfulgt af dot-operatoren og det klassens navn, som du vil bruge fra pakken. For det andet, hvis du vil bruge mange klasser, der er indeholdt i pakkerne, følges import-nøgleordet af pakkenavnet yderligere efterfulgt af prikken og “*” -operatøren.
import pakkenavn. class_name; eller importer pakkenavn. *;
I ovenstående kode kan du se * -tegnet, der angiver, at den anden metode importerer alle klasser indeholdt i pakkerne.
Lad os nu se brugen af pakken med et eksempel.
import Mypackage. myclass {class TestMypackage {public static void main (string args) {myclass ob1 = new myclass (); ob1.displayMypackage (); }} // outputmetode displayMackage of class myclass of package Mypackage.
I ovenstående kode har klassen TestMypackage importeret pakken Mypackage og brugt dens displayMypackage () -metode.
Definition af interface
Interface er en slags klasse, men adskiller sig i en forstand, at de metoder, der er erklæret i interface, er abstrakte, hvilket betyder, at metoderne kun er deklareret, men ikke defineret. Felterne i grænsefladen er altid offentlige, statiske, endelige. Felterne skal initialiseres på erklæringstidspunktet. Metoderne, der er deklareret af grænsefladen, defineres af den klasse, der implementerer denne grænseflade i henhold til dens krav. Da metoderne i grænsefladen ikke udfører nogen funktion, så det ikke er nyttigt at oprette noget objekt på grænsefladen. Derfor kan der ikke oprettes noget objekt til grænsefladen.
Grænsefladen kan også arve den anden grænseflade, men klassen, der arver en sådan grænseflade, skal også implementere alle metoder til den arvede grænseflade. Da felterne initialiseres på tidspunktet for deres erklæring i grænsefladen, så der ikke er behov for konstruktør i grænsefladen, indeholder grænsefladen ikke nogen konstruktør. Lad os se eksemplet på at oprette og bruge en grænseflade.
interface Area {float pi = 3,14; float find_area (float a, float b) {} klasse Cirkel implementerer Areal {float find_area (float a, float b) {return (pi * a * a); } Klasseformer {public static void main (string args) {Area A = new Area (); Cirkel C = ny cirkel (); A = C; float F = Areal. find_area (10,10); system.out.ln ("Cirkelområdet er:" + F); }
I ovenstående kode havde vi oprettet et interface-område, og klassen Circle har implementeret interface-området. Feltet "pi" er initialiseret i grænsefladen på tidspunktet for dens erklæring. Klassen Circle har defineret den abstrakte metode for klasseområdet efter dets krav.
- En pakke er en gruppe af klasser og grænseflader sammen, mens en grænseflade er en gruppe af abstrakte metoder.
- Pakken oprettes ved hjælp af et nøgleord pakke der henviser til, at der oprettes en grænseflade ved hjælp af et nøgleord grænseflade.
- Hvis der skal bruges en klasse eller en grænseflade i en pakke, er pakken, der skal importeres, mens en grænseflade skal implementeres.
Konklusion:
Både pakker og interface er containerne. Pakken reducerer størrelsen på koden, da vi bare importerer den klasse, der skal bruges, i stedet for igen at definere den.Mens grænsefladen mindsker forvirringerne, der forekom under flere arv, for i tilfælde af flere arv, skal arveklassen ikke beslutte den definition af, hvilken metode den skal arve, i stedet definerer den sin egen.