Thursday, October 26, 2023

Java's support system जावा का सहयोगी तंत्र

a) Java Code- Java code is used to define the Java applet.
जावा कोड- जावा कोड का प्रयोग, जावा एप्लेट को परिभाषित करने के लिए किया जाता है।

b) Byte code – It is a compilation of Java code that is referenced in the applet tag and transferred to the user's computer.
बाइट कोड- यह जावा कोड का संकलन होता है जिसे एप्लेट टैग में संदर्भित किया गया है और उपयोगकर्ता के कंप्यूटर पर स्थानांतरित किया जाता है।

c) HTML- Its full name is Hypertext Markup Language. It is used to create electronic documents (called Web pages) that are displayed on the World Wide Web. Each page contains a series of hyperlinks to reach other pages. Every web page you see on the Internet is written in HTML code.
एचटीएमएल- इसका पूरा नाम हाइपरटेक्स्ट मार्कअप लैंग्वेज है। इसका उपयोग इलेक्ट्रॉनिक दस्तावेज़ (जिसे वेब पेज कहा जाता है) बनाने के लिए किया जाता है जो वर्ल्ड वाइड वेब पर प्रदर्शित होते हैं। प्रत्येक पेज में अन्य पेज पर पहुचने के लिए हाइपरलिंक की एक श्रृंखला होती है। इंटरनेट पर आप जो भी वेब पेज देखते हैं, वह एचटीएमएल कोड में लिखा जाता है।

d) Applet Tag - HTML tag specifying an applet tag. It is used to insert a Java applet into an HTML document.
एप्लेट टैग- एचटीएमएल टैग एक एप्लेट टैग निर्दिष्ट करता है। इसका उपयोग एचटीएमएल दस्तावेज़ में जावा एप्लेट को सम्मिलित करने के लिए किया जाता है।

e) Web Browser- A web browser is a special type of application software that is used to search, retrieve, and display information on the World Wide Web. Hot Java, Netscape Navigator, Internet Explorer, Google Chrome and Mozilla Firefox etc. are examples of popular web browsers.
वेब ब्राउज़र- वेब ब्राउजर एक विशेष प्रकार का एप्लिकेशन सॉफ्टवेयर होता है जिसका उपयोग वर्ल्ड वाइड वेब पर जानकारियों की खोज करने, उन्हें प्राप्त करने और प्रदर्शित करने के लिए किया जाता है। हॉट जावा, नेटस्केप नेविगेटर, इंटरनेट एक्स्प्लोरर, गूगल क्रोम और मोजिला फायरफॉक्स इत्यादि प्रचलित वेब ब्राउज़र के उदाहरण है।

f) Web Server- It is a program that accepts requests from the user and provides output as per requirement. Example- Apache Tomcat
वेब सर्वर- यह एक प्रोग्राम है जो उपयोगकर्ता से अनुरोध स्वीकार करता है और आवश्यकता के अनुसार आउटपुट प्रदान करता है। उदाहरण- अपाचे टॉमकैट

g) Proxy Server - From security point of view, it works as an intermediate server between the client/work station and the main server and provides protection to both the parties from harm coming from each other.
प्रॉक्सी सर्वर- यह सुरक्षा कि दृष्टि से क्लाइंट/वर्क स्टेशन और मुख्य सर्वर के मध्य एक मध्यवर्ती सर्वर का कार्य करता है एवं दोनों पक्षों को एक-दुसरे से पहुचने वाली हानि से सुरक्षा प्रदान करता है।

web browser वेब ब्राउज़र

A web browser is a special type of application software that is used to search, retrieve, and display information on the World Wide Web. It receives images, text, videos and other important files from the World Wide Web in the form of web pages. In the client-server model, the web browser is a client running on the local computer.A person contacts a web server and requests information. Now the web server provides the results to the web browser regarding his request. The browser presents it to the user as a web page. A web browser can be run on a computer, mobile or any other internet-enabled device. It is a Java enabled web browser that runs Java applets.
वेब ब्राउजर एक विशेष प्रकार का एप्लिकेशन सॉफ्टवेयर होता है जिसका उपयोग वर्ल्ड वाइड वेब पर जानकारियों की खोज करने, उन्हें प्राप्त करने और प्रदर्शित करने के लिए किया जाता है। यह वर्ल्ड वाइड वेब से वेबपेज के रूप में चित्र, टेक्स्ट, वीडियो और अन्य महत्वपूर्ण फाइलें प्राप्त करता हैं। क्लाइंट-सर्वर मॉडल में, वेब ब्राउज़र स्थानीय कंप्यूटर पर चलने वाला एक क्लाइंट है जो वेब सर्वर से संपर्क स्थापित करता है और जानकारी प्राप्त करने के लिए अनुरोध करता है अब वेब सर्वर, वेब ब्राउज़र को उसके अनुरोध के सापेक्ष परिणाम प्रदान करता है। ब्राउज़र इसे उपयोगकर्ता के समक्ष एक वेब पेज के रूप में प्रस्तुत करता है। कंप्यूटर, मोबाइल या किसी अन्य इंटरनेट-सक्षम डिवाइस पर वेब ब्राउज़र को रन किया जा सकता है। यह जावा सक्षम वेब ब्राउज़र होता है जो जावा एप्लेट को रन करता है।

Hot Java, Netscape Navigator, Internet Explorer, Google Chrome and Mozilla Firefox etc. are examples of popular web browsers.
हॉट जावा, नेटस्केप नेविगेटर, इंटरनेट एक्स्प्लोरर, गूगल क्रोम और मोजिला फायरफॉक्स इत्यादि प्रचलित वेब ब्राउज़र के उदाहरण है।

