Java Packages

Introduction to Java Packages

यदि आप java library ध्यान से देखेंगे तो पाएंगे की उसमे classes को उनकी category के according अलग अलग packages में organize किया गया है। यदि आप उन classes को यूज़ करना चाहते है तो आपको packages को import करना पड़ता है। ऐसा क्यों किया गया ??. Classes को directly भी तो access किया जा सकता था।

Packages से आप related types (classes, Interfaces etc.) का group बना सकते है। एक package में आप किसी दूसरे package को भी डाल सकते है।

आपने कभी सोचा है की किसी eCommerce software में कम से कम कितनी source code की lines होंगी। ये लाखों lines में हो सकती है। क्या एक programmer इतनी lines लिख सकता है या इतना बड़ा software बना सकता है??. बना तो सकता है लेकिन उसे काफी समय लग जायेगा। इसलिए देखा जाता है की एक software को बहुत से programmer मिलकर बनाते है।

अब कल्पना कीजिये की जब सभी programmers का code एक साथ execute किया जायेगा तो ये possibility होती है की किन्ही 2 programmers ने class या interface का नाम same रखा दिया हो। अगर ऐसा हुआ तो ऐसी situation में program error show करेगा। इस problem से बचने के लिए java एक mechanism provide करती है जिसे package कहते है।

हर programmer अपना सारा code एक अलग package में रखता है। ऐसा करने से यदि कोई programmers classes या interfaces का नाम same भी रख देते है तो आपके program में error नहीं आती है।

Packages को यूज़ करने से पहले आपको ये समझ लेना चाहिए की ये काम कैसे करते है। जिस प्रकार आप एक class में method और variable create करते है और यदि वो किसी दूसरी class के जैसे ही नाम वाले हो तो भी program में कोई error नहीं आती है। उसी प्रकार अलग अलग packages में होने की वजह से same नाम वाली classes कोई error generate नहीं करती है।

Features of Packages

  • Packages की मदद से आप java में classes और interfaces को आसानी से maintain कर सकते है। Packages की मदद से आप अलग अलग category की classes को अलग अलग packages में maintain कर सकते है। ऐसा करने से programmer की productivity बढ़ती है।
  • Java packages आपकी classes और interfaces को access protection provide करते है। यदि package में class create करते समय आपने कोई access modifier यूज़ नहीं किया है तो उस class को दूसरे packages की classes access नहीं कर सकती है। क्योंकि उस class पर package private modifier apply हो जाता है।
  • Java packages से duplicate names की problem solve हो जाती है।

Creating Java Packages

Package create करने के लिए आप package keyword यूज़ करते है। इस keyword के आगे आप package का unique नाम लिखते है।

package myPackage;

ये आपके file की सबसे पहली line होनी चाहिए। इसके बाद आप जितनी भी classes और interfaces create करेंगे वो सब उस package में include होती जाएगी। यदि आपकी classes जिनको आप एक package में add करना चाहते है वो सब अलग अलग files में है तो सबको एक file में इकक्ठा करने की जरुरत होती है। बस आपको सभी files में top पर ये statement लिखना है तो वो सभी classes भी उसी package में include हो जाएगी।

Using Java Packages

यदि कोई दूसरा programmer आपके package की किसी class को यूज़ करना चाहता है तो उसे आपका package import करना पड़ेगा।

import myPackage;

Package को import करने के बाद वह सभी classes को यूज़ कर सकता है। इसी प्रकार वह किसी दूसरे programmer के package को भी import कर सकता है और उसकी classes को भी यूज़ कर सकता है।

इसके अलावा आप (.) operator लगा कर भी किसी class को directly access कर सकते है। इसे package member access कहते है। ऐसी situation में आप सिर्फ उसी class को access कर पाते है।

import newPackage.myClass

Some Common Java Packages

Java में एक main package होता है जिसे Java API package कहते है। इस package में आपके अलग अलग काम के लिए दूसरे packages होते है जिन्हे आप program बनाते समय import करके यूज़ करते है। जैसे की IO package और AWT package आदि।

आइये ऐसे ही कुछ common और सबसे ज्यादा काम में आने वाले packages के बारे में जानने का प्रयास करते है। इनके बारे में निचे जा रहा है।

java.language

इस package में language support classes होती है। ये वो classes होती है जो java compiler खुद यूज़ करता है। इसलिए ये classes बहुत ही important होती है।

java.util

ये package language utility classes provide करता है। जैसे की vector, hashtable आदि।

java.io

ये pacakge input ouput support classes provide करता है। ये data के input और output के लिए facility provide करता है।

java.AWT

इस package में graphical user interface implement करने के लिए classes होती है।

java.net

ये package networking के लिए classes provide करता है। इसमें server से connection establish करने के लिए classes होती है।

java.applet

ये package applets create करने और implement करने के लिए classes provide करता है।

Sub Packages

जब आप किसी package के अंदर एक और package create करते है तो अंदर वाला package sub package कहलाता है। अब तक classes को categories करने की बात बताई गयी लेकिन आप sub packages की मदद से packages को भी categories कर सकते है।