Wrapper Class in Java: Integer के बजाय यदि हमें Float या Double प्रकार के मानों का योग करना हो, तो हमें हमारे Program में कुछ Basic परिवर्तन करने होंगे। क्योंकि हम किसी भी Float प्रकार के मान को जावा में Directly नहीं जोड सकते हैं और ना ही इन्हें जोडने के लिए कोई Parsing Method ही जावा में उपलब्ध हैं। (Wrapper Class in Java)
इस स्थिति में सबसे पहले हमें Text Boxes के String प्रकार के मान को Float प्रकार के Wrapper Object में Convert करना होगा। फिर उस Wrapper Object के मान को Basic Float प्रकार के मान में Convert करना होगा और दोनों Text Boxes के मानों को इस प्रकार से Basic Float Data Type में Convert करने के बाद उन्हें जोडना होगा। इस प्रक्रिया को हम अगले Applet Program द्वारा समझ सकते हैं:
import java.awt.*; import java.applet.*; public class FloatAdditionApplet extends Applet { TextField textField1; TextField textField2; public void init() { textField1 = new TextField(5); textField2 = new TextField(5); add(textField1); add(textField2); textField1.setText("0"); textField2.setText("0"); } public void paint(Graphics g) { float value1 = 0, value2 = 0, sum = 0; String s ; Float toBasicFloat; g.drawString("Type a number in each box.", 10, 20); try { s = textField1.getText(); toBasicFloat = Float.valueOf(s); value1 = toBasicFloat.floatValue(); s = textField2.getText(); toBasicFloat = Float.valueOf(s); value2 = toBasicFloat.floatValue(); } catch(Exception excp) { g.drawString("Enter a Valid Integer Number", 300, 20); } sum = value1 + value2; s = String.valueOf(sum); g.drawString("The sum of the values is:", 10, 40); g.drawString(s, 160, 40); } public boolean action(Event event, Object arg) { repaint(); return true; } }
Description:
इस Program में हम देख सकते हैं कि हमने Integer के बजा; इस बार Float प्रकार के तीन Variables Create किए हैं और Text Box के मान को Hold करने के लिए String प्रकार का एक Object s Create किया है।
चूंकि हमें Wrapper Class Float के माध्यम से Text Box के मान को Basic Float प्रकार के मान में Convert करना है, इसलिए हमने toBasicFloat नाम का एक Wrapper Float Class का Object Create किया है। ये Program पिछले Program की तरह ही है। हमने केवल इसके try {} Block में ही परिवर्तन किया है।
User जो भी मान Text Box में Fill करता है, वह मान s नाम के String प्रकार के Object में Store हो जाता है। फिर इस Object के मान को Float प्रकार के Wrapper Object में Convert करने के लिए Float.valueOf(s) Statement द्वारा String Object s में Stored मान को Float प्रकार के Object में Convert किया जाता है।
ये Converted मान Float प्रकार के Object toBasicFloat में Store होता है। इसके बाद इस Float Object में Stored मान को Basic Float Data Type में Convert करने के लिए Float Object toBasicFloat के Reference में floatValue() Method को Call किया जाता है।
ये Method जिस Object के Reference में Call होता है, उस Object के मान को Basic Float Data Type के मान में Convert करके Return कर देता है, जिसे value1 नाम के Basic Float प्रकार के Variable में Store कर लिया जाता है।
इसी तरह से दूसरे Text Box के मान को भी Basic Float Object में Convert करके value2 नाम के Basic Float प्रकार के Variable में Store करके रख लिया जाता है। इसके बाद ये Program भी उसी तरह से Flow होता है, जिस तरह से पिछला Program Flow होता है।
जिस तरह से हमने पिछले दो Applet Programs द्वारा जोड करने की Process का वर्णन किया है। उसी तरह से विभिन्न प्रकार के Arithmetical Operations को Perform करने के लिए भी हमें विभिन्न प्रकार की Wrapper Classes का प्रयोग करके विभिन्न प्रकार के आवश्यकतानुसार Conversions करने होते हैं।
उपरोक्त दोनों Applet Programs को हम बहुत ही आसानी से Application Programs में Convert कर सकते हैं। यदि हम इस Applet को ज्यों का त्यों GUI Application में Convert करना चाहें, तो इसे ज्यों का त्यों GUI Application में Convert कर सकते हैं। लेकिन इस Conversion को हम आगे समझेंगे।
GUI Mode में User से Input प्राप्त करने के लिए हमें Applet Window या Application Window में GUI Objects जैसे कि Text Boxes, Radio Buttons, Command Buttons आदि को Create करना पडता है।
लेकिन जब हम Console Mode Application में User से Input प्राप्त करना चाहते हैं, तब हमें कुछ अलग Classes का प्रयोग करना जरूरी होता है। लेकिन Console Mode Applications में भी हमें विभिन्न प्रकार की Arithmetical Calculations को Perform करने के लिए Wrapper Classes का प्रयोग करना जरूरी होता है।
Console Mode Application में पिछले Applet को Convert करने के लिए हमें निम्नानुसार Console Mode Program Develop करना होता है:
// File Name: FloatAdditionApplication.java import java.io.*; public class FloatAdditionApplication { public static void main(String arg []) { Float value1 = new Float(0); Float value2 = new Float(0); float sum = 0; String s; try { DataInputStream in = new DataInputStream(System.in); System.out.println("Enter First Value : "); System.out.flush(); s = in.readLine(); value1 = Float.valueOf(s); System.out.println("\nEnter Second Value : "); System.out.flush(); s = in.readLine(); value2 = Float.valueOf(s); } catch(Exception excp) { System.out.println("\nYou have not entered a Valid Number"); System.exit(1); } sum = value1.floatValue() + value2.floatValue(); System.out.println("\nThe sum of the values is: " + sum); } } // Output : When entered valid Value Enter First Value : 20.65 Enter Second Value : 689.5 The sum of the values is: 710.15 // Output : When not entered valid Value Enter First Value : 12.55 Enter Second Value : f12.2 You have not entered a Valid Number
Description:
Console Mode Application में हमें विभिन्न प्रकार के काम करने के लिए जिन Basic Classes की जरूरत होती है, वे Classes हमें java.io Package द्वारा प्राप्त होती हैं, इसलिए इस Package को हमें हमारे Program में Import करना जरूरी होता है।
चूंकि Application Program में Compiler हमेंशा main() Method को खोजता है, इसलिए इस Program में हमने हमारी Coding को main() Method में ही लिखा है।
main() Method में हमने सबसे पहले Float Wrapper Class के दो Objects value1 व value2 को new Operator का प्रयोग करके Create किया है, साथ ही Create होने वाले Object को मान 0 से Initialize भी किया है।
मान 0 को हमने Float(0) Code द्वारा Initialize किया है। ये Code जावा का एक Default Constructor है, जिसे हम Define नहीं करते हैं। जावा में ये Default Constructor पहले से ही Defined है।
Constructor एक ऐसा Method होता है, जो उस Class के Create होने वाले Object को Initialize करने का काम करता है और बिना Call किए हुए Automatically Call होता है, क्योंकि किसी भी Class के Constructor का हमेंशा वही नाम होता है, जो उसकी Class का नाम होता है।
चूंकि हम Float Wrapper Class का Object Create कर रहे हैं, इसलिए Float() नाम का Constructor Execute हो जाता है और Create होने वाले Object को Initialize कर देता है।
इसी तरह से हमने sum नाम का एक Basic Float प्रकार का Variable भी Create किया है और String को Hold करने के लिए String Class का एक Object s भी Create किया है।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Java in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Java Programming Language in Hindi | Page: 682 | Format: PDF