Jump to content

Java programming

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Nikl yadav (talk | contribs) at 09:07, 3 July 2014. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Redirect page

JAVA PROGRAMMING

In this course you will learn Java Programming in Hindi from very beginning. To learn this course we expect no any prior programming knowledge.

what is JAVA -

जावा एक उच्च स्तर(high level) , सी, फोरट्रान, Smalltalk, पर्ल, और कई दूसरी भाषाओ की तरह तीसरी पीढ़ी की प्रोग्रामिंग भाषा है | आप जावा में कही तरह के प्रोग्राम लिख सकते है | जैसे की खेल बनाना , किसी स्ट्रिंग को छोटा करना , कुछ भी calculate करना , या फिर डाटा स्टरे करना, इस तरह जावा की मदद से आप कोई भी सॉफ्टवेर बना सकते है , एवं उसका उपयोग किसी भी काम के लिए कर सकते है |

अन्य प्रोग्रामिंग भाषाओं की तुलना में, जावा सबसे ज्यादा सी( C ) के समान है लेकिन सिर्फ इसलिए की जावा सी की कोडिंग स्टाइल से काफी मिलती है तो वो सी नहीं हो जाती | सी और जावा दोनों बहुत अलग कंप्यूटर भाषाय है | ऐसा जरूर है की सी या सी प्लस प्लस जानने वाले को जावा सिखने में निश्चित रूप से मदद मिलेगी | लेकिन आप को जावा जानने के लिए सी जानने की ज़रूरत नहीं है |

अन्य प्रोग्रामिंग भाषाओं के मुकाबले जावा की खास बात यह है कि यह आपको विशेष प्रोगराम लिखने देता है जिसे हम अप्पलेट्स कहते है | Applet को इंटरनेट से डाउनलोड किया जा सकता है और एक वेब ब्राउज़र के भीतर सुरक्षित रूप से चलाया जा सकता है | पारंपरिक कंप्यूटर में समस्या यह थी की वो सुरक्षित नहीं थे | इन्टरनेट की साईट हमारे कंप्यूटर को कुछ ज्यादा ही एक्सेस कर पाती थी .लेकिन जावा ने इस समस्या का हल निकाला.

जावा, एप्लेट की क्षमताओ को सिमित बनाता है | इसके द्वारा यह इस समस्या को हल करती है. एक Java एप्लेट आपके अनुमति के बिना हार्ड डिस्क में कुछ नहीं लिख सकता हैं | यह कंप्यूटर की मेमोरी पर मनमाने तरीके से नहीं लिख सकता और इससे आपका कंप्यूटर सुरक्षित रहता है |

जावा में एप्लेट के अलावा भी कही और विशेषताए है । उनमे से जो सबसे महत्वपूर्ण है वो है JVM ( जावा वर्चुअल मशीन ) जो जावा को प्लेटफार्म से स्वतंत्र बनाता है । प्लेटफार्म स्वतंत्रता से यहाँ तात्पर्य यह है की आप जावा में लिखे किसी भी प्रोग्राम को आपकी कार , माइक्रोवेव और कंप्यूटर पर चला सकते है अगर इन सभी में JVM इन्सटाल्ड है तो ।


JAVA BASICS -

जावा प्रोजेक्ट की शुरुवात जेम्स गोसलिंग, माइक शेरिडन एवं पैट्रिक नौघटन के द्वारा 1991 में सन माइक्रोसिस्टम में हुई थी ।

जावा का सबसे पहला नाम ओक रखा गया था जो गोसलिंग के ऑफिस के बहार ओक के पेड़ से प्रभावित होकर रखा गया था, इसके पश्यात इसका नाम ग्रीन पड़ा और कुछ दिन बाद बदल कर जावा रख दिया गया । जावा नाम जावा कॉफ़ी से लिया गया है । कॉफ़ी सभी प्रोग्रामर की पहली पसंद होती है और इसीलिए जावा का नाम कॉफ़ी पर रख दिया गया ।

जावा का पहला संस्करण 1.0 1995 में बाज़ार में आया।

