জাভা মেথড নিয়ে কিছু কথা।
জাভাতে মেথডঃ
আমরা যখন সি প্রোগ্রামিং শিখেছি তখন মুলত ফাংশন নিয়ে কাজ করেছি। জাভাতে মেথড মুলত ফাংশন এর মতই কিন্ত সামান্য কিছু পার্থক্য রয়েছে। জাভাতে মেথডগুলো কোন ক্লাস এর সাথে সম্পর্কযুক্ত থাকে আর সি প্রোগ্রামিং এ ক্লাস এর কোন ধারানা নেই। আর বিশেষ কোন পার্থক্য নেই ফাংশন ও মেথড এর মধ্যে। যেকোনো মেথড এর অবশ্যই একটি রিটার্ন টাইপ থাকতে হবে। কোন মেথড যদি কোন কিছু রিটার্ন না করে তাহলে রিটার্ন টাইপ void দিতে হয়। void একটি কিওয়ার্ড। মেথড মূলত কোন নির্দিষ্ট এক বা একাদিক কাজ করে থাকে। কোন ক্লাস এ এক বা একাদিক মেথড থাকতে পারে। যেটাকে বলে মেথড ওভারলোডিং। মেথড ওভারলোডিং নিয়ে পরে কোন এক সময় আলোচনা করা যাবে।
নিচে সাধারন একটা মেথড কেমন হয় তা দেখানো হল।
NB: উপরের প্রোগ্রামে Car নামে একটি ক্লাস আছে। এই ক্লাস এ performAddtion নামে একটি মেথড আছে । এক্ষেত্রে public হচ্ছে একটা modifiyer। এরকম আরও modifiyer আছে যেমন protected, private। public বলতে বুঝায় এই Car নামক ক্লাস এর মেথডকে যেকোনো জায়গা থেকে ব্যবহার করা যাবে। মেথডটি প্যারামিটার হিসেবে int টাইপ এর দুটি মান নেয়। result নামে একটি ভেরিয়েবল এ মান গুলকে স্টোর করে রাখে এবং return করে। এই return করা মানকে যদি আমরা ব্যবহার করতে চাই তাহলে আমাদেরকে main মেথড এর সাহায্য নিতে হবে কারন main মেথড হচ্ছে যেকোনো প্রোগ্রামের entry point । দেখা যাচ্ছে যে Car নামক ক্লাস এর performAddtion মেথডটি একটি নন-স্ট্যাটিক মেথড। আর আমরা জানি, নন-স্ট্যাটিক মেথডকে ব্যবহার করতে হলে অবশ্যই ঐ ক্লাস এর একটা অবজেক্ট তৈরি করতে হবে বা ক্লাসের ইন্সটেন্স তৈরি করতে হবে। নন-স্ট্যাটিক মেথডগুলো অবজেক্টইয়ের সঙ্গে সংযুক্ত থাকে। সেই অবজেক্ট দিয়েই মূলত যেকোনো নন-স্ট্যাটিক মেথডকে ব্যবহার করতে হয়। নিচের প্রোগ্রামটি খেয়াল করুন।
এক্ষেত্রে আউটপুট আসবে 24
NB: এখানে কোড এর দুই অংশকে একত্র করা হয়েছে বোঝার সুবিধার জন্য। মেইন মেথড এর ভিতরে আমরা ক্লাস এর অবজেক্ট তৈরি করেছি সেটা আসলে কিভাবে তৈরি করেছি সে বিষয়ে একটু জেনে রাখা দরকার। কোন ক্লাস এর অবজেক্ট তৈরি করতে হলে প্রথমেই আমাদের লিখতে হবে ঈ ক্লাস এর নামটা। তারপর অবজেক্টের ইন্সটেন্স বা অবজেক্টের নাম। এই নাম যেকোনো কিছু হতে পারে। তারপর সমান চিহ্নের পর new কিওয়ার্ডটা যা কিনা অবজেক্ট তৈরি করার অপারেটর। তারপর ক্লাসটির কন্সট্রাক্টরকে কল করা হয় মূলত।কন্সট্রাক্টর নিয়ে আরেকদিন লিখব।
স্ট্যাটিক মেথডঃ জাভাতে মূলত ২ ধরনের মেথড আছে। যেমন-
১। স্ট্যাটিক মেথড
২।নন-স্ট্যাটিক মেথড
উপরে আমি ইতোমধ্যে নন-স্ট্যাটিক মেথড নিয়ে আলোচনা করেছি। এখন আলোচনা করব স্ট্যাটিক মেথড নিয়ে।
স্ট্যাটিক মেথড মূলত ক্লাস এর সাথে সম্পর্কযুক্ত। সুতরাং এদেরকে ব্যবহার করার জন্য ক্লাস এর ইন্সটেন্স বা অবজেক্ট তৈরি করতে হবে না। অর্থাৎ এটা হচ্ছে ক্লাস এর সম্পত্তি। একটা ভেরিয়েবল যদি স্ট্যাটিক হয় সেটাকে বলে ক্লাস ভেরিয়েবল আর কোন মেথড যদি স্ট্যাটিক হয় সেটাকে বলে ক্লাস মেথড। স্ট্যাটিক মেথডকে ব্যবহার করার জন্য কেবল মাত্র ক্লাসের নাম দিয়েই আপনি স্ট্যাটিক মেথড কে কল করতে পারবেন ।
স্ট্যাটিক ভেরিয়েবলের ক্ষেত্রেও কিন্তু একই ঘটনা ।
নিচের প্রোগ্রামটি বর্ণনা করলে বিষয়টি পরিষ্কার হবে আশা করি।
আউটপুট আসবে 24
NB: কেবল মাত্র ক্লাসের নাম দিয়েই আমরা স্ট্যাটিক মেথডকে কল করতে পারছি। এতে আমাদের নন-স্ট্যাটিকমেথড এর মত অবজেক্ট তৈরি করার কোন প্রয়োজন পড়ছে না।
আশা করি জাভাতে মেথড এর বিষয়টি সবার কাছে পরিষ্কার হয়েছে।
আজ এ পর্যন্তই।
হ্যাপি কোডিং
Good explanation ! carry on buddy
ReplyDeleteThanks for your support
ReplyDeleteGood Initiative ... Carry On
ReplyDeleteBest of luck :)
thanks for your compliments
ReplyDeleteCarry on bro.... :)
ReplyDeletethank you bro
ReplyDelete