
Összehasonlító táblázat
Az összehasonlítás alapja | csomagok | interfé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. |
Szintaxis | csomagcsomag_név; nyilvános osztály osztálynév { . (osztálycsoport) . } | interfész_neve { változó nyilatkozat; módszer-nyilatkozat; } |
Hozzáférés | A 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ése | A 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.
- 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.
- Ezután definiál egy osztályt, amelyet a csomagba szeretne helyezni, és ne feledje, hogy nyilvánosságra hozza.
- Mentse el a fájlt .java fájlként, majd fordítsa le a fájlt, majd a ".class" fájlt kapja meg.
- 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.
- 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
- A csomag az osztályok és interfészek egy csoportja, míg az interfész absztrakt módszerek csoportja.
- 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.
- 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.