Setting path and class path in Java जावा में पथ एवं क्लास पथ सेट करना

After installing Java Development Kit, you have to set the path and class path of JDK in the system. Here path is the address of bin folder of JDK, in environment variable for path set PATH=C:\Program Files\Java\JDK1.6.20\bin;
जावा डेवलपमेंट किट इंस्टॉल करने के पश्चात्, आपको सिस्टम में जेडीके का पथ एवं क्लास पथ सेट करना होता है यहाँ पथ जेडीके के बिन फोल्डर का पता होता है, पथ के लिए पर्यावरण चर में set PATH=C:\Program Files\Java\JDK1.6.20\bin;  लिखे  and एवं 

Class path describes the location where all the required files are available which are used in the application. In Windows OS, you can set the Java classpath from the control panel as follows-
क्लास पथ उस स्थान का वर्णन करता है जहां सभी आवश्यक फाइलें उपलब्ध हैं जो एप्लिकेशन में उपयोग की जाती हैं। विंडोज़ ओएस में जावा क्लासपथ कंट्रोल पैनल से निम्न प्रकार सेट कर सकते है-

1. First select start सर्वप्रथम प्रारंभ(start) का चयन करें
2. Go to Control Panel कंट्रोल पैनल पर जाएं
3. Choose System and Security सिस्टम और सुरक्षा चुनें
4. Select advanced system settings उन्नत(advanced) सिस्टम सेटिंग्स का चयन करें
5. Click on Environment Variables पर्यावरण चर पर क्लिक करें
6. Click New under System Variables सिस्टम वेरिएबल के अंतर्गत नवीन (New) पर क्लिक करें
7. Now add the class path (CLASSPATH) as variable name and the files path (C:\Program Files\Java\JDK1.6.20\jre) as variable value.
अब क्लास पथ (CLASSPATH) को वेरिएबल नाम के रूप में और फाइलों के पथ (C:\Program Files\Java\JDK1.6.20\jre) को वेरिएबल मान के रूप में जोड़ें।
8. Select OK. ठीक(Ok) चुनें।

Java download and installation जावा डाउनलोड एवं इंस्टालेशन

Some PCs may have Java pre-installed. To check if you have installed Java on Windows PC, search for Java in the Start bar or type the following in the command prompt (cmd.exe)-
कुछ पीसी में जावा पहले से इंस्टॉल हो सकता है। यह जांचने के लिए कि क्या आपने विंडोज पीसी पर जावा स्थापित किया है, जावा के लिए स्टार्ट बार में खोजें या कमांड प्रॉम्प्ट (cmd.exe) में निम्नलिखित टाइप करें-

C:\Users\Your Name>java –version

If Java is installed, you will see lines like this depending on the Java version-
यदि जावा स्थापित है, तब आपको जावा संस्करण के आधार पर कुछ इस तरह की पंक्तियाँ दिखाई देंगी –




If Java is not installed on your computer i.e. JDK is not already installed in your system then first download and install it from oracle.com as per your operating system (like Windows, Linux or others).
यदि आपके कंप्यूटर पर जावा स्थापित नहीं है अर्थात जेडीके आपके सिस्टम में पहले से इंस्टॉल नहीं है तब पहले इसे अपने ऑपरेटिंग सिस्टम (जैसे विंडोज,लिनक्स या अन्य) के अनुसार oracle.com से डाउनलोड और इंस्टॉल करें।

You can install Java Development Kit in your computer system in the following two ways-
जावा डेवलपमेंट किट को आप निम्न दो तरीके से अपने कंप्यूटर सिस्टम में इंस्टॉल कर सकते है-

1. You can download the Java Development Kit, the command prompt version of Java. In which you only get Java platform and you can create a program using any editor and run that file from command prompt.
आप जावा का कमांड प्रांप्ट वर्शन जावा डेवलपमेंट किट डाउनलोड कर सकते है। जिसमे सिर्फ आपको जावा प्लेटफार्म मिलता है और आप कोई भी एडिटर यूज़ करके प्रोग्राम बना सकते है और कमांड प्रांप्ट से उस फाइल को रन करवा सकते है।

2. You can download Java's Integrated Development Environment (IDE). This is an environment in which you can create programs and run them. NetBeans IDE or Eclipse is available to you on Java commercial websites.
जावा का इंटीग्रेटेड डेवलपमेंट एनवायरनमेंट (आईडीई) डाउनलोड कर सकते है ये एक ऐसा वातावरण होता है जिसमे आप प्रोग्राम बनाकर, उसे रन कर सकते है। जावा की व्यावसायिक वेबसाइट पर आपको नेटबीन्स आईडीई (NetBeans IDE) या एक्लिप्स (Eclipse) उपलब्द्ध है।

Java Command Prompt Platform and NetBeans IDE can be downloaded from the following link.
जावा कमांड प्रांप्ट प्लेटफार्म और नेटबीन्स आईडीई निम्न लिंक से डाउनलोड किये जा सकते है।

http://www.oracle.com/technetwork/java/javase/downloads/index.html

Wednesday, October 18, 2023

JAVA and WWW जावा और वर्ल्ड वाइड वेब-