जावा एक प्लेटफार्म से स्वतंत्र भाषा है।

जावा की प्रोग्रामिंग ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग कहलाती है।

ऑब्जेक्ट ओरिएंटेड भाषा क्या होती है ?

ऑब्जेक्ट यानि वस्तु, हमारी आसपास की दुनिया वस्तुओ से भरी पड़ी है जैसे की कार, कंप्यूटर और कप ।

तो क्या कंप्यूटर में भी ऐसे कोई प्रोग्राम हो सकते है जो वस्तुओ से भरे हो? जी हाँ, जावा के सभी प्रोग्राम वस्तुओ के संग्रह से बनते है और एक ही प्रकार(सामान प्रकार ) की कही वस्तुए(Objects) मिलकर क्लास(Class) बनाते है।

Encapsulation क्या होता है ?

कार को चलाने के लिए आपको यह जानना आवश्यक नहीं होता की इसको बनाया किस प्रकार गया है उसी प्रकार जावा में भी encapsulation का प्रयोग होता है ।

जावा काम कैसे करती है ? प्रोग्रामर के लिए जावा सोर्स कोड => कम्पाइलर => बाइट कोड

यूजर के लिए बाइट कोड => JVM( जावा की कृतिम मशीन ) => कंप्यूटर

एप्लेट क्या होता है ?

जावा के प्रोग्राम का छोटा स्वरुप एप्लेट कहलाता है। इसमें कोई main() मेथड नहीं होता। यह प्रोग्राम एप्लेट क्लास को इन्हेरिट करके लिखा जाता है। एप्लेट में ग्राफ़िक्स के लिए awt का प्रयोग करते है ।

एप्लेट की लाइफ साइकिल इस प्रकार होती है

init => Start => कोई काम करो =>Stop => destroy

एप्लेट को हम किसी भी html फाइल में एम्बेडेड कर सकते है । इसको रन करने के लिए हम एप्लेट व्यूअर या इन्टरनेट ब्राउज़र का प्रयोग करते है।

JSP क्या होता है ?

JSP को सन माइक्रोसिस्टम ने 1999 में लांच किया था । JSP का पूरा नाम जावा सर्वर पैकेज है । यह बिलकुल PHP के सामान काम करता है । यह इन्टरनेट पर डायनामिक (निरंतर बदलने वाले ) पेजेज के लिए उपयोग में आता है । इसको रन करने के लिए हमे टॉमकैट सर्वर या जेटी की आवश्यकता पड़ती है।

JDK क्या होता है ? जावा में डेवलपमेंट करने के लिए उपलब्ध वस्तुओ के संग्रह को जावा डेवलपमेंट किट कहते है

HOW TO INSTALL JAVA IN COMPUTER OR LAPTOP -

जावा इन्स्टाल करने के लिए आपको ओरेकल की वेबसाइट पर जाना होगा और वहा से इसे डाउनलोड करना पड़ेगा| डाउनलोड करने से पहले ये देख ले की आपका कंप्यूटर ३२ बीट है या ६४ बीट ,जैसे ही डाउनलोड पूरी हो जाये , इसको दो बार क्लिक करके इन्स्टाल कर ली जिए. |

इन्स्टाल करने के बाद आप बताये गए कार्य को करिए :

क्लिक start-> Program ->Accesories-->cmd

अब इस दिए गए फोटो के अनुसार कमांड दे :यहाँ पर sdk ४.१ है , आप अपना sdk नंबर डालिए | हेल्लो प्रोग्राम आप यहाँ से सिख सकते है |


COMPILING AND RUNING PROGRAMS IN JAVA -

जावा सोर्स कोड को कमपाईल करना

जावा की कृतिम मशीन के, जावा प्रोग्राम को रन करने से पहले हमे जावा सोर्स कोड को byte code में कमपाईल करना पड़ता है | कमपाईल करने का काम जावाक (javac) कमपाईलर करता है | जावा का byte code प्लेटफार्म से स्वछंद(platform independent) होता है | प्लेटफार्म से स्वछंदता का मतलब यह है की इसको कोई फर्क नहीं पड़ता की आप कौन सा कंप्यूटर चला रहे है , विंडोज का , युनीक्स का या फिर मेक |


