OOPS Concepts In Java In Hindi

हेलो फ्रेंड्स, आज के इस ब्लॉग पोस्ट(OOPS Concepts In Java In Hindi) में मैं आपको oops concepts के बारें में हिंदी में बताने वाला हूँ | oops का फुल फॉर्म होता है object oriented programming system |

oops concepts(OOPS Concepts In Java In Hindi) IT और CS ब्रांच के स्टूडेंट्स या फिर सॉफ्टवेयर फील्ड में जॉब करने वालो की या फिर जॉब खोजने वालो के लिए बहुत इम्पोर्टेंस रखते है |

अगर आप oops concepts(OOPS Concepts In Java In Hindi) को बहुत अच्छे से समझ गए तो आपके लिए बहुत सी चीज़े आसान हो जाती है | जैसे कि:

आप अपने academics में प्रोग्रामिंग लैंग्वेज के subject में अच्छा स्कोर कर सकते है |

आप academic viva में oops से related questions का अच्छे से जबाब दे सकते है |

आप आसानी से programs को develop करना सीख सकते है |

आप जॉब इंटरव्यू में बहुत आसानी से questions के answer कर सकते है |

आप software industry में एक अच्छी जॉब पा सकते है |

तो दोस्तों oops concepts को अच्छी तरह से सीखने के बहुत सारे फायदे है | पर आमतौर पर यह देखा गया है कि स्टूडेंट हो या फिर कोई job seeker बहुत से लोग oops concepts को लेकर बहुत confusion में रहते है |

यहाँ तक कि बहुत से लोग जो software industry में developing का काम भी कर रहे वो भी कुछ कुछ concepts को लेकर बहुत confuse रहते है |

इसलिए आज इस ब्लॉग पोस्ट में हम आपके लिए oops concepts को बहुत ही रोचक ढंग से अच्छे example के साथ हिंदी में विस्तार से समझायेंगे |

मुख्य तौर से oops के चार concepts होते है पर अगर हम overall बात करें तो यहाँ पर हम आपको ऊप्स के 6 concepts के बारें में समझायेंगे | oops के 6 concepts निम्नलिखित है |

OOPS Concepts In Java In Hindi:

Object
Class
Inheritance
Polymorphism
Data Abstraction
Encapsulation


class-object

1. OOPS Concept – Object:

सबसे पहले हम बात करेंगे object कि जो कि oops का पहला कॉन्सेप्ट्स है | इसका मतलब यह नहीं है कि यहाँ पर कोई नंबरिंग से कॉन्सेप्ट्स होते है पर यहाँ हमारी लिस्ट में यह पहला कांसेप्ट है | और आमतौर पर अब सभी books या website पर इसी आर्डर में इन oops concepts को देखेंगे तो यहाँ पर confuse होने कि जरुरत नहीं है |

object जो है वो class का instance होता है | पर शायद इस लाइन से आपको ज्यादा कुछ clear नहीं होगा | ये लाइन तो सिर्फ रटने के लिए ठीक है | चलिए और बेहतर तरीके से समझते है |

इस दुनिया में ऐसी कोई भी वस्तु जिसे आप छू सकते है फील कर सकते है वो सभी object है | कहने का मतलब यह है कि object का real time existence होता है | जो भी object होता है वो सही में exist करता है, हम उसे छू सकते है महसूस कर सकते है |

हर object की कुछ विशेषताएँ होती है जो कि निम्नलिखित है |

1. Identity
2. State
3. Behaviour
4. Characteristic

MyObject object = new MyObject(); ----> Declaration of object of class "MyObject"

2. OOPS-Concept – Class:

चलिए अब बात करते है दूसरे oops concepts की जो कि है class | class जो है वो object का blueprint होता है | या फिर हम यह भी कह सकते है की class जो है वो बहुत सारे object का कलेक्शन होता है |

class जो है वो एक लॉजिकल एंटिटी होती है | उसे हम देख या छू नहीं सकते है | वो हमारे समझने के लिए दिमाग में बनाया गया एक लॉजिक होता है और इससे ज्यादा कुछ भी नहीं |