The World Wide Web, commonly known as WWW, W3 or the Web, is an interconnected system of storing publicly accessible web pages. In 1989, Sir Tim Berners-Lee, a British scientist, invented the World Wide Web (WWW) while working at an organization called CERN.
वर्ल्ड वाइड वेब को सामान्यतः WWW, W3 या वेब के नाम से जाना जाता है यह सुलभ सार्वजनिक वेबपेजों को संगृहीत करने की एक इंटरकनेक्टेड प्रणाली है। सन 1989 में सर टिम बर्नर्स-ली ब्रिटिश वैज्ञानिक ने सर्न नामक संस्था में कार्य करते हुए वर्ल्ड वाइड वेब (WWW) का आविष्कार किया था।

The World Wide Web was developed primarily to meet the demand for automated information-sharing among scientists working in universities and institutions around the world. The World Wide Web maintains web pages that provide both information and control.
वर्ल्ड वाइड वेब को मुख्यतः दुनिया भर के विश्वविद्यालयों और संस्थानों में कार्यरत वैज्ञानिकों के बीच स्वचालित सूचना-साझाकरण की मांग को पूरा करने के लिए विकसित किया गया था। वर्ल्ड वाइड वेब द्वारा ऐसे वेब पेज रखे जाते हैं जो सूचना और नियंत्रण दोनों प्रदान करते हैं।

Web pages contain HyperText Markup Language (HTML) tags that enable us to retrieve, manipulate, and display documents from around the world.
वेब पेजों में हाइपर टेक्स्ट मार्कअप लैंग्वेज (एचटीएमएल) टैग होते हैं जो हमें सम्पूर्ण विश्व से दस्तावेज़ों को प्राप्त करने, उनमे परिवर्तन करने और उन्हें प्रदर्शित करने हेतु सक्षम बनाते हैं।

Before Java, the World Wide Web was limited to displaying static images and icons. Java enabled WWW to display animations, graphics, games, and wide-range special effects. Java communicates with a web page through a special tag called an applet.
जावा से पहले, वर्ल्ड वाइड वेब केवल स्थिर छायाचित्रों और चिन्हों के प्रदर्शन तक ही सीमित था। जावा की सहायता से WWW एनिमेशन, ग्राफिक्स, गेम्स और वाइड रेज स्पेशल इफेक्ट्स को प्रदर्शित करने में सक्षम हुआ। जावा एक वेब पेज के साथ एप्लेट नामक एक विशेष टैग के माध्यम से संवाद करता है।

A Java user makes a Hyper Text Transfer Protocol (HTTP) request to retrieve an HTML document through a web-browser. As soon as WWW accepts the request, the request is processed and the required HTML document is provided. . This HTML document contains an applet tag that identifies the desired applet and transfers the applet to the user's computer.
जावा उपयोगकर्ता वेब-ब्राउज़र के माध्यम से एक एचटीएमएल दस्तावेज़ प्राप्त करने के लिए, एक हाइपर टेक्स्ट ट्रान्सफर प्रोटोकॉल (एचटीटीपी) अनुरोध करता है जैसे ही WWW अनुरोध को स्वीकार करता है, अनुरोध को संसाधित किया जाता है और आवश्यक एचटीएमएल दस्तावेज प्रदान किया जाता है। इस एचटीएमएल दस्तावेज़ में एक एप्लेट टैग होता है जो चाहे गए एप्लेट की पहचान करता है एवं संबंधित एप्लेट को उपयोगकर्ता के कंप्यूटर में स्थानांतरित कर देता है।

A Java enabled browser on the user's computer understands the byte code, runs it and provides output.
उपयोगकर्ता के कंप्यूटर पर जावा सक्षम ब्राउज़र बाइट कोड को समझकर, उसे रन करता है एवं आउटपुट प्रदान करता है।

Friday, October 6, 2023

Java and Internet जावा और इंटरनेट

The Internet is a vast network that connects computers around the world. Internet is said to be a network of many networks i.e. it contains various types of public, private, educational, commercial and local to global level networks.
इंटरनेट एक विशाल नेटवर्क है जो दुनिया भर के कंप्यूटरों को जोड़ता है। इंटरनेट को कई नेटवर्क का एक नेटवर्क कहा  जाता है है अर्थात इसमें विभिन्न प्रकार के  सार्वजनिक, निजी, शैक्षणिक, व्यावसायिक और स्थानीय से वैश्विक स्तर के नेटवर्क उपस्थित होते हैं। 

Through the Internet, we can share information and communicate with other people from anywhere in the world. These are linked to a wide range of technologies such as electronic, wireless and optical networking.
इंटरनेट के माध्यम से, हम दुनिया में कहीं से भी जानकारी साझा कर सकते हैं और अन्य लोगो के साथ संवाद कर सकते हैं। यह  इलेक्ट्रॉनिक, वायरलेस और ऑप्टिकल नेटवर्किंग इत्यादि प्रौद्योगिकियों की एक व्यापक व्यवस्था से जुड़े होते हैं।
 
It works by using a packet routing network that follows the Internet Protocol (IP) and Transport Control Protocol (TCP). Internet is mainly being used in electronic mail (email), file transfer, search engine, e-commerce, social networking, online banking, education etc.
यह एक पैकेट रूटिंग नेटवर्क का उपयोग करके काम करता है जो इंटरनेट प्रोटोकॉल (आईपी) और परिवहन नियंत्रण प्रोटोकॉल (टीसीपी) का पालन करता है। इंटरनेट का उपयोग मुख्यतः इलेक्ट्रॉनिक मेल (ईमेल) , फ़ाइल स्थानांतरण, खोज यन्त्र, ई-कॉमर्स, सोशल नेटवर्किंग, ऑनलाइन बैंकिंग, शिक्षा इत्यादि में किया जा रहा है।

