Monday, September 16, 2013

Java Basics

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Friday, September 13, 2013

Simple Interest Calculation with Applet

आज हम जिस प्रोग्राम को डिस्कस करने जा रहे है इसे आपने कही पुराने फीचर मोबाइल फ़ोन में देखा होगा। यह प्रोग्राम  आसान होते हुए भी जावा एप्लेट को समझने के लिए सबसे उपयुक्त है।
 
/**
 * इस प्रोग्राम को रन करने के लिए आपको दो फाइल बनानी होगी 
 * पहली जावा फाइल और दूसरी html फाइल जहाँ हम जावा एप्लेट को एम्बेडेड करेंगे 
 * इसका उत्तर एप्लेट की अंतिम टेक्स्ट फील्ड में प्रिंट होगा|
 */ 
 पहली फाइल appcal.java
// इस प्रोग्राम के लिए हमे चार पैकेज को इम्पोर्ट करने की आवश्यकता है   
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
// क्लास का डिक्लेरेशन एवं एप्लेट क्लास का इनहेरिटेंस 
public class appcal extends Applet implements ActionListener {
 // निचे हम जावा में वेरिएबल डिक्लेअर कर रहे है उनके प्रकार के साथ, जैसे बटन प्रकार का button1 
       JButton button1; // बटन1 का डिक्लेरेशन, एप्लेट में हमारा पहला बटन  
       JButton button2; // बटन2 का डिक्लेरेशन, एप्लेट में हमारा दूसरा बटन  
       JTextField text1,text2,text3,text4; // टेक्स्ट फ़ील्ड्स 4 अलग अलग इनपुट लेने के लिए
       JLabel label1,label2,label3,label4; // 4 लेबल 
       JPanel p;
       public void init() { // एप्लेट के लिए आवश्यक उसकी शुरुवात 
              label1=new JLabel("Principal"); //लेबल कुछ भी हो सकता है,पर तार्किक होना बेहतर है 
              label2=new JLabel("Time");
              label3=new JLabel("Rate");
              label4=new JLabel("Result");
              button1=new JButton("I+A"); // बटन के ऊपर अंकित होने वाली बात 
              button2=new JButton("Interest");
              text1=new JTextField(); // हमे इनपुट टेक्स्ट बॉक्स खाली चाहिए इसलिए ब्रैकेट खाली है 
              text2=new JTextField();
              text3=new JTextField();
              text4=new JTextField();
// हमारा लेआउट 0 का मतलब rows आवश्यकता अनुसार,2 का मतलब दो column चाहिए 
              this.setLayout(new GridLayout(0,2));  
              this.add(label1); // ग्रिड में क्रम अनुसार यह ऐड होते जायेंगे, क्रम आप बदल सकते है 
              this.add(text1);
              this.add(label2);
              this.add(text2);
              this.add(label3);
              this.add(text3);
              this.add(label4);
              this.add(text4);
              this.add(button1);
              this.add(button2);
              button1.addActionListener(this); // एक्शन listener माउस के क्लिक का ध्यान रखेगा 
              button2.addActionListener(this); // क्लिक दबाते ही निचे वाला फंक्शन कॉल होगा 
       }
       public void actionPerformed(ActionEvent ae) {
             float principal,time,rate,interest,iplusp;
             principal=Float.valueOf(text1.getText()).floatValue(); // कितना रूपया ब्याज पर दिया है उसकी संख्या 
             rate=Float.valueOf(text2.getText()).floatValue(); // सालाना ब्याज दर 
             time=Float.valueOf(text3.getText()).floatValue(); // कितने साल का ब्याज फलाना है 
             if (ae.getSource()==button2){ // अगर दूसरा बटन दबाया तो 
             interest=principal*time*rate/100;
             text4.setText(String.valueOf(interest)); // टेक्स्ट4 में ब्याज लिख देगा 
             }
             if (ae.getSource()==button1){
             iplusp=(principal*time*rate)/100+principal;
             text4.setText(String.valueOf(iplusp)); // टेक्स्ट4 में ब्याज और मूल दोनों का जोड़ लिख देगा 
             }
       }
} // क्लास  का अंत 
 
// simpleinterest.html फाइल 
<html>
<head><Title>Simple Interest</Title></head>
<body><p>Simple Interest Calculation from Java Hindi Notes</p>
<applet Code="appinterest.class" width=200 Height=100></applet>
</body>
</html>  

Thursday, October 18, 2012

What is package in java?

