Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

Java में पैकेज के प्रकार


Java में पैकेजों का उपयोग नामकरण संघर्षों को रोकने, एक्सेस नियंत्रित करने, क्लासेस, इंटरफेसेस, एन्यूमरेशन्स और एनोटेशन्स की खोज/स्थिति और उपयोग को आसान बनाने के लिए किया जाता है।

एक पैकेज को संबंधित प्रकारों (क्लासेस, इंटरफेसेस, एन्यूमरेशन्स, और एनोटेशन्स) के समूह के रूप में परिभाषित किया जा सकता है जो एक्सेस सुरक्षा और नेमस्पेस प्रबंधन प्रदान करता है।

Java में मौजूदा पैकेज

  • java.lang - मौलिक क्लासेस को बंडल करता है (अंतर्निहित रूप से इम्पोर्टेड)
  • java.io - इनपुट, आउटपुट फंक्शन्स के लिए क्लासेस
  • java.util - कलेक्शन फ्रेमवर्क, डेट/टाइम, यूटिलिटीज
  • java.net - नेटवर्किंग क्लासेस
  • java.sql - JDBC डेटाबेस एक्सेस
  • java.time - आधुनिक डेट/टाइम API (Java 8+)
  • java.nio - नॉन-ब्लॉकिंग I/O
  • java.concurrent - कनकरेंसी यूटिलिटीज
  • java.stream - स्ट्रीम API (Java 8+)
  • javax.*, jakarta.* - एक्सटेंशन/एंटरप्राइज API

उपयोगकर्ता-परिभाषित पैकेज (User-defined Packages)

प्रोग्रामर क्लासेस/इंटरफेसेस आदि के समूह को बंडल करने के लिए अपने स्वयं के पैकेज परिभाषित कर सकते हैं। आपके द्वारा कार्यान्वित संबंधित क्लासेस को समूहित करना एक अच्छी प्रथा है ताकि एक प्रोग्रामर आसानी से निर्धारित कर सके कि क्लासेस, इंटरफेसेस, एन्यूमरेशन्स, और एनोटेशन्स संबंधित हैं।

चूंकि पैकेज एक नया नेमस्पेस बनाता है, इसलिए अन्य पैकेजों में नामों के साथ कोई नाम टकराव नहीं होगा। पैकेजों का उपयोग करके, एक्सेस कंट्रोल प्रदान करना आसान होता है और संबंधित क्लासेस का पता लगाना भी आसान होता है।

पैकेज प्रकार वर्गीकरण

श्रेणीविवरणउदाहरण
बिल्ट-इन / स्टैंडर्डJDK के साथ प्रदान किए गएjava.lang, java.util, java.io
एक्सटेंशन / थर्ड-पार्टीबाहरी लाइब्रेरीज़org.springframework, com.google.gson, org.junit
उपयोगकर्ता-परिभाषितडेवलपर द्वारा बनाए गएcom.myapp.service, com.myapp.model

पैकेज एक्सेस मॉडिफायर्स

मॉडिफायरक्लासपैकेजसबक्लासवर्ल्ड
public✓✓✓✓
protected✓✓✓✗
default (कोई नहीं)✓✓✗✗
private✓✗✗✗

पैकेज नामकरण सर्वोत्तम अभ्यास

  1. रिवर्स डोमेन नेम: com.companyname.projectname.module
  2. लोअरकेस: सभी अक्षर लोअरकेस
  3. सार्थक: कार्यक्षमता दर्शाने वाला
  4. पदानुक्रमित: सामान्य से विशिष्ट
  5. संक्षिप्त: अनावश्यक गहराई से बचें
// अच्छे उदाहरण
com.acme.billing.invoice
com.acme.billing.payment
org.apache.commons.lang3
com.google.gson

// बुरे उदाहरण
MyPackage (अपरकेस)
com.acme..billing (डबल डॉट)
java.mypackage (java.* रिजर्व्ड)
com.acme.billing.invoice.processing.handlers.utils (बहुत गहरा)

Java 9+ : मॉड्यूल्स (Modules)

Java 9 ने पैकेज से ऊपर एक स्तर - मॉड्यूल्स पेश किया:

// module-info.java
module com.myapp {
    requires java.sql;
    requires org.springframework.core;
    
    exports com.myapp.api;
    exports com.myapp.service;
    
    // आंतरिक पैकेज - निर्यात नहीं
    // uses/provides सर्विसेस के लिए
}

निष्कर्ष: Java में तीन प्रकार के पैकेज होते हैं: बिल्ट-इन (JDK), थर्ड-पार्टी (लाइब्रेरीज़), और उपयोगकर्ता-परिभाषित। उचित पैकेज संगठन रखरखाव योग्य, स्केलेबल एप्लिकेशन के लिए महत्वपूर्ण है। Java 9+ में मॉड्यूल्स मजबूत एनकैप्सुलेशन और निर्भरता प्रबंधन जोड़ते हैं।

  1. Java में LayoutManager क्या है और LayoutManager के प्रकार क्या हैं? Java में LayoutManager क्या है और LayoutManager के प्रकार क्या हैं?

    लेआउट प्रबंधक हमें GUI फॉर्म में दृश्य घटकों की व्यवस्था के तरीके को नियंत्रित करने में सक्षम बनाते हैं, कंटेनर के भीतर घटकों के आकार और स्थिति को निर्धारित करके। LayoutManager के प्रकार Java में 6 लेआउट प्रबंधक हैं FlowLayout: यह एक कंटेनर में घटकों को एक पेज पर शब्दों की तरह व्यवस्थित करता है। य

  1. Java में इनहेरिटेंस के प्रकार Java में इनहेरिटेंस के प्रकार

    Java तीन प्रकार के इनहेरिटेंस का समर्थन करता है −सिंगल लेवल इनहेरिटेंस - एक क्लास एक सिंगल क्लास से प्रॉपर्टीज इनहेरिट करती है। उदाहरण के लिए, क्लास B क्लास A को इनहेरिट करती है।मल्टीलेवल इनहेरिटेंस - एक क्लास एक क्लास से प्रॉपर्टीज इनहेरिट करती है जिसने फिर से प्रॉपर्टीज इनहेरिट की हैंहायरार्किकल इ

  1. Java में पैकेज कैसे कंपाइल करें Java में पैकेज कैसे कंपाइल करें

    आइए एक उदाहरण देखें जो animals नामक एक पैकेज बनाता है। पैकेज के नाम लोअरकेस अक्षरों में उपयोग करना एक अच्छी प्रथा है ताकि क्लासेज और इंटरफेस के नामों के साथ किसी भी संघर्ष से बचा जा सके।निम्नलिखित पैकेज उदाहरण में animals नामक इंटरफेस है −/* File name : Animal.java */ package animals; interface An