Java is tightly linked to the Internet. An Internet user can use Java to create an applet program and then run it locally using a Java-enabled browser such as Hot Java, Net Escape Navigator, Internet Explorer, etc. 
जावा इंटरनेट से दृढ़ता से जुड़ा हुआ है एक इंटरनेट उपयोगकर्ता जावा का उपयोग एप्लेट प्रोग्राम बनाने के लिए कर सकता हैं और इसके पश्चात् वह इसे स्थानीय रूप से जावा-सक्षम ब्राउज़र जैसे हॉट जावा, नेट एस्केप नेविगेटर, इन्टरनेट एक्स्प्लोरर इत्यादि का उपयोग करके रन कर सकता हैं।

Java applets have made the Internet a de facto extension of the local computer's storage system.
जावा एप्लेट्स ने इंटरनेट को स्थानीय कंप्यूटर के स्टोरेज सिस्टम का वास्तविक विस्तार बना दिया है।

Monday, October 2, 2023

Applications of Object Oriented Programming ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग के अनुप्रयोग

Object Oriented Programs are used to solve complex problems and create different types of software like:-
ऑब्जेक्ट ओरिएंटेड प्रोग्राम्स का प्रयोग जटिल समस्याओ को हल करने एवं विभिन्न प्रकार के सॉफ्टवेर निर्मित करने के लिए किया जाता है जैसे:-

a) Real Time Systems Design – Real time systems have many inherent complexities that can be easily handled by providing a unified framework through object oriented programming. Also, the system is analyzed and behavior checked from time to time.
रियल टाइम सिस्टम्स डिजाईन- रियल टाइम सिस्टम में अंतर्निहित कई जटिलताएं होती हैं जिन्हें ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग के द्वारा एक एकीकृत ढांचा प्रदान करके आसानी से नियंत्रित किया जा सकता है। साथ ही समय समय पर सिस्टम का विश्लेषण और व्यवहार को जांचा जाता हैं।

b) Simulation and Modeling- Modeling complex systems like ecology, zoology, medical science and agricultural science is a very difficult task. Because their interactions need to be clearly understood. Here an alternative approach to understanding these is provided through object-oriented programming.
सिमुलेशन एवं मॉडलिंग- पारिस्थितिकी, प्राणीशास्त्र,चिकित्सा विज्ञान और कृषि विज्ञान जैसी जटिल प्रणालियों को मॉडल करना अत्यंत मुश्किल कार्य होता है। क्योंकि इनकी अंतःक्रियाओं को स्पष्ट रूप से समझने की आवश्यकता होती है। यहाँ ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग के द्वारा इन्हें समझने हेतु एक वैकल्पिक दृष्टिकोण प्रदान किया जाता है।

c) Object Oriented Database – These databases store objects instead of data, here the characteristics and functions of an object are displayed.
ऑब्जेक्ट ओरिएंटेड डेटाबेस- ये डेटाबेस, डेटा के स्थान पर ऑब्जेक्ट को स्टोर करते हैं यहाँ एक ऑब्जेक्ट की विशेषताओ एवं कार्यों को प्रदर्शित किया जाता है।

d) Office Automation System- Under this, by creating applications like email, word processing, web calendar and desktop publishing, one can communicate with people inside and outside the office and exchange information.
ऑफिस ऑटोमेशन सिस्टम- इसके अंतर्गत ईमेल,वर्ड प्रोसेसिंग,वेब कैलेंडर एवं डेस्कटॉप प्रकाशन जैसे एप्लीकेशन निर्मित कर, कार्यालय के अंदर और बाहर के लोगों से संवाद किया जा सकता हैं एवं सूचनाओ का आदान प्रदान किया जा सकता है।

e) Hypertext and Hypermedia - In object oriented programming, a framework can be created for hypertext which makes it easy to store, search and edit hypertext. It can also store links to many other forms of media, from pictures to sound, in the form of hypermedia. 
हाइपरटेक्स्ट एवं हाइपरमीडिया- ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग में हाइपरटेक्स्ट के लिए एक ढांचा तैयार किया जा सकता है जो हाइपरटेक्स्ट को आसानी से संग्रहीत करने , खोजने और संपादित करने का कार्य करता है। यह हाइपरमीडिया के रूप में चित्रों से लेकर ध्वनि तक, मीडिया के कई अन्य रूपों के भी लिंक भी संगृहीत कर सकता है।

f) Artificial Intelligence and Expert Systems – These are special computer software that work to solve complex problems related to a specific field. These applications are reliable, highly responsive, understandable and high performing.
आर्टिफीसियल इंटेलिजेंस एवं एक्सपर्ट सिस्टम- ये कंप्यूटर के विशेष सॉफ्टवेयर होते हैं जो एक विशिष्ट क्षेत्र से संबंधितजटिल समस्याओं को हल करने का कार्य करते हैं ये एप्लीकेशन, भरोसेमंद, अत्यधिक प्रतिक्रियाशील, बोधगम्य एवं उच्च प्रदर्शन वाले होते है।

g) Computer Integrated Manufacturing (CIM), Computer Aided Manufacturing (CAM) and Computer Aided Design (CAD) systems – Here object oriented programming is used to design precise and clear blueprints and flowcharts.
कंप्यूटर इंटीग्रेटेड मैन्युफैक्चरिंग (CIM), कंप्यूटर एडिड मैन्युफैक्चरिंग (CAM) एवं कंप्यूटर एडिड डिजाईन (CAD) सिस्टम- यहाँ ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग का उपयोग शुद्ध एवं स्पष्ट ब्लूप्रिंट और फ्लोचार्ट डिजाइन करने के लिए किया जाता है।

