क्

क्लास में Java

12 अभ्यास

क्लास के बारे में

Java में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग की मुख्य इकाई क्लास है, जो डेटा (फील्ड), यानी इंस्टेंस वेरिएबलो, और व्यवहार (मेथड) का मेल होती है। किसी क्लास के फील्ड और मेथड को उसके मेंबर कहा जाता है।

मेंबर तक पहुँच को एक्सेस मॉडिफायर के ज़रिए नियंत्रित किया जा सकता है। सबसे आम दो ये हैं:

  • public: किसी भी कोड से मेंबर को एक्सेस किया जा सकता है (कोई प्रतिबंध नहीं)।
  • private: मेंबर को सिर्फ उसी क्लास के कोड से एक्सेस किया जा सकता है।

Java में अगर कोई एक्सेस मॉडिफायर नहीं दिया जाता, तो डिफ़ॉल्ट रूप से पैकेज विज़िबिलिटी रहती है। इस स्थिति में मेंबर उसी पैकेज में परिभाषित सभी क्लासों को दिखता है।

संबंधित डेटा और व्यवहार को इस तरह एक साथ रखना, और साथ ही मेंबर तक पहुँच को सीमित करना, इन दोनों को मिलाकर एनकैप्सुलेशन कहते हैं। यह ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग के मुख्य विचारों में से एक है।

आप किसी क्लास को उसके इंस्टेंस बनाने का टेम्पलेट मान सकते हैं। किसी क्लास का इंस्टेंस बनाने के लिए (जिसे ऑब्जेक्ट भी कहते हैं) new कीवर्ड का इस्तेमाल किया जाता है:

class Car {
}

// Create two car instances
Car myCar = new Car();
Car yourCar = new Car();

फील्ड का एक टाइप और एक नाम होता है (नाम camelCase में लिखा जाता है) और इन्हें क्लास में कहीं भी परिभाषित किया जा सकता है (क्लास का नाम PascalCase में लिखा जाता है)।

class Car {
    // Accessible by anyone
    public int weight;

    // Only accessible by code in this class
    private String color;
}

किसी फील्ड को चाहें तो शुरुआती वैल्यू असाइन की जा सकती है। अगर किसी फील्ड में शुरुआती वैल्यू नहीं दी जाती, तो उसे उसके टाइप की डिफ़ॉल्ट वैल्यू मिल जाती है। किसी इंस्टेंस के फील्ड की वैल्यू डॉट नोटेशन से एक्सेस की जा सकती है और बदली जा सकती है।

class Car {
    // Will be set to specified value
    public int weight = 2500;

    // Will be set to default value (0)
    public int year;
}

Car newCar = new Car();
newCar.weight; // => 2500
newCar.year;   // => 0

// Update value of the field
newCar.year = 2018;

प्राइवेट फील्ड आम तौर पर किसी मेथड को कॉल करने के असर से बदल जाते हैं। ऐसे मेथड आम तौर पर कोई वैल्यू नहीं लौटाते, और ऐसी स्थिति में रिटर्न टाइप void होना चाहिए:

class CarImporter {
    private int carsImported;

    public void importCars(int numberOfCars)
    {
        // Update private field
        carsImported = carsImported + numberOfCars;
    }
}

ध्यान दीजिए कि Java क्लासों में public फील्ड इस्तेमाल करना आम बात नहीं है। आम तौर पर private फील्ड इस्तेमाल किए जाते हैं, जिन्हें गेटर और सेटर के ज़रिए एक्सेस किया जाता है।

किसी क्लास के अंदर this कीवर्ड मौजूदा क्लास को दर्शाता है। यह खास तौर पर तब काम आता है जब किसी पैरामीटर का नाम फील्ड के नाम जैसा ही हो:

class CarImporter {
    private int carsImported;

    public void setImportedCars(int carsImported)
    {
        // Update private field from public method
        this.carsImported = carsImported;
    }
}
GitHub के ज़रिए संपादित करें यह लिंक नई विंडो या टैब में खुलता है।

क्लास सीखिए