OOP:-
ऑब्जेक्ट ओरिएन्टेड प्रोग्रामिग implementation की एक विधि है जजसिें program objects के cooperative
(सहकािी ) संग्रह के रूप िें संगठित िहते हैं जजनिें से प्रत्येक ऑब्जेक्ट ककसी Class के Instance का
Representation किता है एिं जजनकी Classes Inheritance relationship के द्िािा क्लासों की Hierarchy की
Member होती है
ऑब्जेक्ट ओरिएन्टेड प्रोग्रामिंग एक ऐसी अििािणा है जो डेटा तथा फंक्शन के मलए इस तिह अलग –
अलग Memory Area का ननिााण कि Program का िोड्य
ू
किने के मलए टेम्पलेट की तिह प्रयोग ककया जा सकता है
ल की कॉपी
लिाइजेशन किते हैं जजससे उन्हें िोड्य
ू
Need Of OOPS :-
High Level Language , जैसे – कोबॉल . फोरट्रॉन या C में ललखे प्रोग्रामप्रोसीजि ओरिएन्टेड प्रोग्रािकहलाते
हैं ।
इस प्रकार की प्रोग्रालमिंग में प्रोग्राम को ककये जाने वाले कायों के रूप में देखा जाता ै ह ।
इन कायों को करने के ललए एक से अधिक फिंक्शन ललखे जाते हैं ।
फिंक्शन के ववकास पर ध्यान केन्द्रित करते समय उस डेटा को भूल जाते हैं न्द्जसे इन फिंक्शन द्वारा
प्रयोग ककया जाता है ।
इसमें global dala का प्रयोग करते हैं अर् ाात एक ही Data बह
ु
डेटा को आसानी से एक से द
ू
त से प्रोग्राम द्वारा प्रयोग ककया जाता ै ह ।
इसमें फिंक्शन की अपेक्षा डेटा को प्रोग्राम के ववकास का महत्वप
ू
स े र फिंक्शन में भेजा जा सकता है ।
र्ा अवयव माना जाता ै ह ।
इन सारी समस्याओिं से ननदान पाने के ललए ऑब्जेक्ट ओरिएन्टेड प्रोग्रामिंगका ववकास ककया गया है ।COVID-19
इसमें डेटा , उन फिंक्शन के सार् ही जुडे होते हैं न्द्जसमें इनका प्रयोग ककया जाता है ।
लसस्टम में Data को External Function द्वारा Independent रूप से बदले जाने की अन
ु
मनत नहीिं होती ै ह ।
इसमें डेटा एविं इस पर ऑप े रट करने वाले फिंक्शन एक – दूस े र से ननकटता ( Nearest )
से बँिे होते हैं एविं यह बाहरी फिंक्शन द्वारा डेटा के आकन्द्स्मक बदलाव से स
ु
रक्षा करती ै ह ।
ऑब्जेक्ट ओरिएन्टेड प्रोग्रामिंगमें समस्या को Entities में ववभान्द्जत ककया जा सकता ै ह न्द्जरहें ऑब्जेक्ट
कहते हैं और कफर इन ऑब्जेक््स के ललए डेटा एविं फिंक्शन बनते हैं । एक ऑब्जेक्ट का डेटा केवल उस
ऑब्जेक्ट से ज
ु
डेह
ु
ए फिंक्शन द्वारा एक्सेस ककया जा सकता ै ह जबकक एक ऑब्जेक्ट के फिंक्शन द
ू
सेर
ऑब्जेक्टस के फिंक्शरस को एक्सेस कर सकते हैं ।
Features of Object Oriented Programming Language :-
Object Oriented Programming Language के ननम्न Features हैं, और इसके Basic Concept ननम्न हैं-
- Objects
- Class
- Data Abstraction
- Polymorphism
- Data Encapsulation or Data Hiding
- Inheritance
- Message Passing
- Reusability
- Dynamic Binding
- Objects
यह OOPs की basic run-time entity है। जो कक ककसी object (person, place, a bank account etc.) को
represent करता है।Object User define डेटा टाइप्स जैसे – वेक्टर , समय एविं सूची ( list ) आदद को भी
प्रदलशात कर सकते हैं ।object, class का variable है जो कक class को execute करता है और उसमे उपलब्ि
methods को use कर डाटा को process करता है। object के create होने पर यह memory मे अरय variables
की तरह ही space लेता है।
प्रोग्राम के ऑब्जेक््स का चयन इस प्रकार ककया जाना चादहए कक वे वास्तववक ववश्व के समान ही हों या
उससे लमलता ज
ु
लता हो - Class
C + + में क्लास का अत्यधिक महत्व ै ह । इसी महत्ता के कारर् शुरू में इस भाषा का नाम ही विथ क्लास
‘ र्ा ।क्लास की Concept के प्रयोग के कारर् ही C + + प्रोसीजर भाषा के सार् – सार् ऑब्जेक्ट ओरिएन्टेड
प्रोग्रामिंग की एक Advance भाषा बन सकी है । Class यूजर के द्वारा बनाये जाना वाला डेटा टाइप ै ह ।
क्लास उन ऑब्जेक््स का समूह होती ै ह , न्द्जनके Property Same होते हैं एविं न्द्जनका व्यवहार व सिंबिंि (
relationships ) सािारर् ( Common ) होता हैं । ऑब्जेक््स में डेटा एविं उस डेटा को मैननप
ु
जर
ललए Code Contain रहता है ।एक ऑब्जेक्ट के डेटा एविं कोड का Complete set क्लास की सहायता से य
ू
लेट करने के
ूजर – डडफाइरड है और क्लास एक प्रोग्रालमिंग भाषा के डेटा टाइप की तरह व्यवहार करता है
चँकक क्लास य
ू
डडफाइरड डेटा टाइप बनाया जा सकता ै ह ।वास्तव में , ऑब्जेक््स क्लास टाइप के िेरियेबल होते हैं । एक
बाि क्लास केपरिभावित होने के बाद , उस क्लास से संबंधित ( belonging ) ऑब्जेक््स के ककतने भी
िेम्बि बनाए जा सकते हैं । प्रत्येक ऑब्जेक्ट क्लास टाइप के डेटा से associate रहता है , न्द्जससे वो बनता
है ।अतः एक क्लास समान टाइप के ऑब्जेक््स का सिंग्रह होती है ।
उदाहरर् – mango , apple एविं orange क्लास fruit के मेम्बर हैं |COVID-19
। अतः यदद fruit एक क्लास की तरह डडफाइन होता है , तब कर्न , fruit mango ; एक ऑब्जेक्ट Generate
करेगा जो fruit क्लास से सिंबिंधित है ।
- Data Abstraction
Data Abstraction का आशय Total Complexity के Simplification से हैं
डेटा एब्सट्रैक्शन में ककसी काया को Complete करने के ललए केवल आवश्यक ज्ञान ही पयााप्त है ,
न कक उस काया की Internal Process एविं उससे सम्बन्द्रित Indirect ( अप्नत्यक्ष )रूप से होने वाले काया के
।
की
इस काया के ललए न्द्स्वच को दबाने से न्द्स्वच के अरदर क्या ह
ु
ज्ञान
उदाहिण – लाइट ऑन करने के ललए न्द्स्वच बोडा पर केवल एक न्द्स्वच को दबाने का काया ककया जाता है ।
आ न्द्स्वच के दबाने से लाइट कैसे ऑन
होती है , यह सब जानने की आवश्यकता नहीिं होती है | यह गुर् एब्सट्रैक्शन कहलाता ै ह । - Polymorphism
Polymorphism ‘ पॉली ‘ ( poly ) शब्द की उत्पवत्त ग्रीक शब्द से ह
ु
ई ै ह न्द्जसका अर्ा ै ह ‘ अनेक ‘ ( many ) - Data Encapsulation Or data Hiding
Data Encapsulation ऑब्जेक्ट ओररएरटेड प्रोग्रालमिंग शैली का एक अत्यरत महत्वप
ू
ू
ु
एविं मॉकफाज्म ( morphism ) का अर्ा है । रूप ‘ ( form ) । अतः पॉलीमॉकफाज्म का अर्ा है ” अनेक रूप ‘ (
many forms ) |
ऑब्जेक्ट ओररएरटेड प्रोग्रालमिंग में पॉलीमॉकफाज्म का अर्ा ै ह , समान नाम के फिंक्शरस ( भेम्बर फिंक्शरस )
इन फिंक्शरस का व्यवहार न्द्जन ऑब्जेक््स को वे Specify करते हैं , उनके आिार पर अलग – अलग होता
है ।
र्ा तथ्य ै ह । डेटा और
लेशन कहलाता ै ह ।एनकैप्स
ु
फिंक्शन को एकल इकाई ( class ) में सिंगदित करना , एनकैप्स
ु
पाता ै ह और उपयोग हो सकने वाले ऑब्जेक्ट को स
ू
Internal Form को यजर से छ
लेशन ऑब्जेक्ट के
। इस प्रकार डेटा एनकैप्स
ु
एक Class की Properties ककसी द
ू
धचत भी करता है ।डेटा
एनकैप्स
ुलेशनअर् ाात् Functions व Data का Integration करना ।डेटा एनकैप्सुलेशन के द्वारा प्रोग्राम एविं डेटा
इस प्रकार यह प
ू
लेशन एक रक्षक की तरह काया - Inheritance
इनहेररटेरस भी ऑब्जेक्ट ओररएरटेड प्रोग्राम शैली की एक महत्वपूर्ा एविं उपयोगी ववशेषता ै ह । इसके द्िािा
ूस े र प्रोग्राम के द्वारा प्रभाववत नहीिं होते हैं
,द
करता है
सिे Class से प्राप्त की जा सकती हैं या Inherit की जा सकती हैं
उदाहिण – मोटरसाइककल अपने आप में एक क्लास ै ह एविं यह द
ु
पदहया क्लास का मेम्बर ै ह । द
ु
है । पहले से बने क्लास को Base Class क्लास कहते हैं और नए क्लास कोDerived Class क्लास कहते हैं
। - Message Passing
वा में उपन्द्स्र्त ककसी क्लास का नए क्लास के रूप में पररभावषत करने की क्षमता रखता
मोटरसाइककल एक द
ु
पदहया क्लास
पदहया ऑटोमेदटव ै ह ।
ऑटोमेदटव क्लास का सदस्य है एविं ऑटोमेदटव बेस क्लास ै ह और दुपदहया डडराइब्ड क्लास ै ह । इस प्रकारCOVID-19
Stay home Stay Safe
GPM
Message Passing ऑब्जेक्ट ओररएरटेड प्रोग्रालमिंग में , ऑब्जेक्ट ओररएरटेड प्रोग्राम अनेक ऑब्जेक््स के सम
ू
ह
होते हैं , जो आपस में एक – द
ू
स े र को आवश्यकता पडने पर मैसेज Send हैं और Receive भी करते हैं ।
उदाहिण – मैसेज पालसिंग ऑब्जेक्ट का नाम , ववधि ( method ) का नाम और स
ू
होता है । अतः मैसेज प्राप्त करके ऑब्जेक्ट एक ननन्द्श्चत प्रकिया को Implement करके Result प्रस्त
त करता
ु
है ।
ककसी ऑब्जेक््स के ललए एक मैसेज एक ननन्द्श्चत प्रकिया अर्वा फिंक्शन को Implement करने के ललए
चना जो भेजना ै ह , को अपने
में रखता ै ह । जैसे –
Statement employee. salary ( name ) ; यहाँ employee Object है , salary मैसेज है । और name पैरामीटर है
ूचना ( information ) को एकत्र करता है
जो स
- Reusability
Reusability एक नई क्लास ललखने , Create करने और Debug करने के बाद इसे द
ू
स े र प्रोग्राम्स में उपयोग
के ललए Distributed ककया जा सकता है , इसे ररय
ू
जेबबललटी कहा जाता ै ह ।
रिय
ू - एक एप्लीकेशन में स
ू
यह ककसी प्रोसीजरल लैंग्वेज में फिंक्शन की लाइब्रेरी को लभरन प्रोग्राम में जोडने के समान ै ह । Reusability की
Concept डेटा ऑपरेशरस के Abstraction और Encapsulation के सार् Generate होती है ।
चनाओिं को शेयर ककया जाता ै ह ।
जेबबमलटी िें ऑब्जेक्ट ओरिएन्टेड डेिलपिेन्ट ननम्नमलखित प्रकाि से होता है-
त्तर में - Future Projects में कोड और डडजाइरस का Reuse ककया जाता है ।
- Dynamic Binding
बाइिंडडिंग प्रोसीजर कॉल की उस डेटा से किया को denote करती है , न्द्जसे प्रोसीजर कॉल के प्रत्य
ु
यह पॉलीमॉकफाज्म और इनहेररटेरस से सिंबिंधित होती ै ह । पॉलीमॉकफाक े रफ े ररस से ज
ु
उस रेरेरस के डायनेलमक टाइप पर ननभार करता है
Advantage Of OOPS :-
Object Oriented Programming Language के ननम्नमलखित लाभ ैं ह:-
प्रोग्राम के द
ू
डा एक फिंक्शन कॉल
वाक ) Operational हेत
ु
Objects के सम
ू
ूट ककया जाता है । डायनेलमक बाइिंडडिंग का अर्ा दी गई प्रोसीजर कॉल से सिंबिंधित कोड की जानकारी
एक्जीक्य
कॉल के रनटाइम के समय तक न होना है ।
स े र भागों में प्रयोग नहीिं ककया जा सकता ै ह ।
हों के - OOP की तकनीक से एक Program को Quickly (शीघ्रताप
ू
आिार पर अनेक भागों में ववभक्त ककया जा सकता है । - इस तकनीक से छोटे – छोटे Program के Combination द्वारा Large Program सरलताप
ू
जा सकते हैं - इस पद्िनत में Inheritance के द्वारा redundant code को हटाया जा सकता है एविं पहले से उपन्द्स्र्त
Classes के उपयोग को extend ककया जा सकता है । - डेटा हाइडडिंग का Concept प्रोग्रामर को सुरक्षक्षत प्रोग्राम बनाने में सहायता करता ै ह न्द्जसे कोड द्वारा
वाक तैयार ककएCOVID-19
- इसके द्वारा कायारत स्तरीय मॉड्य
ू
ू
ू
लों से हो जाता ै ह , न्द्जससे
ू
लों का सिंबिंि सरलतापवाक द
स े र मॉड्य
गम और सरक्षक्षत हो जाता ै ह ।
ु
कोड को बार – बार नहीिं ललखना पडता है , न्द्जसके कारर् प्रोग्राम में समय की बचत होती ही ै ह तर्ा
Develop की क्षमता में वृद्धि होती ै ह ।
- इस तकनीक के द्वारा Object की Classes के सार् उनसे सिंबिंधित Functions को भी integrated कर
ददया जाता है , न्द्जससे प्रोसेलसिंग का काया स
ु
ज
ु
ु
Java Class and Object:-
Class:-
java में सब क
ु
डा ह - Objects के बीच Communication के ललए मैसेज पालसिंग Method द्वारा External System के सार्
इिंटरफेस करना आसान होता है । - इस प्रोग्रालमिंग के द्वारा सॉफ्टवेयर जदटलता ( complexity ) को आसानी से हल ककया जा सकता है
। - सॉफ्टवेयर ववकलसत ( develop ) करना आसान होता है ।
ज़
एक class object का एक group है। यह एक Template या blueprint है न्द्जसमें से object
बनाए जाते हैं। यह एक logical entity है। यह physical entity नहीिं हो सकता।
और रिंग, जैसे ड्राइव और ब्रेक जैसी ववशेषताएिं हैं।
A class in Java can contain:
Fields
Methods
Constructors
Blocks
Nested class and interface
Create a Class:-
आ है। उदाहरर् के ललए: वास्तववक जीवन में, एक car एक object है। car में वजन
छ class और object के सार्-सार् इसकी ववशेषताओिं और method के सार्
String Name = “Ankit”;
int age = 20;
public void display()
त ही easy है इसके ललए आप class keyword का य
ू
Java में class create करना बह
ु
करते है।
class Student
{COVID-19
{
}
GPM
Stay home Stay Safe
System.out.println(“Name is “+Name+”Age is”+age);
public static void main(String args[])
{
this.Show();
}
}
उदाहरर् में Student नाम की एक class create की गयी है। इस class में name और age
दो variables है। इसमें Show() नाम से method भी declare ककया गया है।
Java Object:-
Java में, Class से Obejct बनाया जाता है। हमने पहले ही Student नाम की Class बना
ली र्ी, इसललए अब हम इसका इस्तेमाल object बनाने के ललए कर सकते हैं।
यदद हम वास्तववक दुननया पर ववचार करते हैं, तो हम अपने आस-पास कई object, car,
dogs, humans आदद को पा सकते हैं। इन सभी वस्त
ु
होता है।
Create an object:-
public class Student{
int x = 5;
String Name = “Ankit”;
int age = 20;
public void display()
{
ओिं का एक State और एक Behaviour
}
}
}
public static void main(String args[])
{
this.Show();
}
public static void main(String[] args) {
Student myobj = new Student();
System.out.println(myobj.x);
}
System.out.println(“Name is “+Name+”Age is”+age);COVID-19
Stay home Stay Safe
GPM
सबसे पहले हमे object बना ने के ललए जावा basic syntax ललखा उसके बाद । जब
आप कोई भी object create करते है तो सबसे पहले उस class का constructor call होता
है। contructor बना ने के ललए हमे brackets का य
ू
ज़ करना पडता है।
उसके बाद object print करने के ललए System.out.println (myobj.x); ललखा हमने।
इस तरह से Java मैं Class और Object बनाए जाते है।
Abstraction & encapsulation-
Data तर्ा function को एक single unit में wrap करना encapsulation कहलाता है तर्ा वह single
unit न्द्जससे data wrap ह
ु
Inheritance:-
आ है class कहलाती है, एक class के अिंदर data outside world से access
नही ककया जा सकता, अगर जरुरी features को show कर background detail को hide कर ददया जाये
तो यह तरीका data abstraction कहलाता है।
Java में Inheritance ये Object Oriented Programming का एक प्रकार है | न्द्जसमे एक class की
properties और methods ककसी दुस े र class में inherit की जाती है |
ुख्यतः Parent class और child class का इस्तेमाल ककया जाता है | इसमे
Inheritance में म
Parent class को Base class या super class भी कहा जाता है और Child class को Derived
class या sub class भी कहा जाता है | C++ ये Inheritance के प्रकार को support करता है,
लेककन Java; Multiple Inheritance को support नहीिं करता मतलब Java में Parent class को
कई child classes हो सकते है, लेककन child classes को लसफा एक ही Parent class होता है |# Stay home Stay Safe
COVID-19
Sample Inheritance
Java में Inheritance के ललए extends keywword का इस्तेमाल ककया जाता है |
Syntax for Inheritance
class parent_class{
//statements;
}
class child_class extends parent_class{
//statements;
}
Example for Inheritance
यहाँ example में A ये एक parent class है और B ये child class है | B class; A class की सभी
properties; inherit कर सकता है |
class A{
//statements;
}
class B extends A{
//statements;COVID-19
}
Full Example for Inheritance
Source Code :
//B.java
class A{
void disp(){
System.out.println(“Parent Class”);
}
}
class B extends A{
void show(){
System.out.println(“Child Class”);
}
public static void main(String args[]){
B obj = new B();
obj.disp();
obj.show();
}
}
Parent Class
Child Class
Output :
Java में तीन Inheritance होते है |# Stay home Stay Safe
GPM
COVID-19
- Single Inheritance
- MultiLevel Inheritance
- Hierarchical Inheritance
- Single Inheritance
//B.java
class A{
Source Code :
void disp(){
System.out.println(“Parent Class”);
}
}
class B extends A{
void show(){
System.out.println(“Child Class”);
}
public static void main(String args[]){
B obj = new B();
obj.disp();
obj.show();
}
}
Parent Class
Output : COVID-19
Child Class
- Multilevel Inheritance
//C.java
class A{
Source Code :
void disp(){
System.out.println(“Class A”);
}
}
class B extends A{
void show(){
System.out.println(“Class B”);
}
}
class C extends B{
void getdata(){
System.out.println(“Class C”);
}
public static void main(String args[]){COVID-19
C obj = new C();
obj.disp();
obj.show();
obj.getdata();
}
}
Class A
Class B
Class C
Output :
- Hierarchical Inheritance
//C.java
class A{
void disp(){
System.out.println(“Class A”);
}
Source Code : COVID-19
Stay home Stay Safe
GPM
}
class B extends A{
void show(){
System.out.println(“Class B”);
}
}
class C extends A{
void getdata(){
System.out.println(“Class C”);
}
public static void main(String args[]){
C obj = new C();
obj.disp();
obj.getdata();
B b = new B();
b.show();
}
}
Class A
Class C
Class B
Output : # Stay home Stay Safe
COVID-19
Multiple Inheritance
GPM
Multiple Inheritance के ललए Java में एक से ज्यादा Base classes होते है और सभी base
classes को एक ही derived class inherit करता है |
Java में Multiple Inheritance; support नहीिं करता है ,लेककन interface के माध्यम से multiple
Inheritance Java में support करता है |
Multiple Inheritance; Java िें support क्यों नहीं किता ?
Java में जब Multiple Inheritance आता है, तब Ambiguity problem आ जाता है | Java में
extends के सार् कहा पर भी Multiple Inheritance का उल्लेख नहीिं ककया गया है | लेककन
interface में इसे इस्तेमाल ककया जा सकता है |
Java में एक से ज्यादा parent class नहीिं हो सकते | Program में तीन class है | C class; A और
B इन दोनों class को inherit करता है | Source Code :
}
class B{
//C.java
class A{
void disp(){
System.out.println(“Class A”);
}
void show(){
System.out.println(“Class B”);
}
}
class C extends A, B{COVID-19