h) Client Server System – Here, Object-Oriented Client-Server Internet (OCSI) applications are created by incorporating three major technologies – Client Server, Object-Oriented Programming and Internet, etc.
क्लाइंट सर्वर सिस्टम- यहाँ तीन प्रमुख तकनीको क्लाइंट सर्वर, ऑब्जेक्ट-ओरिएंटेडप्रोग्रामिंग एवं इंटरनेट को सम्मिलित कर ऑब्जेक्ट-ओरिएंटेड क्लाइंट-सर्वर इंटरनेट (OCSI) एप्लिकेशन बनाये जाते हैं इत्यादि।

Advantages / Benefits of Object Oriented Programming ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग के लाभ

a) In object-oriented programming languages, user data and related functions are kept together as a single unit called a class and class encapsulation is used to protect the data from external unauthorized access.
ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग लैंग्वेज में, यूजर के डेटा एवं सम्बंधित फंक्शन को एक साथ एकल इकाई के रूप में रखा जाता है जिसे क्लास कहा जाता है एवं क्लास इनकैप्सूलेशन का प्रयोग कर बाह्य अनाधिकृत एक्सेस से डेटा को सुरक्षा प्रदान करती है।

b) With the help of Object Oriented Programming, a programmer can easily understand and write code to solve real-world problems, i.e. it embodies the events of daily life.
ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग की सहयता से, प्रोग्रामर वास्तविक दुनिया की समस्या को आसानी से समझकर उसे हल करने के लिए कोड लिख सकता है अर्थात यह दैनिक जीवन के वृतांत को मूर्तरूप देती है।

c) Using abstraction, the programmer displays only the necessary information, unnecessary information can be hidden behind the scenes.
एब्सट्रेक्शन के उपयोग से प्रोग्रामर केवल आवश्यक इनफार्मेशन को ही प्रदर्शित करता है, अनावश्यक इनफार्मेशन को परदे के पीछे छुपाया जा सकता है।

d) Object Oriented Programming uses the bottom-up method in which small fully defined modules are first created and finally the main program is created by combining them, hence the complexity of the software can be handled easily.
ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग बॉटम-अप पद्धति का प्रयोग करती है जिसमे पहले छोटे पूर्ण परिभाषित मोडुल तैयार किये जाते है एवं अंत में इन्हें जोड़कर मुख्य प्रोग्राम तैयार किया जाता है अतः सॉफ्टवेर की जटिलता को आसानी से संभाला जा सकता है।

e) Mistakes in object oriented programs can be discovered and corrected easily.
ऑब्जेक्ट ओरिएंटेड प्रोग्राम में गलतियों को खोजकर, आसानी से सुधारा जा सकता है।

f) The code of object oriented programs can be easily changed or transmitted, that is, the cost of maintaining the software is very low and the budget of the software does not increase.
ऑब्जेक्ट ओरिएंटेड प्रोग्राम के कोड को आसानी से परिवर्तित या प्रसारित किया जा सकता है अर्थात सॉफ्टवेयर के रख-रखाव की लागत बहुत कम होती है एवं सॉफ्टवेर का बजट नहीं बढ़ता है।

g) It can well define Abstract Data Types (ADT).
यह एब्सट्रेक्ट डेटा टाइप (ADT) को अच्छी तरह से परिभाषित कर सकती है।

h) Inheritance and polymorphism make object-oriented programming extensible and promote reusability of written code.
इनहेरिटेंस और पालीमोर्फिस्म, ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग को विस्तार-योग्य बनाते है एवं यह लिखित कोड के पुनर्प्रयोग(reusability) को बढ़ावा देते है।

i) It can manage the complexity of the software easily.
यह सॉफ्टवेयर की जटिलता का प्रबंधन आसानी से कर सकता है।

j) Here objects exchange messages to talk to each other.
यहाँ ऑब्जेक्ट एक-दूसरे से बात करने के लिए मेसेज का आदान प्रदान करते है।

Principles of Object Oriented Programming, ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग के सिद्धांत

Principles of Object Oriented Programming ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग के सिद्धांत-

Some important principles used in object oriented programming, which overcome the problems of old programming languages, are as follows -
ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग में प्रयुक्त किये जाने वाले कुछ महत्वपूर्ण सिद्धांत, जो कि पुरानी प्रोग्रामिंग लैंग्वेजेस की समस्याओ को दूर करते है निम्न है -

1) object ऑब्जेक्ट
2) class क्लास
3) Data Abstraction डेटा एब्सट्रेक्शन
4) Encapsulation इनकैप्सुलेशन
5) inheritance इन्हेरिटाँस
6) Polymorphism पालीमोर्फिस्म
7) Dynamic Binding डायनामिक बाईन्डिंग
8) Message passing मैसेज पासिंग


