Object Oriented Programming System (ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग सिस्टम )
1) Object
2) Class
3) Data abstraction or Data Hiding
4) Encapsulation
5) Inheritance
6)Polymorphism
7) Dynamic Binding
8) Message passing
Syntax-
class class_name{
variable_declaration;
----------
----------
function_declaration/definition
protected:
variable_declaration;
----------
function_declaration/definition;
public:
variable_declaration;
----------
function_declaration/definition;
In Other Functions(अन्य फंक्शन में):-
class_name object_name;
Example-
class employee{
private:
int empid;
char empname[20];
float salary;
void grosssalary();
public:
void getemp();
void setemp();
}e1,e2;
In Other Functions (अन्य फंक्शन में):-
employee e; // object (instance) of a class
2) Run time (रन टाइम) -
Object-Oriented Programming System (OOP's) is a programming language model organized around user data (objects) rather than procedure or structure of program. In PPL, a program has been viewed as a logical procedure which takes input, processes it, and produces output. In OOPL user data and associated methods are considered as a single unit i.e class. With the help of classes we can create flexible and reliable software's. Simula was the first object-oriented programming language. Java, C#, PHP, Python etc are the most popular OOP's languages today.
ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग सिस्टम एक प्रोग्रामिंग मॉडल है जो यूजर के डाटा पर केन्द्रित होता है ना कि प्रोग्राम के स्ट्रक्चर या प्रोसीजर पर। PPL में प्रोग्राम को एक लॉजिकल प्रोसीजर माना जाता है जो इनपुट ग्रहण करती है उसे प्रोसेस करती है एवं आउटपुट प्रदान करती है। OOPL में यूजर के डाटा एवं सम्बंधित फंक्शन को एक ही ईकाई माना जाता है जिसे क्लास कहते है। क्लासेस की सहायता से लचीले एवं विश्वसनीय सॉफ्टवेर तैयार किये जा सकते है।सिमुला, पहली ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग लैंग्वेज थी। वर्तमान समय में जावा, C#, पीएचपी, पाइथन इत्यादि प्रचलित OOP's लैंग्वेज मानी जाती है।
Following are the key features/concepts of OOP's ,which resolves the problems of conventional programming-
OOP's में प्रयुक्त किये जाने वाले कीफीचर / सिद्धांत निम्न है जो कि पुरानी लैंग्वेजेस की समस्याओ को दूर करते है:-
2) Class
3) Data abstraction or Data Hiding
4) Encapsulation
5) Inheritance
6)Polymorphism
7) Dynamic Binding
8) Message passing
1) Object (ऑब्जेक्ट) - Object is a basic unit or an entity of object oriented system. Object represents any person, place, things, bank account and data of any table, for which program will be created. programming Object is similar to object of real world. Object has two things data members and member functions. first of all we need to know different objects and their relationship to understand any problem. Object shows the existence of class design or template and takes memory bytes in computer system. Different objects communicate to each other through messages. In two ways objects are defining in OOP's programming.
ऑब्जेक्ट , ऑब्जेक्ट ओरिएंटेड सिस्टम की मूलभूत ईकाई या एंटिटी होती है। ऑब्जेक्ट के द्वारा किसी व्यक्ति, स्थान, वस्तु, बैंक अकाउंट या टेबल के डाटा को दर्शाया जाता है जिसके लिए प्रोग्राम तैयार करना है। प्रोग्रामिंग ऑब्जेक्ट, वास्तविक दुनिया के ऑब्जेक्ट के सामान ही होते है। एक ऑब्जेक्ट में डाटा मेम्बेर्स एवं मेम्बर फंक्शन उपस्थित होते है। सर्वप्रथम किसी समस्या को हल करने के लिए उसमे उपस्थित ऑब्जेक्ट एवं उनके मध्य संबंधो को समझना आवश्यक होता है। ऑब्जेक्ट, किसी क्लास डिजाईन या टेम्पलेट के अस्तित्व को प्रदर्शित करते है एवं मेमोरी में स्थान ग्रहण करते है। विभिन्न ऑब्जेक्ट आपस में मैसेज के द्वारा संवाद करते है।OOP's प्रोग्रामिंग में ऑब्जेक्ट को निम्न दो प्रकार से प्रदर्शित किया जा सकता है:-
2) Class (क्लास)- A class is an abstract data type(ADT) and it is similar to inbuilt data type. Class is used to represent an entity or object of real world. All the data members and associated functions of an object/entity are represented in a class. Classes are created through class keyword. By default domain/access specifier of class is private.
एक क्लास एक ADT(एब्सट्रैक्ट डाटा टाइप) है एवं यह इनबिल्ट डाटा टाइप के सामान ही होता है। क्लास के द्वारा वास्तविक दुनिया के ऑब्जेक्ट या एंटिटी को व्यक्त किया जाता है। ऑब्जेक्ट के सभी डाटा मेम्बेर्स एवं मेम्बर फंक्शन को क्लास के अंतर्गत दर्शाया जाता है। क्लास को class कीवर्ड की सहायता से तैयार किया जाता है। क्लास का पूर्व निर्धारित डोमेन या एक्सेस स्पेसीफायर प्राइवेट होता है।
Specification of a class is as follows (क्लास का प्रारूप निम्न है)-
class class_name{
variable_declaration;
----------
----------
function_declaration/definition
protected:
variable_declaration;
----------
function_declaration/definition;
public:
variable_declaration;
----------
function_declaration/definition;
}obj1, obj2 , ....,objn;
In Other Functions(अन्य फंक्शन में):-
class_name object_name;
Example-
class employee{
private:
int empid;
char empname[20];
float salary;
void grosssalary();
public:
void getemp();
void setemp();
}e1,e2;
In Other Functions (अन्य फंक्शन में):-
employee e; // object (instance) of a class
3) Data abstraction (डाटा एब्सट्रैकशन)- Data abstraction represents the object of real world with all its necessary features and other details are hidden in background.With the help of public interface user can access data without knowing its details and programmer doesn’t allow to make any change in any data member or member function of class. Generally in OOP's, user data is written in private section and accessing methods (interface) are written in public section of class. It is also known as data hiding.
driving a car , calculator and mobile phones etc are the examples of data abstraction.
डाटा एब्सट्रैकशन के द्वारा वास्तविक दुनिया के ऑब्जेक्ट को उसके सभी महत्वपूर्ण फीचर के साथ दर्शाया जाता है अन्य विस्तृत जानकारी को बैकग्राउंड (परदे के पीछे) में छुपाकर रखा जाता है। यूजर, पब्लिक इंटरफ़ेस का प्रयोग कर क्लास के डाटा को एक्सेस कर सकते है परन्तु प्रोग्रामर द्वारा उन्हें क्लास के डाटा मेम्बर या मेम्बर फंक्शन में परिवर्तन करने की अनुमति नहीं दी जाती है। सामान्यतः OOP's में यूजर डाटा को प्राइवेट सेक्शन में एवं एक्सेसिंग मेथड्स को पब्लिक सेक्शन में रखा जाता है। इसे डाटा हाईडिंग के नाम से भी जाना जाता है।
कार चलाना, कैलकुलेटर एवं मोबाइल फ़ोन इत्यादि डाटा एब्सट्रैकशन के उदाहरण है।
Encapsulation (इनकैप्सुलेशन)- It is a fundamental concept of OOP’s. it represents data members and functions of an object in a single unit called class. Generally, In a class data members are written in private section and member functions are written in public section. Here, user can access data externally by accessing public functions(interface) so that data members are safe from unauthorized user access. r data members access is controlled by the programmer.
यह OOP’s का एक मूलभूत सिद्धांत है। इसमें किसी ऑब्जेक्ट के डाटा मेम्बर एवं मेम्बर फंक्शन को एक साथ एक एकल ईकाई क्लास के रूप में प्रदर्शित किया जाता है। सामान्यतः एक क्लास में डाटा मेम्बेर्स को प्राइवेट सेक्शन में एवं मेम्बर फंक्शन को पब्लिक सेक्शन में लिखा जाता है। यहाँ यूजर पब्लिक इंटरफ़ेस का प्रयोग कर डाटा मेंबर्स को बाह्य रूप से एक्सेस कर सकता है जिससे क्लास के डाटा मेम्बर, अनाधिकृत बाह्य एक्सेस से सुरक्षित रहते है। डाटा मेम्बर की एक्सेस को प्रोग्रामर द्वारा नियंत्रित किया जाता है।
Data abstraction and encapsulation are supplement to each other. But data abstraction represents the behavior of objects in different views whereas in data encapsulation security is provided to user data and functions within class design.
डाटा एब्सट्रैकशन एवं इनकैप्सुलेशन एक दुसरे के पूरक होते है। डाटा एब्सट्रैकशन में ऑब्जेक्ट के व्यव्हार को अलग-अलग व्यू में दर्शाया जाता है जबकि डाटा इनकैप्सुलेशन में क्लास डिजाईन के अंतर्गत यूजर डाटा एवं फंक्शन को सुरक्षा प्रदान की जाती है।
5) Inheritance (इनहेरिटेंस)- It is an important key feature of OOP's. In inheritance one class can inherit important data and functions of another class. It increases the re-usability of program code. it means, once the program is created, it can be directly used in other programs up to several times. Inheritance can also represent objects of real world and their relationships.
यह OOP’s का एक महत्वपूर्ण की फीचर है। इनहेरिटेंस में एक क्लास द्वारा दूसरी क्लास के महत्वपूर्ण डाटा एवं फंक्शन को विरासत में प्राप्त किया जाता है। यह प्रोग्राम कोड के पुनः प्रयोग को बढ़ावा देता है अर्थात एक प्रोग्राम पूर्ण रूप से तैयार होने के पश्चात् कई प्रोग्राम में सीधे प्रयुक्त किया जा सकता है। इनहेरिटेंस वास्तविक दुनिया के ऑब्जेक्ट एवं उनके मध्य संबंधो को भी व्यक्त करता है।
Example:-
Vehicle Class Inheritance (व्हीकल क्लास का इनहेरिटेंस)
6)Polymorphism (पालीमोर्फिस्म)- It is also known as “one interface multiple methods” it means an interface has multiple methods (family of functions) which can apply on different types of data members of a class but functions fundamental meaning or definition remain unchanged. All methods must share same name or symbol of the interface.
Generally, there are five types of inheritance (सामान्यतः यह पांच प्रकार का होता है)-
a.) Single inheritance (सिंगल इनहेरिटेंस)
b.) Multiple inheritance (मल्टीप्ल इनहेरिटेंस)
c.) Multilevel inheritance (मल्टीलेवल इनहेरिटेंस)
d.) Hierarchical inheritance (हाईरारकीकल इनहेरिटेंस)
e.) Hybrid inheritance (हाइब्रिड इनहेरिटेंस)
b.) Multiple inheritance (मल्टीप्ल इनहेरिटेंस)
c.) Multilevel inheritance (मल्टीलेवल इनहेरिटेंस)
d.) Hierarchical inheritance (हाईरारकीकल इनहेरिटेंस)
e.) Hybrid inheritance (हाइब्रिड इनहेरिटेंस)
इसे "वन इंटरफ़ेस, मल्टीप्ल मेथडस" के नाम से भी जाना जाता है अर्थात एक इंटरफ़ेस में उपस्थित कई मेथडस (फंक्शन की फॅमिली) को क्लास के भिन्न-भिन्न प्रकार के डाटा मेम्बर्स पर लागू किया जा सकता है परन्तु फंक्शन के मूलभूत अर्थ में परिवर्तन नहीं किया जाता है। प्रत्येक मेथड द्वारा एक ही नाम या चिन्ह का प्रयोग किया जाता है।
Polymorphism is of two types (पालीमोर्फिस्म दो प्रकार का होता है) –
1) Compile time (कम्पाइल टाइम)-
(a) Function overloading (फंक्शन ओवरलोडिंग)
(b) Operator overloading (ऑपरेटर ओवरलोडिंग)
(a) Function overloading (फंक्शन ओवरलोडिंग)
(b) Operator overloading (ऑपरेटर ओवरलोडिंग)
2) Run time (रन टाइम) -
(a) Virtual function (वर्चुअल फंक्शन)
7) Dynamic Binding- Binding is a special process in which we can bind a procedure call with its response code. It is of following two types-
बाईन्डिंग (बंधन) एक विशेष प्रक्रिया है जिसमे हम प्रोसीजर कॉल को उसके रेस्पोंस कोड के साथ बांध सकते है।यह निम्न दो प्रकार की होती है:-
a) Static binding (स्टेटिक बाईन्डिंग) - In static binding user can bind a procedure call with its response code at compile time. This process is also known as early binding and it is done by the compiler.
इसमें यूजर, प्रोसीजर कॉल को उसके रेस्पोंस कोड के साथ कम्पाइल टाइम पर बांध सकता है। इस प्रक्रिया को अर्ली बाईन्डिंग के नाम से भी जाना जाता है एवं यह प्रक्रिया कम्पाइलर के द्वारा पूर्ण की जाती है।
b) Dynamic binding(डायनामिक बाईन्डिंग) - In dynamic binding user can bind a procedure call with its response code at run time. When program is executed then it's suitable response code will be bind with its procedure call by the CPU automatically. Dynamic binding is also known as late binding. This binding can be seen in inheritance and polymorphism(virtual functions) of OOP's.
इसमें यूजर, प्रोसीजर कॉल को उसके रेस्पोंस कोड के साथ रनटाइम पर बांध सकता है। जब प्रोग्राम को रन किया जाता है तब CPU द्वारा स्वतः ही योग्य रेस्पोंस कोड को उसकी प्रोसीजर कॉल के साथ बांधा जाता है। इस प्रक्रिया को लेट बाईन्डिंग के नाम से भी जाना जाता है। यह प्रक्रिया OOP's के इनहेरिटेंस एवं पालीमोर्फिस्म(वर्चुअल फंक्शन) सिद्धांत में देखी जा सकती है।
Example( उदाहरण ):-
Shape Class
8) Message passing(मैसेज पासिंग) - There are many objects exist in the object oriented programming model. These objects can communicate to each other with the help of messages like Humans are communicating to each other with the help of language. In this process, these steps were followed-
ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग मॉडल में कई ऑब्जेक्ट उपस्थित होते है। ये ऑब्जेक्ट मैसेज की सहायता से एक-दुसरे से संवाद करते है जिस प्रकार मनुष्य भाषा की सहयता से एक-दुसरे से संवाद करते है। इस प्रक्रिया में निम्न पदों का अनुसरण किया जाता है:-
1) Creating classes that defines objects and their behavior.
क्लासेस तैयार करना, जो ऑब्जेक्ट एवं उनके व्यव्हार को परिभाषित करे
2) Creating object variable for class definition.
क्लास के लिए ऑब्जेक्ट वेरिएबल तैयार करना
3) Establishing communication between objects.
ऑब्जेक्टस के मध्य संवाद स्थापित करना
A message is a request generated by a class object to compiler for accessing specific procedure, compiler performs authentication of that request and then invoke requested procedure which produces result.
एक मैसेज क्लास ऑब्जेक्ट के द्वारा किसी विशेष प्रोसीजर को एक्सेस करने के लिए कम्पाइलर से की गयी एक रिक्वेस्ट होती है जिसके पश्चात् कम्पाइलर उस रिक्वेस्ट का ऑथेंटिकेशन करता है एवं मांगी गयी प्रोसीजर को रन कर परिणाम प्रदान करता है।
Hence “Message passing is the simple, easy and best technique to represent communication between objects of real world in a system .”
अतः "मैसेज पासिंग, वास्तविक दुनिया के ऑब्जेक्टस के मध्य संवाद को सिस्टम में प्रदर्शित करने की सबसे साधारण, आसान एवं श्रेष्ठ युक्ति है।"
Syntax-
class_object.procedure_call (arguments);
Example-
Student s;
s.setstudent();
Employee e;
e.getemp();
e.setstudent(); //error
Example-
Student s;
s.setstudent();
Employee e;
e.getemp();
e.setstudent(); //error
No comments:
Post a Comment