Nøgleforskellen mellem Package og Interface i Java er, at Package hjælper med at kategorisere klasserne metodisk for nemt at få adgang til og vedligeholde dem, mens Interface hjælper med at implementere flere arv og at opnå abstraktion.
Java er et af de mest populære programmeringssprog. Den største fordel ved Java er, at den understøtter objektorienteret programmering. Denne metode tillader modellering af objekter i den virkelige verden i software. En klasse er en plan for at skabe 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 begreber relateret til OOP i Java i Java, som er Pakke og Interface.
Hvad er pakke i Java?
Java tilbyder et stort antal klasser. Det kan være svært at opbevare alle klasserne i en enkelt mappe, fordi det er svært at få adgang til. Dette kan påvirke programmets håndterbarhed. 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. Java.io-pakken indeholder input, output-understøttende klasser. Det inkluderer File, PrintStream, BufferInputStream osv. Java.net-pakken indeholder de netværksrelaterede klasser. Nogle eksempler er URL, Socket, ServerSocket. Java.awt-pakken indeholder alle de klasser, der kræves for at bygge grafiske brugergrænseflader. Det er få Java API-pakker.
Når programmøren ønsker at bruge en bestemt klasse i programmet, bør han importere den pakke. Hvis programmøren ønsker at bruge BufferInputStream-klassen i java.io-pakken, skal han skrive importerklæringen som følger.
import java.util. BufferInoutStream;
Below statement vil importere alle klasserne i util-pakken.
import java.util.;
Det er også muligt at oprette brugerdefinerede pakker.
pakkemedarbejder;
offentlig klassemedarbejder {
}
Ifølge ovenstående eksempel er medarbejderen pakkenavnet. Medarbejderklassen er en del af medarbejderpakken. Denne fil gemmes som Employee.java i medarbejderpakken.
Yderligere 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 kaldet display. Klasse B er i pakke 2, og den indeholder hovedmetoden. Selvom de er i separate pakker; klasse B kan oprette et objekt af klasse A ved at importere pakke1. Efter import af pakke 1 har klasse B adgang til data og metoder for klasse A.
Samlet set hjælper Pakke i Java med at organisere projektfilerne. Dette er meget nyttigt, når man udvikler store system, fordi det tillader lagring af alle filer på en metodisk måde. Derudover tillader Java API-pakkerne programmørerne at bruge allerede eksisterende klasser.
Hvad er Interface i Java?
Nogle gange kender programmøren måske ikke definitionen af metoden. I disse situationer kan programmøren kun erklære metoden. En abstrakt metode er en metode, der ikke har en definition. Den har kun erklæringen. Når der er mindst én abstrakt metode, bliver den klasse en abstrakt klasse. Desuden kan den abstrakte klasse indeholde abstrakte metoder såvel som ikke-abstrakte metoder. Programmøren kan ikke oprette objekter ud fra abstrakte klasser.
Når en klasse udvider en abstrakt klasse, skal den nye klasse definere al den abstrakte metode i den abstrakte klasse. Med andre ord, antag at abstrakt klasse A har en abstrakt metode kaldet display. Klasse B udvider klasse A. Så skal klasse B definere metodevisningen.
Eksempel på grænseflade i Java
Antag, at både A og B er abstrakte klasser. Hvis klasse C udvider A og B, skal denne klasse C definere de abstrakte metoder for begge klasser. Dette er multipel arv. Java understøtter ikke multipel nedarvning. For at implementere det skal programmøren bruge grænseflader. Hvis A og B er grænseflader, kan klasse C implementere dem. Se følgende eksempel.
Figur 03: Interface A
Figur 04: Interface 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 den definere begge metoder.
Figur 06: Hovedmetode
Nu i hovedmetoden er det muligt at oprette et objekt af C og kalde begge metoder. Ligeledes hjælper grænseflader med at implementere multipel nedarvning i Java.
Udover 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 funktionaliteten til brugeren. Yderligere giver det mulighed for 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 den med at arkivere abstraktion.
Hvad er forskellen mellem pakke og grænseflade i Java?
Package er en gruppe af relaterede klasser, der giver adgangsbeskyttelse og navneområdestyring. Interface er en referencetype svarende til klasse, som er en samling abstrakte metoder. Pakke hjælper med at kategorisere klasserne metodisk for nemt at få adgang til og vedligeholde dem. På den anden side hjælper Interface med at implementere flere arv og at opnå abstraktion. Dette er hovedforskellen mellem Pakke og Interface i Java. Yderligere er måden at skrive en pakke på med små bogstaver såsom java.util, java.awt. Hvis navnet på grænsefladen er Area, skrives det i grænsefladeområdet.
Oversigt – Pakke vs grænseflade i Java
Forskellen mellem Package og Interface i Java er, at Package hjælper med at kategorisere klasserne metodisk for nemt at få adgang til og vedligeholde dem, mens Interface hjælper med at implementere flere arv og at opnå abstraktion.