रूबी में क्लास क्या है?
क्लासेस ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) में बुनियादी बिल्डिंग ब्लॉक्स हैं और वे ऑब्जेक्ट्स बनाने के लिए एक ब्लूप्रिंट को परिभाषित करने में आपकी मदद करते हैं।
ऑब्जेक्ट्स क्लास के उत्पाद हैं।
तो ऑब्जेक्ट क्या है?
एक ऑब्जेक्ट एक व्यक्तिगत "चीज़" है, जिसकी अपनी पहचान और अपना डेटा होता है।
उदाहरण के लिए:
एक Book क्लास किताबें बनाने के लिए ब्लूप्रिंट हो सकती है।
यह क्लास परिभाषित करती है कि ALL किताबों में क्या सामान्य विशेषताएं हैं, जैसे:
- एक शीर्षक
- एक लेखक
- पेज
- आदि।
प्रत्येक व्यक्तिगत किताब एक ऑब्जेक्ट है और आप Book क्लास की बदौलत इसके जैसे कई ऑब्जेक्ट्स बना सकते हैं। क्लासेस बनाने का यही उद्देश्य है, वे आपके रूबी एप्लिकेशन के लिए पुन: प्रयोज्य ब्लूप्रिंट हैं।
अब:
आप सीखने जा रहे हैं कि अपनी खुद की क्लासेस कैसे लिखें ताकि आप आज ही OOP कोड लिखना शुरू कर सकें।
रूबी क्लास कैसे बनाएं
क्लास बनाने का सिंटैक्स इस तरह होता है:
class Orange end
ध्यान दें कि:
- क्लास के नाम बड़े अक्षर से शुरू होते हैं
- हम
classकीवर्ड का उपयोग करते हैं, फिरendकीवर्ड - एक खाली क्लास बहुत उपयोगी नहीं है, लेकिन आप फिर भी इससे ऑब्जेक्ट्स बना सकते हैं
क्लास बनाने के अन्य तरीके हैं (जैसे Class.new), लेकिन ये तरीके केवल विशेष स्थितियों में उपयोगी हैं।
एक क्लास, कई ऑब्जेक्ट्स
क्लास का मुख्य उपयोग मेथड्स, इंस्टेंस वेरिएबल्स और कॉन्स्टेंट्स का एक कंटेनर होना है, जो एक ब्लूप्रिंट बनाता है जिससे आप ऑब्जेक्ट्स बना सकते हैं।
आप new मेथड का उपयोग करके ऑब्जेक्ट्स बना सकते हैं।
इस तरह:
Orange.new
हम ऑब्जेक्ट बनाने की प्रक्रिया को "इंस्टेंशिएशन" के रूप में जानते हैं, और हम कहते हैं कि एक ऑब्जेक्ट एक क्लास का "इंस्टेंस" है।
ऑब्जेक्ट्स क्यों बनाएं?
क्योंकि आपके द्वारा बनाया गया प्रत्येक ऑब्जेक्ट अलग और यूनिक होता है।
प्रत्येक ऑब्जेक्ट की अपनी पहचान होती है।
उदाहरण के लिए:
Orange क्लास के साथ, आपके द्वारा बनाया गया प्रत्येक orange ऑब्जेक्ट का अपना वजन, मूल देश, गुणवत्ता, आदि होता है।
रूबी क्लासेस को अधिक उपयोगी बनाना
क्लासेस तब अधिक उपयोगी हो जाती हैं जब आप उनमें इंस्टेंस मेथड्स और इंस्टेंस वेरिएबल्स जोड़ना शुरू करते हैं।
एक मेथड वह चीज़ है जो आपकी क्लास कर सकती है।
उदाहरण के लिए:
आप जूस पाने के लिए एक संतरे को निचोड़ सकते हैं।
यहाँ एक कोड उदाहरण है:
class Orange
def squeeze
puts "Here's your juice!"
end
end
orange = Orange.new
orange.squeeze
ये मेथड्स आपके ऑब्जेक्ट्स के लिए कमांड बन जाते हैं!
आपके द्वारा बनाया गया प्रत्येक Orange ऑब्जेक्ट इस squeeze मेथड तक पहुंच रखेगा और यह क्लासेस का उपयोग करने के लाभों में से एक है।
एक इंस्टेंस वेरिएबल कुछ ऐसा है जो आपकी क्लास जानती है।
उदाहरण:
class Orange
def initialize
@juice_available = 100
end
def squeeze
@juice_available -= 50
end
end
इंस्टेंस वेरिएबल्स लोकल वेरिएबल्स से अलग होते हैं क्योंकि वे @ सिंबल से शुरू होते हैं। आप उन्हें क्लास के बाहर एक्सेस नहीं कर सकते जब तक कि आप attr_accessor परिभाषित न करें।
यह कौन सी क्लास है?
रूबी में ऑब्जेक्ट्स के साथ काम करते समय यह जानना उपयोगी होता है कि कोई ऑब्जेक्ट किस क्लास से बना है।
आप ऐसा इस तरह कर सकते हैं:
"".class # String [].class # Array orange.class # Orange (assuming orange = Orange.new)
यह उपयोगी क्यों है?
मेथड्स वे छोटे इंजन हैं जो रूबी में चीजों को घटित करते हैं।
यदि आप क्लास जानते हैं तो आप पता लगा सकते हैं कि कौन सी मेथड्स उपलब्ध हैं (Google, ri, या pry का उपयोग करें), दूसरे शब्दों में, आप खोज सकते हैं कि ऑब्जेक्ट आपके लिए क्या कर सकता है!
क्लासेस के बारे में और जानें
यह केवल "हिमशैल का सिरा" है जब क्लासेस की बात आती है।
यदि आप अधिक सीखना चाहते हैं...
इन्हें पढ़ें:
- रूबी initialize मेथड
- Attr_accessor, attr_reader, attr_writer
- OOP में इनहेरिटेंस
- ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग
वैसे क्लासेस खुद भी ऑब्जेक्ट्स हैं, कम से कम रूबी में 🙂
सारांश
आपने रूबी में क्लासेस के बारे में सीखा, उन्हें कैसे बनाएं और वे क्यों उपयोगी हैं!
इस लेख को शेयर करना न भूलें ताकि अधिक लोग इसका आनंद ले सकें।
पढ़ने के लिए धन्यवाद।