हमने कही बार जावा के प्रोग्रामो में पैकेज का उपयोग किया होगा , लेकिन कही विध्यार्ती इनकी उपयोगिता को समझने में कठिनाई महसूस करते है । आज के इस लेख में हम देखेंगे की पैकेज क्या है और इनका उपयोग क्यों किया जाता है । अंत में मैने जावा के कुछ पैकेज के नाम और उनके उपयोग का विवरण दिया है , इस से आपको इनके उपयोगिता को समझने में आसानी होगी ।

सबसे पहले हम यह देखने की हमे पैकेज की आवश्यकता क्यों पड़ी ?
मान लीजिए की आपको एक ऐसा प्रोग्राम बनाना है जो क्लाइंट और सर्वर के बीच में कनेक्टिविटी पर आधारित है । दोनो(क्लाइंट और सर्वर ) के वार्तालाप स्थापित करने के लिए TCP  सबसे उपयुक्त बातचीत का माध्यम है जहा डाटा लोस की संभावना सबसे कम है । अब इस प्रोग्राम के दो कंप्यूटर के बीच वार्तालाप स्थापित करने के लिए आपको दो क्लास बनानी पड़ेगी एक सर्वर के लिए और दूसरी क्लाइंट के लिए । इतना ही नहीं आपको TCP  और ऐसे कही दुसरे प्रोटोकोल के बारे में पूरी जानकारी होना भी आवश्यक है । इन सब झंझटो से बचाने के लिए ही जावा ने पैकेज बनाये जहा पर एक बार किसी क्लास को जार फॉर्मेट में डालने के बाद कही भी और कितनी बार भी उसका प्रयोग किया जा सकता है । और इसमें भी रोज काम आने वाले पैकेज जावा के इनस्टॉल होते से ही हमे उपलब्ध हो जाते है । जैसे ऊपर दिए उदहारण में हम java .नेट पैकेज का उपयोग कर सकते है ।

पैकेज जावा का एक महत्त्वपूर्ण अंग है । जब भी आप किसी क्लास को डिफाइन करते है , जावा स्वत: ही java.lang  नाम के पैकेज को इम्पोर्ट कर लेता है । जावा बिना आपके काम में रुकावट डाले इस प्रकार इस पैकेज को इम्पोर्ट करता है है जैसे कुछ हुआ ही नहीं । यह पैकेज जावा की सभी standard क्लासों को जावा को उपलब्ध कराता है ।

इम्पोर्ट स्टेटमेंट कम्पाइलर को यह बताता उस  एक्सटर्नल क्लास को कहा खोजना है जिसकी आप को कोड में जरूरत है । जैसे अगर आप java .io .* ( इनपुट आउटपुट पैकेज ) को इम्पोर्ट करते है , तो कम्पाइलर इस पैकेज की सभी क्लासों को देखता है और आपके कोड के लिए जरूरी क्लास का पता लगाता है ।

अब आप में से कही लोग पूछेंगे की यह क्लास को कहा खोजता है?

इसको आप इस तरह समझिए जैसे आप किसी फोल्डर में से आपकी काम की फाइल निकालते हो । जावा आप जावा को इस कमांड द्वारा ( import java .io .*) यह कहते हो की आपको io  पैकेज की सभी क्लासेज(*) चाहिए तो कम्पाइलर जावा के io  फोल्डर में(java /io ) सभी jar एक्सटेंशन वाली क्लासों को खोज निकालता है ।

जावा स्टैण्डर्ड एडिशन 6 के कुछ महत्वपूर्ण पैकेज व उनके बारे में जानकारी  :

java.lang — यह पैकेज बिना इम्पोर्ट स्टेटमेंट के ही उपलब्ध रहता है , यह भाषा के मूल कार्यषमता और मोलिक प्रकार का पैकेज है   
java.util — डाटा स्ट्रक्चर क्लासों का एक समूह 
java.io — फाइल पर काम करने वाली  क्लासों का समूह 
java.math — गणित करने के लिए उपयोग 
java.nio — नया इनपुट आउटपुट फ्रेमवर्क 
java.net — नेटवर्किंग में सहायक 
java.security — पासवर्ड बनाना, कोड वर्ड , और सिक्यूरिटी से जुडी चीज़े 
java.sql — JDBC के माध्यम से जावा को डेटाबेस से जोड़ने में सहायक क्लासे 
java.awt — GUI (ग्राफ़िक यूजर इंटरफ़ेस) सहायक सामग्री 
javax.swing —  प्लेटफार्म से स्वतंत्र GUI की क्लासेज ( आजकल काफी प्रचलित)
java.applet — एप्लेट बनाने में काम में आने वाली क्लासे 

Monday, July 23, 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 से लीजिये और फिर उसे प्रिंट करवाइए । किसी भी प्रकार की समस्या हो तो कमेन्ट में लिखे ।