आप में से कही के दिमाग में यह प्रशन उठा होगा की जावा प्लेटफार्म से स्वछंद क्यों होता है ?

इसका सीधा सा उत्तर है : जावा वर्तुअल मशीन (Java Virtual Machine). जिसे हम JVM और में कृतिम मशीन कहता हूँ | इस मशीन के नाम से ही आपको यह स्पष्ट हो गया होगा की यह एक कृतिम मशीन है जो सिर्फ जावा को प्लेटफोर्म से स्वछंद करने के लिए ही बनाई गयी है | जावा का byte code इसी मशीन के लिए लिखा जाता है | और यह मशीन सभी प्लात्फोर्म पर समान रूप से काम करती है | इसे अलग शब्दों में हम यह कह सकते है , JVM एक हमारी मशीन और जावा के बीच की एक परत है |

अब हम देख्नेगे की जावा के प्रोग्राम को कमपाईल कैसे करते है | माना की प्रोग्राम का नाम Xyz.java (प्रोग्राम का पहला अक्षर हमेशा बड़ा होगा) है |

अब देखिये इसको कमपाईल करने का कमांड

Windows

c:/>  javac Xyz.java

In Linux % javac Xyz.java

अगर सौर्स कोड में कोई error नहीं होगा तो जावा एक या कही क्लास फाइल बनाएगा | हर क्लास फाइल ,प्रोग्राम की एक क्लास के लिए होगी ,जैसे प्रोग्राम में दो क्लास है तोह यह दो क्लास फाइल बनाएगा |ऊपर दिए प्रोग्राम के लिए यह Xyz.class नाम की फाइल बनाएगा |

जावा प्रोग्राम को रन करने का तरीका

एक बार Java source code को सफलता पूर्वक कमपाईल करने के बाद आप जावा की कृतिम मशीन को प्रोग्रम byte code को रन करने का कमाड दे सकते है | जैसे Windows

c:/>  java Xyz.java

In Linux % java Xyz.java


FIRST PROGRAM - HELLO -

class Hello {

   public static void main(String[] arguments) {
   System.out.println("Hello world");
   }

}

व्याख्या : इस प्रोग्राम को हमने क्लास से शुरू किया है | साधारणतह सभी प्रोग्राम क्लास के नाम से ही शुरू होते है | क्लास का नाम कुछ भी हो सकता है | यह हमेशा केपिटल अक्षर से शुरू होता है | जैसे हमने लिखा क्लास हेल्लो | क्लास का नाम लिखने के बाद ब्रेअकेट लगाना होता है | यह ब्रेअकेट क्यो लगाते है यह में आपको बाद में बताऊंगा | अभी के लिए बस इतना याद रखे की यह लगाना अनिवार्य है | प्रोग्राम हमेशा शुरू भी इससे होगा और अंत भी इससे ही होगा | एक और जरुरी बात , प्रोग्राम को हमेशा क्लास नाम से ही सेव करते है |

इस प्रोग्राम में लिखी अगली लाइन public static void main को आपको याद करना है | यह लाइन कही प्रोग्राम में इस्तमाल होने वाली है | पब्लिक का अर्थ है की यह किसी भी जगह प्रयोग में लाया जा सकता है , स्टेटिक का अर्थ है यह बदले का नहीं , वोइड का अर्थ है की इसका कोई उत्तर नहीं है एवं मैन का मतलब है दरवाजा (प्रोग्राम का प्रवेश द्वार ) स्ट्रिंग[] में दो ब्रेकेट लगे है , जब भी आप ऐसे कोई ब्रेकेट देखे तो समझ जाए की यह एक अर्रे है |

