Forskellen mellem pakke og interface i Java

Det vigtigste forskel mellem pakke og interface i Java er det Pakken hjælper med at kategorisere klasserne metodisk for at få adgang til og vedligeholde dem let, mens interface hjælper med at implementere flere arv og til at opnå abstraktion.

Java er et af de mest populære programmeringssprog. Den største fordel ved Java er, at det understøtter objektorienteret programmering. Denne metode tillader modellering af objekter i den virkelige verden i software. En klasse er en plan for at oprette et objekt. Hvert objekt indeholder data eller felter til at beskrive attributterne eller egenskaberne og metoderne til at beskrive adfærd. Denne artikel diskuterer to koncepter relateret til OOP i Java i Java, der er pakke og interface.

INDHOLD

1. Oversigt og nøgleforskel
2. Hvad er pakke i Java
3. Hvad er interface i Java
4. Sammenligning side ved side - Pakke vs interface i Java i tabelform
5. Opsummering

Hvad er pakke i Java?

Java leverer et stort antal klasser. Det kan være vanskeligt at holde alle klasser i en enkelt mappe, fordi det er svært at få adgang til. Dette kan påvirke programadministrationen. Java bruger pakker til at arrangere klasser. Det ligner en mappe. Java API grupperer klasser i forskellige pakker i henhold til funktionaliteten. Derfor indeholder hver pakke et relateret sæt klasser.

Eksempel på pakker i Java

Få eksempler på pakker er som følger. Pakken java.io indeholder klasser til input, output. Det inkluderer File, PrintStream, BufferInputStream osv. Pakken java.net indeholder de netværksrelaterede klasser. Nogle eksempler er URL, Socket, ServerSocket. Pakken java.awt indeholder alle de klasser, der kræves for at oprette grafiske brugergrænseflader. Disse er få Java API-pakker.

Når programmereren ønsker at bruge en bestemt klasse i programmet, skal han importere den pakke. Hvis programmereren ønsker at bruge klassen BufferInputStream i pakken java.io, skal han skrive importmeddelelsen som følger.

import java.util.BufferInoutStream;

Nedenstående erklæring vil importere alle klasser i util-pakken.

import java.util. *;

Det er også muligt at oprette brugerdefinerede pakker.

medarbejder i pakken;

medarbejder i offentlig klasse

I henhold til ovenstående eksempel er medarbejderen pakkenavnet. Medarbejderklassen er en del af medarbejderpakken. Denne fil gemmes som Medarbejder.java i medarbejderpakken.

Derudover er det muligt at importere en offentlig klasse fra en pakke til en anden. Se følgende eksempel.

Figur 01: Klasse A

Figur 02: Klasse B

Klasse A er i pakke 1, og den indeholder den offentlige metode, der kaldes display. Klasse B findes i pakke 2, og den indeholder hovedmetoden. Selvom de er i separate pakker; klasse B kan oprette et objekt i klasse A ved at importere pakke1. Efter import af pakke 1 har klasse B adgang til dataene og metoderne i klasse A.

Generelt hjælper Package i Java med at organisere projektfilerne. Dette er meget nyttigt, når du udvikler et stort system, fordi det tillader lagring af alle filer på metodisk måde. Derudover tillader Java API-pakker programmererne at bruge allerede eksisterende klasser.

Hvad er interface i Java?

Nogle gange kender programmereren muligvis ikke definitionen af ​​metoden. I disse situationer kan programmereren kun erklære metoden. En abstrakt metode er en metode, der ikke har en definition. Det har kun erklæringen. Når der er mindst en abstrakt metode, bliver denne klasse en abstrakt klasse. Desuden kan den abstrakte klasse indeholde abstrakte metoder såvel som ikke-abstrakte metoder. Programmereren kan ikke oprette objekter ud af abstrakte klasser.

Når en klasse udvider en abstrakt klasse, skal den nye klasse definere al den abstrakte metode i den abstrakte klasse. Antag med andre ord, at abstrakt klasse A har en abstrakt metode kaldet display. Klasse B udvider klasse A. Derefter skal klasse B definere metodedisplayet.

Eksempel på interface i Java

Antag, at både A og B er abstrakte klasser. Hvis klasse C udvider A og B, skal klasse C definere de abstrakte metoder for begge klasser. Dette er flere arv. Java understøtter ikke flere arv. For at implementere det skal programmereren bruge grænseflader. Hvis A og B er grænseflader, kan klasse C implementere dem. Se følgende eksempel.

Figur 03: Grænseflade A

Figur 04: Grænseflade B

Grænsefladen A har display1-abstrakt metode, og interface B har display2-abstrakt metode.

Figur 05: Klasse C

Klasse C implementerer både A- og B-grænseflader. Derfor bør det definere begge metoder.

Figur 06: Hovedmetode

Nu i hovedmetoden er det muligt at oprette et objekt med C og kalde begge metoder. Ligeledes hjælper grænseflader med at implementere flere arv i Java.

Bortset fra multiple arv hjælper grænseflader med at opnå abstraktion. Det er et hovedkoncept i OOP. Abstraktion gør det muligt at skjule implementeringsdetaljerne og kun vise brugerens funktionalitet. Desuden tillader det at fokusere på, hvad objektet gør i stedet for, hvordan det gøres. Da en grænseflade består af abstrakte metoder, hjælper det med at arkivere abstraktion.

Hvad er forskellen mellem pakke og interface i Java?

Pakke er en gruppe af relaterede klasser, der giver adgangsbeskyttelse og navneområdeadministration. Interface er en referencetype, der ligner klassen, som er en samling af abstrakte metoder. Pakken hjælper med at kategorisere klasserne metodisk for at få adgang til og vedligeholde dem let. På den anden side hjælper Interface med at implementere flere arv og til at opnå abstraktion. Dette er den største forskel mellem pakke og interface i Java. Endvidere er måden at skrive en pakke på med små bogstaver som java.util, java.awt. Hvis navnet på interface er Area, skrives det i interface Area.

Resume - Pakke vs interface i Java

Forskellen mellem pakke og interface i Java er, at pakken hjælper med at kategorisere klasserne metodisk for at få adgang til og vedligeholde dem let, mens interface hjælper med at implementere flere arv og til at opnå abstraktion.

Reference:

1.Tutorials Point. "Java-pakker." Tutorials Point, 24. mar. 2018. Tilgængelig her 
2.Tutorials Point. "Java-grænseflader." Tutorials Point, 24. mar. 2018. Tilgængelig her