Thursday, July 12, 2012

star problem in java

जब भी हम कंप्यूटर की किसी नयी भाषा को सीखते है तो उस भाषा को पढ़ाने वाले गुरूजी हमे तारो की समस्या का सवाल पूछना नहीं भूलते । आज हम देखेंगे की इस समस्या का समाधान क्या है और इसको देखते ही झट से कैसे हल किया जा सकता है ।

पहला सवाल
तारो को फॉर लूप द्वारा इस प्रकार प्रिंट करवाइए :

*****
****
***
**
*
इन तारो को देख कर दो बाते तो बिलकुल स्पष्ट है ।
पहली : इस प्रोग्राम में हमे पांच लाइन तक निचे आना होगा , जैसे पहले 5 तारे प्रिंट करो फिर लाइन बदलो और 4 तारे प्रिंट करो फिर लाइन बदलो । इसी प्रकार तब तक करते रहो जब तक 1 तारा नहीं बचे

दूसरी : एक लाइन में कही तारे एक साथ प्रिंट करने है । जैसे पहली लाइन में 5 ,दूसरी में 4 , तीसरी में 3

दोनों ही कामो के लिए हम फॉर लूप का प्रयोग करेंगे अर्थात दो फॉर लूपो का । एक लूप हमे लाइन बदलने में सहायक होगा एवं दूसरा तारे को प्रिंट करने में ।
इसको चलाने के लिए कमांड :
c:\javac Star.java
c:\java Star

कोड :
 public class Star {

        public static void main(String[] args) {
    for(int i =1; i<=5; i++) {
        for(int j=5; j>=i;j--) {
            System.out.print("*");
            }   
                                    System.out.print("\n");
                           

                }   
                        }

}

सम्भदित विडियो :

दूसरा सवाल
तारो को फॉर लूप द्वारा इस प्रकार प्रिंट करवाइए :

*
**
***
****
*****
इस प्रोग्राम में भी पिछले प्रोग्राम की तरह पांच लाइन बदलनी है और हर लाइन के क्रम के अनुसार तारे प्रिंट करने है । जैसे पहली लाइन में एक , दूसरी में दो , तीसरी में 3 , चोथी में 4 और पांचवी में 5.

प्रक्रिया (कांसेप्ट) :
क्यों की लाइन का नंबर याद रखने के लिए हमने i को अधिकृत किया है , तो हम दुसरे लूप में  j को 1 से i तक ही प्रिंट कराएँगे, तत  पश्यात लाइन बदलेगे । और इसी काम को दोहराते रहेंगे जब तक इ की संख्या 5 नहीं हो जाती ।
इसको चलाने के लिए कमांड :
c:\javac Star.java
c:\java Star

public class Star {

        public static void main(String[] args) {
    for(int i =1; i<=5; i++) {
        for(int j=1; j<=i;j++) {
            System.out.print("*");
            }   
                                    System.out.print("\n");
                           

                }   
                        }

}

Friday, May 4, 2012

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 में स्टोर कर पायेगी ।

Friday, March 9, 2012

For loop

फॉर लूप को समझने के लिए पहले आपको कुछ प्रश्नो के उत्तर देने होगे :

फॉर लूप की हमे क्या जरूरत है |
बिलकुल सही , कोई जरूरत नहीं है , अगर हमारे प्रोग्रामर जी एक ही बात को कही  कही बार लिखने को तैयार हो तो , हम बिना फॉर लूप के भी आपना काम कर सकते है | जैसे 

अगर हमे २ का पहाडा जावा में लिखना हो तो हम सिस्टम.आउट.प्रिंट से इसको इस प्रकार लिख सकते है :

System.out.println("2 * 1 = 2");
System.out.println("2 * 2 = 4");
System.out.println("2 * 3 = 6");
System.out.println("2 * 4 = 8");
System.out.println("2 * 5 = 10");
System.out.println("2 * 6 = 12");
System.out.println("2 * 7 = 14");
System.out.println("2 * 8 = 16");
System.out.println("2 * 9 = 18");
System.out.println("2 * 10 = 20");

लेकिन हमारे प्रोग्रामर जी को और भी बहुत काम है ,एवं उन्हें १० बार नहीं हजारो बार एक बात को लिखना पड़ता है , तो उन्होने फॉर लूप को बनाया और बाकी काम उस पर छोड़ दिया |


class ForLoop
{
public static void main(String args[]) {
int i,j;
for(i=1;i<=10;i++) {

System.out.println("2 *"+ i + "="+ 2*i);
}




}



}

LinkWithin

Related Posts Plugin for WordPress, Blogger...