सिस्टम एक कॉन्सोल है , प्रिंट एलेन किसी शब्द को स्क्रीन पर इंकित करने के लिए काम में आता है | अगर हम प्रिंट एलेन की जगह प्रिंट का ही उपयोग करे तो लाइन नहीं बदलेगी , मतलब हम अगली लाइन में नहीं जायेगे | (println मतलब नेक्स्ट लाइन में प्रिंट करो ,प्रिंट लिखने पर वोह वही पर प्रिंट होगा) |

HELLO PROGRAM - PART 2 -

हमने अपनी पहली पोस्ट में देखा की हम हेल्लो वर्ल्ड को टर्मिनल पर किस प्रकार प्रिंट करा सकते है । आईये अब हम देखते है की इस प्रोग्राम को थोडा और interactive किस प्रकार बनाया जा सकता है ।

हमारा लक्ष्य :

आज हम ऐसा प्रोग्राम बनाना चाहते है जो user से उसका नाम पूँछ कर ,नाम के साथ हेल्लो प्रिंट करे । यह बिलकुल पहले वाले प्रोग्राम की तरह ही काम करता है बस इतना अंतर है की यहाँ हमे user का नाम पूछना है और उसे हेल्लो के साथ स्क्रीन पर प्रिंट करना है ।

इस प्रोग्राम के द्वारा हम पहली बार देखेंगे की जावा द्वारा उपलब्ध Packages का प्रयोग हम किस प्रकार कर सकते है । इस प्रोग्राम में user input लेने के लिए हम input output Package को इम्पोर्ट करेंगे और उसका प्रयोग प्रोग्राम में करेंगे । यह बहुत ही मजेदार प्रोग्राम है , क्यों की यहाँ user के दिए किसी भी इनपुट को कंप्यूटर respond करता है और ऐसा आभास देता है जैसे वो हम से बात कर रहा है । इसको आप Artificial Intelligence का पहला पायदान भी कह सकते है ।

WHAT IS CLASS -

जावा एक object oriented भाषा है . इसको समझने के लिए पहले आपको क्लास को समझना जरूरी है . सबसे पहले में आपको यह बता दू की अंग्रेजी में ऑब्जेक्ट का मतलब होता है कोई वस्तु, उदहारण के लिए आप किसी कुर्सी को ले सकते है , टेबल को , या पंखे को , कोई भी वस्तु जो आपके दिमाग में आये | आप पाएंगे की इन सभी ऑब्जेक्ट को आप कही अलग हिस्सों में बाट सकते है . जैसे टेबल कही प्रकार की हो सकती है , कितनी ही कंपनीयो द्वारा बनायीं जा सकती है | लेकिन इन सभी टेबलों में कुछ समानता भी है जैसे यह सभी टेबल के चार पैर है | इन सभी की लम्बाई और चोडाइ है | अब अगर हमे कोई प्रोग्राम बिना क्लास और ऑब्जेक्ट की मदद के बनाना हो तो हमें हर टेबल को अलग define करना होगा और उसकी साइज़ को बताने के लिए भी अलग integer declare करने होंगे |

पर चुकी हमारे पास जावा है , हमें ऐसा करने में कोई परेशानी नहीं होगी | इसको में आपको एक प्रोग्राम की मदद से समझिएगा | इस प्रोग्राम में हम object साइकिल के बारे में बात करेंगे और देखेंगे के कैसे एक साइकिल क्लास , उसके constructor एवं उसके method को प्रयोग में लाया जाता है |


public class Cycle {

   //  यहाँ हम जावा को बता रहे की हम तीन fields का प्रयोग करेंगे  
   //  cadence मतलब होता है की एक मिनट में साईकिल चलाने वाला कितने पैडल मार रहा है ।
   public int cadence; // यहाँ हम एक फिएल्ड को declare कर रहे है | और बता रहे है की वो पब्लिक है । 
   public int gear;
   public int speed;

   //  यह जावा का एक constructor है . इसके बारे में चर्चा बाद में करेंगे
   public Cycle(int startCadence, int startSpeed, int startGear) {
       gear = startGear;
       cadence = startCadence;
       speed = startSpeed;
   }