1. object ऑब्जेक्ट- 
An object is the basic unit or entity of an object-oriented system. Object represents the data of a person, place, object, bank account or table for which the program has to be prepared. Programming objects are similar to real-world objects. An object contains data members and member functions. First of all, to solve a problem, it is necessary to understand the objects present in it and the relationships between them.Objects represent the existence of a class design or template and occupy space in memory. Different objects communicate with each other through messages. 
ऑब्जेक्ट, एक ऑब्जेक्ट ओरिएंटेड सिस्टम की मूलभूत ईकाई या एंटिटी होती है। ऑब्जेक्ट के द्वारा किसी व्यक्ति, स्थान, वस्तु, बैंक अकाउंट या टेबल के डेटा को दर्शाया जाता है जिसके लिए प्रोग्राम तैयार करना होता है। प्रोग्रामिंग ऑब्जेक्ट, वास्तविक दुनिया के ऑब्जेक्ट के सामान ही होते है। एक ऑब्जेक्ट में डेटा मेम्बेर्स एवं मेम्बर फंक्शन उपस्थित होते है। सर्वप्रथम किसी समस्या को हल करने के लिए उसमे उपस्थित ऑब्जेक्ट एवं उनके मध्य संबंधो को समझना आवश्यक होता है। ऑब्जेक्ट, किसी क्लास डिजाईन या टेम्पलेट के अस्तित्व को प्रदर्शित करते है एवं मेमोरी में स्थान ग्रहण करते है। विभिन्न ऑब्जेक्ट आपस में मैसेज के द्वारा संवाद करते है। 

2. class क्लास- 
A class is an ADT (Abstract Data Type) and is similar to inbuilt data types. Real-world objects or entities are expressed in programs through classes. All the data members and member functions of the object are represented in the class itself. Class is created with the help of keyword called class. The predefined domain or access specifier of a class is private.
एक क्लास, एक ए.डी.टी (एब्सट्रैक्ट डेटा टाइप) है एवं यह इनबिल्ट डेटा टाइप के सामान ही होता है। क्लास के द्वारा वास्तविक दुनिया के ऑब्जेक्ट या एंटिटी को प्रोग्राम में व्यक्त किया जाता है। ऑब्जेक्ट के सभी डेटा मेम्बेर्स एवं मेम्बर फंक्शन को क्लास के अंतर्गत ही दर्शाया जाता है। क्लास को class नामक कीवर्ड की सहायता से तैयार किया जाता है। क्लास का पूर्व निर्धारित डोमेन या एक्सेस स्पेसीफायर प्राइवेट होता है।
Example उदाहरण -

class Employee{
int empid;
void grosssalary();
public:
void getemp();
void setemp();
}

In other functions/classes अन्य फंक्शन/क्लास में-

Employee e=new Employee(); 
 //This is an object of class Employee यह क्लास एम्प्लोयी का एक ऑब्जेक्ट है


3.Data abstraction डेटा एब्सट्रेक्शन- Data abstraction represents a real-world object with all its important properties while keeping other detailed information hidden in the background. Users can access the class's data using the public interface, but they are not allowed by the programmer to make changes to the class's data members or member functions. Generally in OOP, user data is kept in the private section and accessing methods are kept in the public section. This is also known as data hiding. In daily life, driving a car, calculator and mobile phone etc. are examples of data abstraction.
डेटा एब्सट्रेक्शन के द्वारा वास्तविक दुनिया के ऑब्जेक्ट को उसके सभी महत्वपूर्ण गुणों के साथ दर्शाया जाता है अन्य विस्तृत जानकारी को परदे के पीछे (बैकग्राउंड) में छुपाकर रखा जाता है। यूजर, पब्लिक इंटरफ़ेस का प्रयोग कर क्लास के डेटा को एक्सेस कर सकते है परन्तु प्रोग्रामर द्वारा उन्हें क्लास के डेटा मेम्बर या मेम्बर फंक्शन में परिवर्तन करने की अनुमति नहीं दी जाती है। सामान्यतः ऊप (OOP) में यूजर डेटा को प्राइवेट सेक्शन में एवं एक्सेसिंग मेथड्स को पब्लिक सेक्शन में रखा जाता है। इसे डेटा हाईडिंग के नाम से भी जाना जाता है। दैनिक जीवन में कार चलाना, कैलकुलेटर एवं मोबाइल फ़ोन इत्यादि डेटा एब्सट्रेक्शन के उदाहरण है।


4. encapsulation इनकैप्सुलेशन- This is a fundamental principle of object oriented programming. In this, the data member and member function of an object are displayed together as a single unit (class). Generally, in a class, data members are written in the private section and member functions are written in the public section. Here the user can access the data members externally using the public interface, thereby protecting the data members of the class from unauthorized external access. Access to data members can be controlled by the programmer. Data abstraction and encapsulation complement each other. In data abstraction, the behavior of objects is displayed in different views, whereas in data encapsulation, protection is provided to user data and functions under class design.
यह ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग का एक मूलभूत सिद्धांत है। इसमें किसी ऑब्जेक्ट के डेटा मेम्बर एवं मेम्बर फंक्शन को एक साथ एक एकल ईकाई (क्लास) के रूप में प्रदर्शित किया जाता है। सामान्यतः एक क्लास में डेटा मेम्बेर्स को प्राइवेट सेक्शन में एवं मेम्बर फंक्शन को पब्लिक सेक्शन में लिखा जाता है। यहाँ यूजर पब्लिक इंटरफ़ेस का प्रयोग कर डेटा मेंबर्स को बाह्य रूप से एक्सेस कर सकता है जिससे क्लास के डेटा मेम्बर, अनाधिकृत बाह्य एक्सेस से सुरक्षित रहते है। डेटा मेम्बर की एक्सेस को प्रोग्रामर द्वारा नियंत्रित किया जा सकता है। डेटा एब्सट्रेक्शन एवं इनकैप्सुलेशन एक दुसरे के पूरक होते है। डेटा एब्सट्रेक्शन में ऑब्जेक्ट के व्यव्हार को अलग-अलग दृश्यों में प्रदर्शित किया जाता है जबकि डेटा इनकैप्सुलेशन में क्लास डिजाईन के अंतर्गत यूजर डेटा एवं फंक्शन को सुरक्षा प्रदान की जाती है।

