Ajánlott, 2024

Szerkesztő Választása

Különbség a csomagok és az interfészek között a Java-ban

A csomagok és az interfészek mindkettő tartályként működnek. A csomagok és az interfészek tartalmát az osztályok használhatják a megfelelő importálással és végrehajtással. A csomagok és az interfészek közötti alapvető különbség az, hogy egy csomag osztályokat és interfészeket tartalmaz, míg egy interfész módszereket és mezőket tartalmaz. Tanulmányozzunk néhány más különbséget az összehasonlító táblázat segítségével.

Összehasonlító táblázat

Az összehasonlítás alapjacsomagokinterfészek
AlapvetőA csomagok az osztályok és / vagy interfészek csoportja.Az interfészek absztrakt módszerek és állandó mezők csoportja.
KulcsszóA csomagok a "csomag" kulcsszó segítségével jönnek létre.Az interfész az "Interface" kulcsszó használatával jön létre.
Szintaxiscsomagcsomag_név;
nyilvános osztály osztálynév {
.
(osztálycsoport)
.
}
interfész_neve {
változó nyilatkozat;
módszer-nyilatkozat;
}
HozzáférésA csomag importálhatóAz interfész egy másik interfésszel bővíthető, és az osztály megvalósítható.
A kulcsszó eléréseA csomagok importálhatók az "import" kulcsszó használatával.Az interfészek "implementáció" kulcsszóval valósíthatók meg.

A csomagok meghatározása

A csomagok a gyűjtemények vagy a különböző osztályok és interfészek csoportjai. A csomagokban lévő osztályok bizonyos mértékben vagy örökléssel kapcsolódnak egymáshoz. A csomagot is létrehozhatja és használhatja a programhoz.

Csomag létrehozása

A csomag létrehozásához kövesse az alábbi lépéseket.

  1. Nyisson meg egy fájlt, majd adja meg a csomag nevét a fájl tetején, például [csomagcsomag_név; ] a csomag neve az a név, amelyet a csomaghoz adni szeretne.
  2. Ezután definiál egy osztályt, amelyet a csomagba szeretne helyezni, és ne feledje, hogy nyilvánosságra hozza.
  3. Mentse el a fájlt .java fájlként, majd fordítsa le a fájlt, majd a ".class" fájlt kapja meg.
  4. Ahhoz, hogy egy csomagot hozzon létre ehhez a fájlhoz, a használt parancs „javac -d. file_name.java. Láthatjuk, hogy a csomag létrejön, amely tartalmazza az ".class" fájlt az aktuális könyvtárban. A szülőkönyvtár használatához „javac -d. . file_name.java ”parancs.
  5. Az alcsomagot úgy is létrehozhatja, hogy az alcsomag nevét [csomagcsomag_név1 csomagnak] adja. package_name2; ] a fájl tetején.
 csomag Mypackage; public class myclass {public void displayMypackage () {system.out.println ("a Mypackage csomag osztályának MyMage csomagja"); } 

A csomag használata

A könyvtárban létrehozott vagy rendelkezésre álló csomagok importálási nyilatkozattal használhatók a programban. A programba importálni kívánt kulcsszó az „import”. A behozatali nyilatkozat kétféleképpen írható, vagy azt mondhatja, hogy kétféle módon érhető el a csomag. Először is, ha egy adott osztályt szeretne használni egy csomagból, az „import” kulcsszót követi a csomag neve, majd a pont operátor és az osztálynév, amelyet használni kíván a csomagból. Másodszor, ha sok csomagot szeretne használni a csomagokban, akkor az import kulcsszót követi a csomag neve, amelyet a pont és a * * operátor követ.

 csomagnév importálása. osztály név; vagy importáld a csomag_nevet. *; 

A fenti kódban látható a * jel, amely azt jelzi, hogy a második módszer az összes csomagot importálja.

Most nézzük meg a csomag használatát egy példával.

 importálás Mypackage. myclass {class TestMypackage {public static void main (string args []) {myclass ob1 = új myclass (); ob1.displayMypackage (); }} // kimeneti módszer displayMypackage a Mypackage csomag csomagja. 

A fenti kód szerint a TestMypackage osztály a Mypackage csomagot importálta, és a displayMypackage () metódust használta.

Az interfész meghatározása

Az interfész egyfajta osztály, de különbözik abban az értelemben, hogy az interfészben bejelentett módszerek elvontak, azaz a módszereket csak deklarálják, de nem határozzák meg. Az interfész mezõi mindig nyilvánosak, statikusak, véglegesek. A mezőket a bejelentés időpontjában inicializálni kell. Az interfész által bejelentett módszereket az az osztály határozza meg, amely ezt az interfészt az igényének megfelelően hajtja végre. Mivel a kezelőfelület módszerei nem végeznek semmilyen funkciót, ezért nincs lehetőség a felület bármely objektumának létrehozására. Ezért az interfészhez nem hozható létre objektum.

Az interfész örökölheti a másik interfészt, de az ilyen felületet öröklő osztálynak az öröklött felület összes módját is végre kell hajtania. Mivel a mezőket az interfészen való nyilatkozatuk idején inicializálják, így nincs szükség a kivitelezőre az interfészben, így az interfész nem tartalmaz konstruktort. Lássuk a felület létrehozásának és használatának példáját.

 interfész terület {float pi = 3.14; float find_area (float a, float b) {} class Circle implementálja a területet [float find_area (float a, float b) {return (pi * a * a); } Class Shapes {public static void main (string args []) {A terület = új terület (); C kör = új kör (); A = C; float F = Terület. find_area (10, 10); system.out.println ("A kör területe:" + F); } 

A fenti kódon belül egy interfészterületet hoztunk létre, és az Circle osztály megvalósította az interfészterületet. A „pi” mezőt a bejelentés időpontjában a felületen inicializálták. A Circle osztály az osztályterület elvont módszerét határozta meg a követelménynek megfelelően.

A Java és a csomagok és interfészek közötti különbségek

  1. A csomag az osztályok és interfészek egy csoportja, míg az interfész absztrakt módszerek csoportja.
  2. A csomag egy kulcsszócsomag használatával jön létre, míg egy felületet egy kulcsszó interfész segítségével hoznak létre.
  3. Ha egy csomagban lévő osztályt vagy felületet kell használni, akkor az importálni kívánt csomagot, amikor egy interfészt kell végrehajtani.

Következtetés:

Mind a csomagok, mind az interfész a konténerek. A csomag csökkenti a kód méretét, mivel csak a használt osztályt importáljuk újra, nem pedig újra definiáljuk. Míg az interfész csökkenti a többszörös öröklés során bekövetkezett zavart, mivel több örökség esetén az öröklődő osztály nem dönt arról, hogy melyik módszer meghatározása legyen az örökölni, hanem meghatározza a sajátját.

Top