   // इस क्लास के चार मेथड है, दो में हम field में संख्या संगृहीत करते है , और बाकि 
   //दो में स्पीड को बढाने , घटाने का काम करते है   
   public void setCadence(int newValue) {
       cadence = newValue;
   }

   public void setGear(int newValue) {
       gear = newValue;
   }

   public void applyBrake(int decrement) {
       speed -= decrement;
   }

   public void speedUp(int increment) {
       speed += increment;
   }

}

WHY WE NEED CLASSES -

आप में से बहुत लोग जरूर यह सोचते होंगे की हमे आखिर क्लास की आवश्यकता क्यों पड़ी ? जब पहली बार प्रोग्रामिंग भाषाओ में वस्तुओं (objects ) के प्रयोग के बारे में सोचा गया, तब इन ऑब्जेक्ट की प्रॉपर्टीज को संग्रहित करने के लिए जगह की आवश्यता पड़ी । इसी जगह को हम क्लास कहते है।

ऑब्जेक्ट हमे प्रतिरूपकता एवं जानकारी छुपाने की सुविधा प्रधान करता है | क्लास हमे किसी भी कोड को बार बार उपयोग में लाने में मदद करती है | जैसे साइकिल बनाने वाली कंपनी एक ही ब्लुप्रिंट से कही साइकिल बना लेती है उसी प्रकार क्लास की सहायता से प्रोग्रामर एक ही क्लास का बार बार प्रयोग करके कही नए ऑब्जेक्ट बना सकता है |

बिना क्लास के ऑब्जेक्ट oriented प्रोग्रामिंग की कल्पना करना भी नामुमकिन है । क्लास के कही फायदे है जैसे Abstraction ,Inheritance और Polymorphism , इन सभी में इन्हेरिटेनस के बारे में हम पहले बात कर चुके है , Abstraction or Polymorphism के बारे में जल्द ही बात करेंगे ।

क्लास कितनी महत्वपूर्ण है , इस बात को हम एक उदहारण के द्वारा समझेंगे । मान लीजिये हमे कुछ कारो के बारे में जानकारी संगृहीत करनी है । अब बिना क्लास के हम इसको एक अर्रे (array) ya Hash में संगृहीत कर सकते है ।

जैसे पहली कार का नाम होंडा सिटी है और उसका mileage 14 km / लीटर है :

car[1] = "होंडा सिटी" , car[2] ="14" या car[name] = "होंडा सिटी" , car[mileage] ="14" |

दूसरी कार का नाम मारुती अल्टो है और उसका mileage 21 km / लीटर है : car1[2] = "मारुती अल्टो", car1[2] = "21" या car1[name] = "मारुती अल्टो", car1[mileage] ="21" |

तीसरी कार का नाम स्कोडा लौरा है और उसका mileage 13 km / लीटर है: car2[2] = "स्कोडा लौरा", car2[2] = "13" या car2[name] = "स्कोडा Laura", car2[mileage] ="13"|

इसी प्रकार मान लीजिये की हमारे पास 100 कारो का डाटा है । और उन सभी को हमने ऊपर दिए गए तरीके से संगृहीत कर लिया । अब आपको स्कोडा लौरा के mileage के बारे में पूछ लिया जाए या उसका प्रयोग आपको प्रोग्राम में करना पड़े, तो आप पाएंगे की 100 कारो के डाटा में से यह पता लगाना के लौरा कार car2 अर्रे में है बहुत मुश्किल है । और यह मुश्किल और बढ़ जाती है जब हम हज़ारो कारो की बात करते है ।

क्लास किसी भी complicated (जैसे ऊपर दिया गया उदहारण) डाटा structure के किसी भी तरह के कंटेंट को बनाने में हमे मदद करती है ।जैसे ऊपर दिए उदहारण में हम कार नाम की क्लास बनायेंगे जो कार का नाम और उसका माइलेज उन्ही के नाम वाले बहूत उपयोगी attribute जैसे name and mileage में स्टोर कर पायेगी ।