5. Inheritance इनहेरिटेंस- This is an important principle of object oriented programming. With the help of which one class can inherit important data and functions of another class. It promotes re-use of program code, that is, after a program is completely ready, it can be used directly in many programs. Inheritance also expresses real-world objects and the relationships between them. Generally it is of five types - 
यह ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग का एक महत्वपूर्ण सिद्धांत है। जिसकी सहायता से एक क्लास द्वारा, दूसरी क्लास के महत्वपूर्ण डेटा एवं फंक्शन को विरासत में प्राप्त किया जा सकता है। यह प्रोग्राम कोड के पुनः प्रयोग को बढ़ावा देता है अर्थात एक प्रोग्राम पूर्ण रूप से तैयार होने के पश्चात् कई प्रोग्राम में सीधे प्रयुक्त किया जा सकता है। इनहेरिटेंस वास्तविक दुनिया के ऑब्जेक्ट एवं उनके मध्य संबंधो को भी व्यक्त करता है। सामान्यतः यह पांच प्रकार का होता है- 
a.) Single inheritance सिंगल इनहेरिटेंस 
b.) Multiple inheritance मल्टीप्ल इनहेरिटेंस
c.) Multilevel inheritance मल्टीलेवल इनहेरिटेंस
d.) Hierarchical inheritance हाईरारकीकल इनहेरिटेंस 
e.) Hybrid inheritance हाइब्रिड इनहेरिटेंस


6. Polymorphism पालीमोर्फिस्म- This is also known as "one interface, multiple methods", that is, multiple methods (family of functions) present in an interface can be applied to different types of data members of the class but the basic meaning of the function changes. is not done. Each method uses the same name or symbol. Polymorphism is of following two types
इसे "वन इंटरफ़ेस, मल्टीप्ल मेथडस" के नाम से भी जाना जाता है अर्थात एक इंटरफ़ेस में उपस्थित कई मेथडस (फंक्शन की फॅमिली) को क्लास के भिन्न-भिन्न प्रकार के डेटा मेम्बर्स पर लागू किया जा सकता है परन्तु फंक्शन के मूलभूत अर्थ में परिवर्तन नहीं किया जाता है। प्रत्येक मेथड द्वारा एक ही नाम या चिन्ह का प्रयोग किया जाता है। पालीमोर्फिस्म निम्न दो प्रकार का होता है
a. Compile Time Polymorphism कम्पाइल टाइम पालीमोर्फिस्म– 
(i) Function overloading फंक्शन ओवरलोडिंग
(ii) Operator overloading ऑपरेटर ओवरलोडिंग

b. Run Time Polymorphism रन टाइम पालीमोर्फिस्म – 
(i) Virtual Function वर्चुअल फंक्शन

7. dynamic binding डायनामिक बाईन्डिंग- 
In this type of binding, the user can bind a procedure call with its response code at runtime. The qualified response code is automatically tied to its procedure call by the CPU when the program is run. This process is also known as late binding. This process can be seen in the inheritance and polymorphism (virtual function) principles of object-oriented programming.
इस प्रकार के बंधन में यूजर, किसी प्रोसीजर कॉल को उसके रेस्पोंस कोड के साथ रनटाइम पर बांध सकता है। जब प्रोग्राम को रन किया जाता है तब सीपीयु द्वारा स्वतः ही योग्य रेस्पोंस कोड को उसकी प्रोसीजर कॉल के साथ बांधा जाता है। इस प्रक्रिया को लेट बाईन्डिंग के नाम से भी जाना जाता है। यह प्रक्रिया ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग के इनहेरिटेंस एवं पालीमोर्फिस्म (वर्चुअल फंक्शन) सिद्धांत में देखी जा सकती है।

8. Message passing मैसेज पासिंग - Many objects are present in the object oriented programming model. Just as humans communicate with each other with the help of language, similarly objects communicate with each other with the help of messages. Message passing is the simplest, easiest, and best way to demonstrate communication between real-world objects in a system. A message is a request made by a class object to the compiler to access a particular procedure, after which the compiler observes that request and, if found correct, runs the desired procedure and provides the result.
ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग मॉडल में कई ऑब्जेक्ट उपस्थित होते है। जिस प्रकार मनुष्य भाषा की सहयता से एक-दुसरे से संवाद करते है ठीक उसी प्रकार ऑब्जेक्ट मैसेज की सहायता से एक-दुसरे से संवाद करते है। मैसेज पासिंग, वास्तविक दुनिया के ऑब्जेक्टस के मध्य संवाद को सिस्टम में प्रदर्शित करने की सबसे साधारण, आसान एवं श्रेष्ठ युक्ति है। एक मैसेज, क्लास ऑब्जेक्ट के द्वारा किसी विशेष प्रोसीजर को एक्सेस करने के लिए कम्पाइलर से किया गया एक अनुरोध होता है जिसके पश्चात् कम्पाइलर उस अनुरोध का अवलोकन करता है एवं सही पाए जाने पर, चाही गयी प्रोसीजर को रन करके, परिणाम प्रदान करता है।

