Java Academy · पाठ

Records के साथ Sealed प्रकार

बंद पदानुक्रम का मॉडल बनाएँ

पाठ 3, कुल 4 में से13 चरण

Records के साथ Sealed प्रकार, CoddyKit पर Java Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Java Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Java Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

सीलबंद प्रकार और रिकॉर्ड

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

रिकॉर्ड स्वतः अंतिम होते हैं

रिकॉर्ड अपने-आप final होते हैं, इसलिए वे इस नियम को पूरा करते हैं कि अनुमत उपप्रकार final, sealed, या non-sealed होने चाहिए। किसी अतिरिक्त संशोधक की आवश्यकता नहीं होती।

एक बंद आकृति पदानुक्रम

आकृतियों का मॉडल ऐसे रिकॉर्ड के रूप में बनाएँ जो एक सीलबंद इंटरफ़ेस को लागू करते हों और जिनमें प्रत्येक का अपना डेटा हो।

public class Main {
    sealed interface Shape permits Circle, Rectangle {}
    record Circle(double radius) implements Shape {}
    record Rectangle(double width, double height) implements Shape {}

    public static void main(String[] args) {
        Shape s = new Rectangle(3, 4);
        System.out.println(s);
    }
}

व्यवहार जोड़ना

सीलबंद इंटरफ़ेस ऐसी विधियाँ घोषित कर सकता है जिन्हें प्रत्येक रिकॉर्ड लागू करता है, जिससे बंद समूह पर बहुरूपता मिलती है।

public class Main {
    sealed interface Shape permits Circle, Rectangle {
        double area();
    }
    record Circle(double radius) implements Shape {
        public double area() { return Math.PI * radius * radius; }
    }
    record Rectangle(double width, double height) implements Shape {
        public double area() { return width * height; }
    }

    public static void main(String[] args) {
        Shape s = new Circle(2);
        System.out.printf("Area: %.2f%n", s.area());
    }
}

स्वतः मिलने वाली समानता और toString

रिकॉर्ड equals, hashCode, और toString अपने-आप बनाते हैं। समान घटकों वाले दो रिकॉर्ड समान होते हैं, जो मानों का मॉडल बनाने के लिए आदर्श है।

public class Main {
    sealed interface Shape permits Circle {}
    record Circle(double radius) implements Shape {}

    public static void main(String[] args) {
        Circle a = new Circle(5);
        Circle b = new Circle(5);
        System.out.println(a.equals(b));
        System.out.println(a);
    }
}

Result का मॉडल बनाना

एक सामान्य प्रतिरूप में एक सीलबंद परिणाम प्रकार होता है, जिसमें सफलता का रिकॉर्ड और विफलता का रिकॉर्ड होता है। यह अपेक्षित परिणामों के लिए रिक्त मान लौटाने या अपवादों का उपयोग करने की जगह लेता है।

public class Main {
    sealed interface Result permits Ok, Err {}
    record Ok(int value) implements Result {}
    record Err(String message) implements Result {}

    static Result parse(String s) {
        try { return new Ok(Integer.parseInt(s)); }
        catch (NumberFormatException e) { return new Err("bad number: " + s); }
    }

    public static void main(String[] args) {
        System.out.println(parse("42"));
        System.out.println(parse("oops"));
    }
}

सत्यापन के लिए संक्षिप्त निर्माणकर्ता

रिकॉर्ड अपने इनपुट का सत्यापन संक्षिप्त निर्माणकर्ता में कर सकते हैं, जिससे प्रत्येक मामला बनते समय ही सही रहता है।

public class Main {
    sealed interface Shape permits Circle {}
    record Circle(double radius) implements Shape {
        Circle {
            if (radius < 0) throw new IllegalArgumentException("radius must be >= 0");
        }
    }

    public static void main(String[] args) {
        try { new Circle(-1); }
        catch (IllegalArgumentException e) { System.out.println(e.getMessage()); }
    }
}

पुनरावर्ती डेटा मॉडल

क्योंकि कोई रिकॉर्ड सीलबंद इंटरफ़ेस का संदर्भ दे सकता है, इसलिए आप अभिव्यक्ति वृक्ष या संबद्ध सूचियों जैसी पुनरावर्ती संरचनाएँ बना सकते हैं।

public class Main {
    sealed interface Expr permits Num, Add {}
    record Num(int value) implements Expr {}
    record Add(Expr left, Expr right) implements Expr {}

    public static void main(String[] args) {
        Expr e = new Add(new Num(1), new Add(new Num(2), new Num(3)));
        System.out.println(e);
    }
}

अपरिवर्तनीयता के लाभ

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

switch के साथ संयोजन

सीलबंद रिकॉर्ड पैटर्न-मिलान वाले switch के साथ विशेष रूप से उपयोगी होते हैं: प्रत्येक मामला रिकॉर्ड की संरचना खोल सकता है और कंपाइलर जाँचता है कि सभी मामले शामिल हैं। इसका विस्तार पैटर्न पाठ्यक्रम में किया गया है।

मॉडल पर गणना

आप एक ऐसी विधि के रूप में इंटरप्रेटर लिख सकते हैं जो पुनरावर्ती रिकॉर्ड वृक्ष पर चलती है।

public class Main {
    sealed interface Expr permits Num, Add {}
    record Num(int value) implements Expr {}
    record Add(Expr left, Expr right) implements Expr {}

    static int eval(Expr e) {
        if (e instanceof Num n) return n.value();
        Add a = (Add) e;
        return eval(a.left()) + eval(a.right());
    }

    public static void main(String[] args) {
        Expr e = new Add(new Num(4), new Add(new Num(5), new Num(6)));
        System.out.println(eval(e));
    }
}

त्वरित जाँच

सीलबंद रिकॉर्ड की अपनी समझ जाँचिए।

पुनरावलोकन

आपने सीलबंद प्रकारों को रिकॉर्ड के साथ जोड़ना सीखा।

  • रिकॉर्ड स्वतः final होते हैं, इसलिए वे अनुमत उपप्रकारों के रूप में आसानी से शामिल हो जाते हैं।
  • सीलबंद इंटरफ़ेस साझा विधियाँ घोषित कर सकता है।
  • रिकॉर्ड अपने-आप समानता, हैशिंग और toString प्रदान करते हैं।
  • साथ मिलकर वे बंद, अपरिवर्तनीय और संभवतः पुनरावर्ती डेटा का मॉडल बनाते हैं।
शुरुआत निःशुल्क

एआई शिक्षक के साथ Java सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
104
पाठ
374

अक्सर पूछे जाने वाले प्रश्न

क्या “Records के साथ Sealed प्रकार” पाठ निःशुल्क है?

हाँ—“Records के साथ Sealed प्रकार” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Java Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Java Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Records के साथ Sealed प्रकार” में मैं क्या सीखूँगा?

बंद पदानुक्रम का मॉडल बनाएँ आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Java Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Java Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Java Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“Records के साथ Sealed प्रकार” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Java Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Java Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Sealed प्रकार घोषित करना
  2. permits क्लॉज़
  3. Records के साथ Sealed प्रकार
  4. Sealed प्रकारों पर संपूर्ण switch
← Java Academy पर वापस जाएँ