अभी समझ में नहीं आया क्या? कोई बात नहीं चलिए एक example की मदद से समझते है | यहाँ पर हम tree का example लेते है | यहाँ पर tree एक class है |

और हमने ऊपर पहले ही बता दिया है कि class एक logical entity होती है उसका real life में कोई भी existence नहीं होता है | और हम उसे न देख सकते है न छू सकते है |

पर अब आप सोचेंगे की tree को तो आप छू सकते है देख सकते है | पर जरा रुकिए मै यहाँ पर tree class की बात कर रहा हूँ |

क्या आप tree को छूकर ये बोलेंगे की ये tree class है नहीं न ! क्योकि वो कोई tree class नहीं है वो है एक object |
आप यह बोलेगे कि यह इस चीज़ का tree है, या फिर इस जगह का tree है..इत्यादि..

जैसे की मेरे घर में लगा ट्री एक ऑब्जेक्ट है | आपके घर में लगा ट्री एक दूसरा ऑब्जेक्ट है | और किसी और के घर में लगा ट्री एक तीसरा ऑब्जेक्ट है | तो ये सारे ट्री क्लास के object है | और object को हम देख या छू सकते है और object के अंदर कुछ प्रॉपर्टीज भी होती है जो हम ऊपर देख चुके है | आशा करता हूँ की अब आपको काफी हद तक समझ आ गया होगा |

Class Sample

{
int id =”401″;

String name =”sample”; ————————-> syntax of class

}


3. OOPS Concept – Inheritance:

चलिए दोस्तों अब बात करते है अगले oops concepts की जो कि है inheritance | inheritance की definition है generalization to specification , मतलब कि class की general प्रॉपर्टीज या common प्रॉपर्टीज को कई और classes द्वारा specified करना | पर शायद बहुत से लोगो को यह समझ न आये | तो चलिए और अच्छे से समझते है |

base क्लास कि प्रॉपर्टीज को subclass में use करने के process को ही हम inheritance कहते है | base class को आप parent class भी बोल सकते है |

मतलब कि base class में हमने कुछ properties वेरिएबल, फंक्शन्स को डिक्लेअर कर दिया है और हम इन प्रॉपर्टीज को किसी और क्लास में भी use कर सकते है तो हम इन्हे दुबारा किसी और class में डिक्लेअर और डिफाइन करने कि बजह हम पैरेंट क्लास से inherit करके use कर लेते है |

इससे हमारा टाइम, स्पेस, मेमोरी सभी कि बचत हो जाती है | और हम कोड को reuse कर पाते है | तो आप यह भी कह सकते है कि inheritance कोड को reuse करने की एक process है |

चलिए अभी भी अगर कोई doubt बचा है तो इसे एक सिंपल example से समझते है | gmail अकाउंट से आप सभी वाक़िब होंगे और आप में से maximum लोगो के पास gmail account होगा भी |

अब इसे थोड़ा प्रोग्रामिंग के नज़रिये से समझिये | google ने एक क्लास बनाई होगी यूजर एकाउंट्स की और हम इस अकाउंट की मदद से गूगल के बहुत सारे प्रोडक्ट को एक्सेस कर पातें है जैसे कि गूगल ड्राइव, यूट्यूब, प्ले स्टोर इत्यादि ..और इन सभी प्रोग्राम के लिए भी एक एक क्लास बनायीं होगी और गूगल इन सभी programs के लिए भी अलग अलग क्लास बना सकता था और अलग से सभी का रजिस्ट्रेशन करवा सकता था|

पर गूगल ने इन सब के लिए अलग अलग यूजर एकाउंट्स तो नहीं बनवाए | बल्कि एक ही gmail account से आप सभी को access कर पाते है | मतलब एक गूगल gmail account class ने सभी programs के features को access कर लिया|

तो यह एक example आपको समझने के लिए था आप ऐसे और भी example रियल लाइफ में ढूंढ सकते है और उनसे इस inheritance को समझ सकते है |

full-inheritance

इस concepts के अंदर parent class की प्रोपर्टीज़ को sub class में use किया गया है |


Types of Inheritance:

Single Inheritance:

Single inheritance में base class होती है और एक derived class होती है, derived class बेस class की properties को inherit करती है और derived class के पास अपनी खुद की भी कुछ properties होती है | यहाँ पर जो derived class होती है उसकी सिंगल या एक ही parent class होती है |

simple-inheritance

//Base Class
class Vehicle
{
public void testvehicle()
{
//TODO:
}
}

//Derived Class
class Car: Vehicle
{
public void testCar()
{
//TODO:
}
}


Multilevel Inheritance:

मल्टीलेवल इनहेरिटेंस डेरिवेद क्लस्स की भी एक डेरिवेद क्लस्स होती है और यह डेरिवेद क्लस्स के लिए वह एक बेस कॉल्स की तरह काम करती है |

अगर अभी समझ नहीं आया है तो मै एक example दे कर समझाता हूँ | मान लीजिये हमारे पास तीन class है A , B and C | तो यहाँ पर multilevel inheritance के हिसाब से class B Class A की derived होगी और class C class B की derived class होगी |

multilevel-inheritance

//Base Class
class Animal
{
public void testAnimal()
{
//TODO:
}
}

//Derived Class
class Mammal: Animal
{
public void testMammal()
{
//TODO:
}
}

//Derived Class
class Human: Mammal
{
public void testHuman()
{
//TODO:
}
}


Multiple Inheritance:

multiple inheritance के अंदर एक class दो classes से properties और बेहेवियर को inherit कर सकती है | कहने का मतलब यह है की एक derived class की दो parent class हो सकती है |

multiple-inheritance

