OOPS, Concepts In Java In Hindi.

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

oops का फुल फॉर्म होता है object oriented programming system |OOPS Concepts In Java In Hindi|

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#, etc.) do not support multiple inheritances.

//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#, 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 inheritances और multilevel inheritance का एक example है |

JAVA and DOT NET(C#, F#, 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 के कांसेप्ट को बहुत अच्छे से सपोर्ट करती है और यह इस लैंग्वेज को सीखने में बहुत मदद करता है |

What are OOPs concepts in Java? जावा में oops concepts क्या होते है?

जावा के अंदर oops concepts जो है वो जावा object oriented proramming का मुख्य idea होते है |

और इन oops concepts में होता है abstraction , encapsulation , inheritance , और polymorphism |

दरअसल जावा oop concept की मदद से हम working methods और variables को क्रिएट करते है |

फिर उन सभी को अथवा उनके कुछ part को reuse करते है | और यह सभी process के दौरान सिक्योरिटी से कोई compromise नहीं होता है|

Why OOPs concept is used? OOPS concepts का उपयोग क्यों किया जाता है?

OOPS concepts को उपयोग करने के कुछ फायदे है जो कि निम्नलिखित है:

कोड को दुबारा use कर सकते है, जिससे development का समय बचता है|

आसान मैसेज पासिंग से object और class के बीच अच्छा communication होता है |

data abstraction और data hiding के features के उपयोग से कोड की security बहुत बढ़ जाती है|

What is a constructor in Java? जावा में constructor क्या होता है?

जावा में constructor का उपयोग हम क्लास के instance को क्रिएट करने के लिए करते है |

Constructor जो है वो एक method की तरह ही होता है अगर दो बातों को छोड़ दे तो|

पहली तो यह कि इसका नाम class name जैसा ही होता है|

और दूसरा यह कि इसका कोई return टाइप नहीं होता है|

कभी कभी constructor को object initialize करने के लिए एक special मेथड की तरह ही refer किया जाता है|

What is overloading in oops? OOPS में overloading क्या होती है ?

OOPS में मेथड ओवरलोडिंग जो है वो Polymorphism का ही एक फॉर्म है |

Polymorphism का मतलब ही यह होता है कि एक ही नाम के अलग अलग forms |

और हर method एक अलग तरह से एक्ट करता है |

और यह इस बात पर depend करता है कि method में कौन कौन से और कितने arguments है |

और इसी one method many forms के सिस्टम को हम method overloading के नाम से जानते है|

Can we overload a constructor? क्या हम constructor को overload कर सकते है?

हाँ, java जो है वो constructor overloading को सपोर्ट करता है|

और इसके अंतर्गत हम एक ही नाम के बहुत सारे constructors को क्रिएट करते है|

पर उन सबके अंदर अलग अलग parameter type अथवा उनके अंदर parameters की संख्या अलग अलग होती है|

What are the 3 types of overloading? तीन प्रकार की overlaoding कौन कौन सी होती है?

तीन प्रकार की overlaoding निम्नलिखित है:

1) When an Object has Same Name.
2) Difference is Return type.
3) Difference in Function, with Multiple Arguments.

What is overriding in Oops? OOPS में overriding क्या होती है?

यह overriding का feature हर एक programming language में होता है जो कि OOPS concepts को follow करती है|

और इस features के अंतर्गत sub -class अथवा child क्लास में base क्लास के एक या एक से अधिक मेथड का इम्प्लीमेंटेशन होता है जिसको base क्लास में already किया जा चुका है |

यहाँ पर method का नाम और सिग्नेचर बिलकुल same होता है |

कहने का मतलब एक ही फंक्शन अथवा मेथड को अलग अलग काम के लिए use किया जाता है|

और इसे ही हम method overriding के नाम से जानते है |

What is the difference between overriding and overloading Oops? OOPS में overlaoding और overriding में क्या difference होता है?

जब दो या दो से अधिक मेथड एक ही क्लास में same और different parameter के साथ होते है |

तब हम इस situation को method overlaoding कहते है |

और इसके विपरीत जब base class और sub -class में एक ही जैसे signature के दो या दो से अधिक methods होते है|

तब हम इस situation को method orverriding कहते है|

OOPS Concepts की post को english में पढ़ने के लिए इस blog link पर क्लिक करें|

You can also go through a few more amazing blog post links below related to core Java:

Keywords In Java In Hindi…
OOPS, Concepts In Java In Hindi…
Data Abstraction In Hindi…
Encapsulation In Hindi…
Wrapper Class In Java In Hindi…
Access Specifiers In Java…
JDBC Driver In Java In Hindi…
Types of JDBC Driver In Java…
Session Beans and Their Types…
EJB Features: Enterprise Java Beans Features…
Symptoms of an overloaded server…
EJB In Java In Hindi…
Java Beans In Hindi…
What is ODBC in Java in Hindi…
What is JDBC In Hindi…
What are JSP and its advantages…
Advantages and Disadvantages of Servlet…
What is Servlet and why it is used…
Static Keyword In Java In Hindi…

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) को लेकर आपके मन में कोई भी प्रश्न है तो आप हमें इस पते support@a5theory.comपर ईमेल लिख सकते है|

आशा करता हूँ, कि आपने इस पोस्ट(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.