Tuesday, 18 December 2012


Hello Program Part 2

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

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

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

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

प्रोग्राम का आउटपुट स्क्रीन :



// Helloi.java - कॉन्सोल पर इनपुट और output 

// यहाँ हम package  को इम्पोर्ट कर रहे है , सभी प्रकार के package इसी प्रकार इम्पोर्ट होते है ।
import java.io.*;
public class Helloi { // क्लास का नाम जो हमेशा कैपिटल अक्षर से शुरू होता है जैसे यहाँ H 
 // प्रोग्राम का मुख्य द्वार जिसको हम पहले ही discuss कर चुके है ।
                public static void main(String[] args) throws IOException {
// यहाँ हम name नाम की स्ट्रिंग declare कर रहे है । जावा किसी भी variable के उपयोग के पहले 
// यह जानना चाहती है की उसका डाटा टाइप के है ,वोह चाहे integer हो अथवा String(इसका S 
// हमेशा बड़ा आएगा )  
  String name;
// Buffer Reader का declaration जो कॉन्सोल पर लिखी स्ट्रिंग को पड़ेगा और अपने में स्टोर करेगा  
  BufferedReader kb = new BufferedReader(new 
   InputStreamReader(System.in));
// निचे लिखी लाइन कॉन्सोले पर user का नाम पूछेगी 
  System.out.print("Please enter your name: ");
// यहाँ हम name स्ट्रिंग में user के दिए नाम को स्टोर कर रहे है । 
  name = kb.readLine();
// यहाँ उसी नाम को प्रिंट करा रहे है ।
  System.out.println("Hello World, dear " + name + "!");
  System.exit(0);
 }
} 
आज हमने हेल्लो वर्ल्ड प्रोग्राम का दूसरा भाग देखा , आप इनपुट स्ट्रिंग में अलग अलग नाम प्रिंट करा के देखिये और साथ ही कही सारी  स्ट्रिंग का इनपुट user से लीजिये और फिर उसे प्रिंट करवाइए । किसी भी प्रकार की समस्या हो तो कमेन्ट में लिखे

Hello World Program