JAVA and DOT NET(C#, F#, and etc.) do not support multiple inheritance.

//Base Class
class Person
{
public void testPerson()
{
//TODO:
}
}

//Base Class
class Employee
{
public void testEmployee()
{
//TODO:
}
}

//Derived Class
class Teacher: Person, Employee
{
public void testTeacher()
{
//TODO:
}
}


Multipath Inheritance:

multipath inheritance के अंतर्गत दो derived classes जिनकी बेस class same है उनसे एक और derived class properties को inherit करती है | इस inheritance में multiple multilevel , एंड hierarchical सभी तरह के inheritance का combination होता है |

JAVA and DOT NET(C#, F#, and etc.) do not support multiple inheritances.

multipath-inheritance

//Base Class
class Student
{
public void testStudent()
{
//TODO:
}
}

//Derived Class
class InternalExam: Student
{
public void testInternalExam()
{
//TODO:
}
}

//Derived Class
class ExternalExam: Student
{
public void testExternalExam()
{
//TODO:
}
}

//Derived Class
class Result: InternalExam, Student, ExternalExam
{
public void testResult()
{
//TODO:
}
}


Hierarchical Inheritance:

जब दो या दो से अधिक classes एक single parent class को inherit करती है तो इस टाइप को inheritance को हम hierarchical inheritance बोलते है |

hirarichal-inheritance

//Base Class
class Father
{
public void testFather()

{
//TODO:
}
}

//Derived Class
class Son-1: Father
{
public void testSon-1()
{
//TODO:
}
}

//Derived Class
class Son-2: Father
{
public void testSon-2()
{
//TODO:
}
}

//Derived Class
class Daughter: Father
{
public void testDaughter()
{
//TODO:
}
}


Hybrid Inheritance:

Hybrid inheritance multiple inheritance और multilevel inheritance का एक example है |

JAVA and DOT NET(C#, F#, and etc.) multiple inheritance को support नहीं करते है |

hybrid-inheritance

//Base Class
class Cricketer
{
public void testCricketer()
{
//TODO:
}
}

//Derived Class
class Bowler: Cricketer
{
public void testBowler()
{
//TODO:
}
}

//Derived Class
class Batsman: Cricketer
{
public void testBatsman()
{
//TODO:
}
}

//Derived Class
class Allrounder: Bowler, Batsman
{
public void testAllrounder()
{
//TODO:
}
}


4. OOPS Concept – Polymorphism:

तो चलिए अब हम बात करते है अलगे ऊप्स कॉन्सेप्ट्स की जो की एक इम्पोर्टेन्ट ऊप्स कॉन्सेप्ट्स है और इस के हिसाब से हम एक ही फंक्शन को कई तरह से use करते है | इसे हम कहते है ‘One function different forms‘.

और यह उसे हम फंक्शन ओवरलोडिंग(function overloading) और फंक्शन वररीडिंग(function overriding) की मदद से करते है | और इसे हम compile टाइम पॉलीमॉरफिस्म और रन टाइम पॉलीमॉरफिस्म के नाम से भी जानते है | इसे हम static पॉलीमॉरफिस्म और डायनामिक(dynamic) पॉलीमॉरफिस्म भी बोलते है |

चाहे static polymorphism बोले, compile time polymorphism बोले, या फिर function overloading बोले सब एक ही बात है |

और इसी तरह चाहे रुं time polymorphism बोले, dynamic polymorphism बोले या फिर function overriding बोले सब एक ही बात है | इसलिए इनके नाम को ले कर आप को कंफ्यूज नहीं होना है |

अब बात आती है की ये function overloading और function overriding क्या होता है ?

तो देखिये, function overloading के अंतर्गत एक ही क्लास में एक नाम के फंक्शन होते है बस बस उनके पैरामीटर अलग अलग होते है | जैसे की किसी में एक पैरामीटर पास हो रहा है तो किसी में ज्यादा, या फिर किसी में int पैरामीटर पास हो रहा है तो किसी में फ्लोट या डबल पैरामीटर पास हो रहा है|

कहने का मतलब यह है की function नाम same होते है और function signature different होते है अथवा function prototype different होता है |

अगर आप इसे एक रियल लाइफ example से समझना चाहते है तो फिर, pressure cooker जो घर में खाना बनाने के लिए उपयोग होता है उससे अच्छा example आपको नहीं मिलेगा | यहाँ पर हम कुक को एक फंक्शन मान ले क्योकि कुकर कुछ न कुछ पकाने के काम आता है |

और यहाँ पर हम कुकर में कुक मेथड की मदद से दाल, चावल, सब्जी इत्यादि सभी कुछ पका सकते है | मतलब कि एक फंक्शन कुक में अलग अलग पैरामीटर पास करके हम अलग चीज़े बना लेते है |

उसी तरह function overloading में हम एक ही फंक्शन की मदद उसमे अलग अलग पैरामीटर पास करके अलग अलग calculation कर अलग अलग रिजल्ट प्राप्त कर लेते है |

See the image below:

staticpolymorphism

और function overriding या run time polymorphism में हम अलग अलग class में एक same function signature और function name के function रखते है, मतलब की बेस क्लास में सम फ़ंक्शण और derived class में exact same function |

और यहाँ दोनों function के काम अलग अलग होते है | और JVM runtime पर decide करता है कि किस function को हमें कॉल करना है |

जैसे कि एक वाटर कूलर में तीन वाटर पॉइंट होते है हॉट वाटर, कोल्ड वाटर और नार्मल वाटर, अगर हम यहाँ पर यह यह मान ले तीनो पॉइंट्स के पास एक फंक्शन है प्रोवाइड और उसमे पैरामीटर भी same है ‘water ‘ तो यहाँ पर runtime पर decide होता है कि किस point को पानी देना है |

यह depend करेगा user के ऑपरेशन पर अगर वह कोल्ड वाटर का बटन प्रेस करता है तो ठंडा पानी निकलेगा और यदि वह हॉट वाटर का बटन प्रेस करता है तो गरम पानी निकलेगा | तो यह सब runtime पर decide होता है | यह example मैंने आपको समझाने के लिए दिया है |


See the image below:

runtime-polymorphism

5. OOPS Concepts – Data Abstraction:

तो चलिए अब हम oops concepts के एक और इम्पोर्टेन्ट कांसेप्ट के बारे में डिसकस करते है | और यह है data abstraction |

data abstraction के अंतर्गत हम जरुरी डाटा को दिखाते है और गैरजरूरी डाटा को छिपा कर रखते है |

C ++ के अंदर यह सब करने के लिए हम access modifier का use करते है| जिन वैरिअब्ले या method को हम छुपाना चाहे है या फिर restrict करना चाहते है उन्हें हम public declare कर देते है और जिनको हम show करना चाहते है उन्हें हम public declare कर देते है |

जावा के अंदर यही चीज़ करने के लिए हम abstract keyword का use करते है |

किसी भी क्लास, मेथड को छुपाने के लिए हम उसे abstract declare कर देते है | abstract class में आप abstract और non -abstract दोनों टाइप के method रख सकते है | जबकि एक non -abstract क्लास में आप abstract method को नहीं रख सकते है |

abstract class का object क्रिएट नहीं कर सकते है | और abstract method के अंदर हम सिर्फ function को declare कर देते है पर वहां पर कोई भी implementation नहीं होता है और जब कोई subclass इसे extend करती है तो वह अपने हिसाब से यह method को implement करती है | और ऐसा सभी class जो इसको extend करती है वो अपने हिसाब से method को implement कर सकती है | तो इसकी जानकारी किसी को भी नहीं होती है |

See the image below:

dataabstraction

6. OOPS Concept- Encapsulation:

तो चलिए अब हम oops का आखिरी कांसेप्ट देखते है | वो है encapsulation जिस तरह से हम एक कैप्सूल में कई तरह की दबाइयो को संग्रहित करके रखते है उसी तरह हम encapsulation में एक class के अंदर सभी डाटा मेंबर और मेंबर function को एक साथ स्टोर करके रखते है |

और encapsulation का main उद्देश्य होता है डाटा की सिक्योरिटी | पर यहाँ पर डाटा की security कैसे होती है ?

तो आपको बता दे कि यहाँ पर डाटा की सिक्योरिटी हम access modifier की मदद से करते है | हमें जिन variable या method को restrict करना होता है उन्हें हम private डिक्लेअर कर देते है, जिससे कि कोई भी unauthorise class उन्हें access नहीं कर पायेगी |

पर ऐसे में कोई class जिसको यह method और variable use करना है वो कैसे करेंगे ?

उसके लिए getter और setter method रखता है जिस भी function की access यह बाहरी class को देना चाहता है | और यह allocation program और सॉफ्टवेयर डिज़ाइन होते समय ही हो जाता है |

See the image below:

encapsulation


Please keep reading our blogs for new updates.

Quick Q&A:

What are the 3 pillars of OOP?/ OOPS के तीन पिलर कौन कौन से है ?

OOPS के तीन pillar निम्नलिखित है |

Encapsulation
Inheritance
Polymorphism

Is Python an OOP?/ क्या पाइथन एक ऑब्जेक्ट ओरिएंटेड लैंग्वेज है ?

हाँ, python एक object oriented लैंग्वेज है जब से इसकी discovery हुइ है | और यह लैंग्वेज class और object के कांसेप्ट को बहुत अच्छे से सपोर्ट करती है और यह इस लैंग्वेज को सीखने में बहुत मदद करता है |

Conclusion :

तो दोस्तों इस ब्लॉग पोस्ट(OOPS Concepts In Java In Hindi) में हमने जाना कि OOPS concepts क्या होते है और इनका उसे कहाँ कहाँ पर है| OOPS concepts बहुत ही important concepts है | OOPS concepts के अंतर्गत object , class , inheritance , polymorphism , encapsulation , और data abstraction आते है | इस ब्लॉग में हमने आयन सभी के बारे में विस्तार से example के साथ समझा|

इस ब्लॉग(OOPS Concepts In Java In Hindi) को लेकर आपके मन में कोई भी प्रश्न है तो आप हमें इस पते [email protected]पर ईमेल लिख सकते है|

आशा करता हूँ, कि आपने इस पोस्ट(OOPS Concepts In Java In Hindi) को खूब एन्जॉय किया होगा|

आप स्वतंत्रता पूर्वक अपना बहुमूल्य फीडबैक और कमेंट यहाँ पर दे सकते है|

आपका समय शुभ हो|

Anurag

I am a blogger by passion, a software engineer by profession, a singer by consideration and rest of things that I do is for my destination.