Syntax प्रारूप-
class_name class_object=new class_name ();

class_object.procedure_call (arguments);

Example उदाहरण-

Student s=new Student ();
s.setstudent ();//message passing

Programming Model, प्रोग्रामिंग मॉडल, Procedural Programming, प्रोसीज़रल प्रोग्रामिंग, Object Oriented Programming, ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग

Programming Model प्रोग्रामिंग मॉडल –

The structural explanation and implementation of a programming language is defined through a programming model, with the help of which we can prepare a program to solve a problem using the main features and building blocks of the programming language. In other words, we can say that "Programming model shows how a program is written in a programming language by analyzing it to solve a problem."

प्रोग्रामिंग मॉडल के द्वारा किसी प्रोग्रामिंग लैंग्वेज की संरचनात्मक व्याख्या एवं कार्यान्वयन को परिभाषित किया जाता है जिसकी सहायता से हम प्रोग्रामिंग लैंग्वेज के मुख्य फीचर एवं बिल्डिंग ब्लॉक्स का प्रयोग कर किसी समस्या को हल करने के लिए प्रोग्राम तैयार कर सकते है। दुसरे शब्दों में हम कह सकते है कि "प्रोग्रामिंग मॉडल यह दर्शाता है कि किस प्रकार एक प्रोग्रामिंग लैंग्वेज में, किसी समस्या को हल करने के लिए, उसका विश्लेषणकर प्रोग्राम लिखा जाता है।"

Generally, one of the following two programming models is used by most programming languages-

सामान्यतः अधिकांश प्रोग्रामिंग लैंग्वेज द्वारा निम्न दो में से एक प्रोग्रामिंग मॉडल प्रयुक्त किया जाता है-

A) Procedural Programming प्रोसीज़रल प्रोग्रामिंग
B) Object Oriented Programming ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग

A) Procedural Programming प्रोसीज़रल प्रोग्रामिंग – This type of programming language is based on procedures or structures. It does not focus on user data. If any software is created through procedural programming then it is very difficult and expensive to make changes in its design. Procedural programming is a top-down designing approach. It keeps the user data and its related functions separate, due to which if we want to make changes in the user data, then we will have to search for all the functions related to it and make changes in them too, which is a difficult task. In procedural programming, maintenance of software is very expensive and time consuming, which increases the budget of the project manifold. C, Pascal, FORTRAN, ALGOL, COBOL, BASIC etc. are considered procedural programming languages.

इस प्रकार की प्रोग्रामिंग लैंग्वेज प्रोसीजर या स्ट्रक्चर पर आधारित होती है। यह यूजर के डेटा पर केन्द्रित नहीं होती है। यदि प्रोसीज़रल प्रोग्रामिंग के द्वारा किसी सॉफ्टवेर का निर्माण किया जाता है तब उसके डिजाईन में परिवर्तन करना बहुत कठिन एवं महंगा होता है। प्रोसीज़रल प्रोग्रामिंग टॉप-डाउन डिजाइनिंग एप्रोच है। यह यूजर डेटा एवं उससे सम्बंधित फंक्शन को पृथक रखती है जिसके कारण यदि हम यूजर डेटा में परिवर्तन करना चाहते है तब हमे उससे सम्बंधित सभी फंक्शन को खोजकर, उनमे भी परिवर्तन करना होगा, जो कि एक कठिन कार्य है। प्रोसीज़रल प्रोग्रामिंग में सॉफ्टवेयर का रखरखाव बहुत महंगा एवं समय खर्च करने वाला होता है जिससे प्रोजेक्ट का बजट कई गुना बढ़ जाता है। सी, पास्कल, फ़ोरट्रान, ऐल्गॉल, कोबोल, बेसिक इत्यादि प्रोसीज़रल प्रोग्रामिंग लैंग्वेज मानी जाती है।

B) Object Oriented Programming ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग – This is a special type of programming model that focuses on user data. It does not depend on the structure or procedure of the programming language. In procedural programming, a program is considered to be a logical procedure that accepts input, processes it and provides output, but in object-oriented programming, the user's data and its related functions are considered as a single unit which is called a class.With the help of classes, flexible and reliable software can be created. Simula was the first object-oriented programming language. At present, C++, Java, C#, PHP, Python etc. are considered popular object oriented programming languages.

यह एक विशेष प्रकार का प्रोग्रामिंग मॉडल है जो यूजर के डेटा पर केन्द्रित होता है। यह प्रोग्रामिंग लैंग्वेज के स्ट्रक्चर या प्रोसीजर पर निर्भर नहीं होता है। प्रोसिजरल प्रोग्रामिंग में प्रोग्राम को एक लॉजिकल प्रोसीजर माना जाता है जो इनपुट ग्रहण करती है उसे प्रोसेस करती है एवं आउटपुट प्रदान करती है परन्तु ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग में यूजर के डेटा एवं उससे सम्बंधित फंक्शन को एक ही ईकाई माना जाता है जिसे क्लास कहा जाता है। क्लासेस की सहायता से लचीले एवं विश्वसनीय सॉफ्टवेयर तैयार किये जा सकते है। सिमुला, पहली ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग लैंग्वेज थी। वर्तमान समय में सी++, जावा, सी#, पीएचपी, पाइथन इत्यादि प्रचलित ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग लैंग्वेज मानी जाती है।

Java program to implement file input stream class to read binary data from image file.

import java.io.FileInputStream; import java.io.IOException; public class ReadImageFile {     public static void main(String[] args) {       ...