1class Hello {
2
3    public static void main(String[] arguments) {
4    System.out.println("Hello world");
5    }
6

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

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

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

इसको और ज्यादा समझने के लिए इसको चला के देखें | इसके साथ खेले और कोई समस्या हो तोह मुझे कमेन्ट में लिखे |

Friday, 14 December 2012

Compiling and Running Java Programs


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

जावा की कृतिम मशीन के, जावा प्रोग्राम को रन करने से पहले हमे जावा सोर्स कोड को 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
In Linux    
% java  Xyz

Java Introduction


क्लास को हम एक टमप्लेट कह सकते है | जावा एक ऑब्जेक्ट आधारित भाषा है | ऑब्जेक्ट की सभी प्रोपर्टी क्लास में स्टोर होती है |


class HelloWorld {

                          <सभी कुछ >

}

अब थोडा और डिटेल में जाते है | इस प्रोग्राम को देखिये :

class Human {

int age;

}

ऊपर हमने एक क्लास बनाई है | लेकिन इसको उपयोग में लाने के लिए हमे इसका ऑब्जेक्ट बनाना होगा |

ओजेक्ट बनाने का तरीका :
Human lucy = new Human();

ऊपर हमने लूसी नाम का ऑब्जेक्ट बनाया है |

ध्यान रखने वाली बातें :

  • सभी ऑब्जेक्ट को न्यू  की जरूरत होगी |
  • ऑब्जेक्टस = इन्स्तांसस (ऑफ़ क्लास्सेस) 
  • लूसी ऑब्जेक्ट को पॉइंट करता है |
  • हम नए बनाये हुए ऑब्जेक्ट को लूसी को दे रहे है  |
ऑब्जेक्ट को इस्तमाल करने की विधि :

 Human cg = new Human();
cg.age = 24;                    // '.' का उपयोग क्लास में declared  फिएल्ड को एक्सेस करने के लिए कर सकते है |
Human john = new Human();
john.age = 19;
System.out.println(cg.age); // यह २२ प्रिंट करेगा
System.out.println(john.age); // यह १९ प्रिंट करेगा


01class Human {
02int age;
03public static void main(String[] args) {
04Human cg = new Human();
05cg.age=24;
06Human john = new Human();
07john.age=34;
08System.out.println(cg.age);
09System.out.println(john.age);
10 
11                                     }
12 
13        }

Thursday, 13 December 2012

How to install Java in my computer ?


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

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

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

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


Sunday, 9 December 2012

What is Java ?


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

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

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

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

Friday, 7 December 2012

how to become successful programmer ?

एक सफल प्रोग्रामर बनने के लिए, अपको प्रोग्रामिंग भाषा जिसका आप प्रयोग कर रहे है उसके  वाक्यविन्यास  (syntax) का विस्तृत ज्ञान आवश्यक है | लेकिन syntax  इस कहानी का छोटा सा हिस्सा भर है ,सिर्फ वोह प्रोग्राम लिखना काफी नहीं जो सिर्फ रन करे , परन्तु यह भी आवश्यक है की प्रोग्राम का रिजल्ट भी आशा अनुरूप ही हो | अर्थात वोह पोर्ग्राम का कंप्यूटर को सही समझ आना चाहिये | जो प्रोगाम उसके अर्थ को कंप्यूटर का सही से समझा सकता है वोह ही सही प्रोग्राम माना जाता है | 
  
साथ ही , अच्छे प्रोग्रामर प्रोग्राम को इस तरीके से लिखते है की वोह दुसरे प्रोग्रम्मेर को आसानी से समझ में आ जाये | ज्यादातर प्रोग्राम हम टीम में बनाते है , और अगर कभी अकेले भी बनाते तो भी हमे उसको कही बार पढ़ना और बदलना पड़ता है , इसीलिए  अच्छे से जमा के लिखा गया प्रोग्राम लंबे समय में बहुत ही उपयोगी साबित होता है | इसीलिए प्रोग्रम्मेर को चाहिए के वोह इस बात का ध्यान रखे |

जब में आपको नए प्रोग्रम्मिंग features  के बारे में बतओंगा , में आपको सारी बातें समझाने का प्रयास करूँगा | जब में आपको निचे उदहारण दूंगा तोह आप सबसे पहले आप प्रोग्राम के  syntax को याद करने की कोशिश करे , इसके पश्यात उसके व्याकरण को समझे और साथ ही साथ इस बात का भी ध्यान रखे की वोह प्रोग्राम आपको समझ भी आये |
यह हो सकता है की आपको किसी भाषा के व्याकरण , शब्द और उसके प्रयोग का ज्ञान हो , पर इतने से ही आप अपने आप को बड़ीया प्रोग्रम्मेर नहीं मान सकते | आपको इसके बाद भी उलझी हुई समस्याओ का समाधान करना सीखना होगा | और उसके लिए आपको प्रोग्राम बनाने की इच्छा और अनुभव दोनों की आवश्यकता पड़ेगी

Thursday, 6 December 2012

What is programming language?

Program आदेशो की वो कड़ी होता है जिसकी पालना कंप्यूटर करता है | एक साधारण सी बात भी कंप्यूटर को समझाने के लिए इस प्रकार लिखनी पड़ती है की कंप्यूटर समझ सके | जो भाषा कंप्यूटर समझता है उसे हम प्रोग्रामिंग भाषा कहते है| प्रोग्रामिंग भाषा और हमारी भाषा में कही भिन्नताए होती है | हमारी भाषा में एक ही बात को विभिन्न प्रकार से बोल सकते है, जैसे की हमे किसे को चाय पे बुलाना हो तोह हम कह सकते है: तुम मेरे यहाँ चाय पीने चलो या आओ मेरे घर पर चाय पीते है या फिर पूछ सकते है की क्या चाय पीओगे ?,आओ मेरे घर चले .कंप्यूटर की भाषा इस प्रकार नहीं होती | उसे सीधी सीधी बात (बिना लाग लपेट) समझ में आती है | कंप्यूटर इसमें बहुत स्पष्ट है की भाषा में क्या होना चाहिए और क्या नहीं | साथ ही साथ उसको भाषा का व्याकरण भी एक दम शुद्ध चाहिए|


कंप्यूटर के व्याकरण के नियम भी एक दम स्पष्ट है |इसमें यह बताया गया है की प्रोग्राम में कौन से शब्दो का प्रयोग होगा , उसको किस प्रकार लिखा जायेगा जैसे loops, branches, और subroutines कैसे लिखे जायेगे .सही तरीके से लिखा प्रोग्राम वोह होता है जो सफलता पूर्ण तरीके से compile या execute हो सके|


तो, एक सफल प्रोग्रामर बनाने के लिए, आपको पूरी तरीके से प्रोग्राम के व्याकरण को सिखना होगा |

सफल प्रोग्रामर कैसे बने ?

प्रोग्रामिंग भाषा का इतिहास:

वैसे तो प्रोग्रामिंग भाषा का इतिहास बहुत पुराना है , पर में आपको ७० के दशक में ले जाना चाहूंगा , जब प्रोग्रम्मेर 0 और 1 ,binary भाषा में प्रोग्राम लिखा करते थे | फिर आई अस्सेम्ली भाषा , जो आज भी कही कॉलेज में मिक्रोप्रोसस्सर विषय में पढाई जाती है | यह भाषा एक ट्रांसलेटर के रूप में काम करती थी , जैसे जो भी हम अस्सेम्ब्ली भाषा में लिखते थे वो 0 और 1 (मशीनी भाषा ) में परिवर्तित हो जाता था , इसका फायदा यह था की प्रोग्रम्मेर को अब हर शब्द के कोड (जैसे 5 नंबर का binary कोड होता है 1 0 1 )याद रखने की जरूरत नहीं थी , वोह सिर्फ अस्सेम्ब्ली भाषा के कुछ कमांड याद रखते थे जो binary से बहुत आसन थे क्युकी वो नंबर और अक्षर वैसे ही थे जैसे अंग्रेजी में होते है | आज भी अगर आप में से कुछ जो hacking विषय में जानकारी रखते है , या प्रोग्राम को समझने के लिए उसको debug करते है , उनका इस भाषा से सामना होता रहता है |

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

इस समस्या का समाधान compiler ने किया | और इसमें c भाषा का सबसे बड़ा योगदान है | यह भाषा अस्सेम्ब्ली भाषा से बहुत ज्यादा आसान थी , और इसमें कोड का दुबारा प्रयोग भी किया जा सकता था | साथ ही साथ compiler मशीन के हिसाब से इसको compile करने का काम कर देता था |

आज की भाषाए c से काफी मिलती जुलती है इसीलिए सभी कंप्यूटर पढने वाले लोगो को c के बारे में जरूर पढाया जाता है | लेकिन c भाषा की भी कुछ सिमाय थी , और सबसे बड़ी समस्या थी प्रोग्राम की सुरक्षा | जो एक प्रोग्राम के लिए सबसे अहम है |

फिर आई c ++ जो c का ही एक नया रूप था पर यह एक पूरी तरीके से ऑब्जेक्ट oriented भाषा थी | C ++ वैसे तो एक पूर्ण भाषा है लेकिन इसको भी हर नयी मशीन के लिए अलग से compile करना पड़ता है |

इसका समाधान है जावा , जिसने इस मशीन वाली समस्या से निजात पाने के लिए एक नया तरीका खोजा | जावा ने खुद की एक कृतिम मशीन तैयार की और उसका नाम JVM( Java virtual machine) रखा | इसका फायदा यह हुआ की अगर कंप्यूटर में जावा कृतिम मशीन डाल दी जाए तो प्रोग्राम को बार बार compile नहीं करना पड़ता |

Welcome to Java notes in Hindi

इस हिंदी ब्लॉग में आपका स्वागत है | में यहाँ आपको जावा सिखाने की कोशिश करूँगा | आशा करता हूँ की आपको यह ब्लॉग फायेदेमंद लगेगा |