জাভা প্রোগ্রামিং টিউটোরিয়াল............পর্ব-১
গত পর্বে আমরা জাভা প্রোগ্রাম কোডিং করার জন্য প্রয়োজনীয় সফটওয়ার Eclipse ইন্সটল করেছিলাম।
কথা ছিল পরবর্তী পর্বে কোডিং শুরু হবে। কিন্ত কোডিং শুরুর আগে কিছু গুরুত্বপূর্ণ বিষয় সম্পর্কে জেনে নিতে হবে। না জানলে পরে যখন Advanced কনসেপ্ট গুলোতে পা রাখবেন তখন থ মেরে বসে থাকতে হবে।
অন্যান্য প্রোগ্রামিং ল্যাঙ্গুয়েজ যেমন C তে আপনাকে কোন প্রোগ্রাম বানাতে গেলে Step by Step ইন্সট্রাকশন দিতে হবে। ধরা যাক আমরা এমন একটা প্রোগ্রাম তৈরি করবো যা আপনার ব্যাংক একাউন্টের কাজ করবে। তবে এই একাউন্টটা অত্যন্ত বেসিক অর্থাৎ এটা শুধু তিনটা কাজ করতে পারে
১) আপনার একাউন্টে কত টাকা আছে তা দেখাতে পারে।
২) আপনি এতে টাকা জমা রাখতে পারেন।
৩) ধরা যাক আপনি প্রথম বার যখন টাকা রাখলেন তার পরিমান ছিল ৫০০. পরে আরও অতিরিক্ত ২০০ টাকা এই একাউন্টে রাখলেন। এখন এই প্রোগ্রাম আপনাকে পরিবর্তিত Balance যার পরিমান ৭০০/- টাকা দেখাবে। সহজকথায় এই প্রোগ্রাম একাউন্টের Balance Change এর ব্যাপারটা প্রসেস করতে পারে।
যেকোনো প্রোগ্রাম তইরির আগে আমাদের আগে চিন্তা করতে হবে কিভাবে এই প্রোগ্রাম টা প্রতি পদক্ষেপে কাজ করবে। কোডিং আসবে তার পরে। একে বলা হয় এলগোরিদম।
এলগোরিদম এর ব্যাখ্যাটা এভাবে দেয়া যায়। আপনি একটা চেয়ার বানবেন। এর জন্য আপনাকে কিছু নির্দিষ্ট কাজ করতে হবে। যেমনঃ
প্রয়োজনীয় জিনিশপত্র
১) কাঠ, পেরেক, রং ইত্যাদি
প্রয়োজনীয় কাজ
২) পাটাতন বানাও
৩) হাতা, পা বানাও
৪) পেরেক লাগাও
৫) রঙ করো
এখন দেখুন একই ভাবে আমাদের উপরের ব্যাংক একাউন্টের এলগোরিদমটা লিখে ফেলা যায় কি না।
প্রয়োজনীয় জিনিসপত্র
১গ্রাহকের নাম, ঠিকানা, জমাকৃত টাকার পরিমান
প্রয়োজনীয় কাজ
২) প্রাথমিক জমা রাখা টাকা (অর্থাৎ যেকোনো Account খুলতে বাধ্যতামূলক যে টাকা লাগে) শো করা।
৩) গ্রাহককে টাকা জমা দেয়ার সুযোগ দেয়া।
৪) যদি গ্রাহক টাকা জমা দেয় তাহলে পরিবর্তিত Balance চেক করা এবং শো করা।
লক্ষ করুন এই এলগোরিদমে কিছু তথ্য আছে (যেমন নাম, ঠিকানা, জমাকৃত টাকার পরিমান ) আর আছে কিছু কাজ (যেমন টাকা জমা রাখা, Balance চেক করা ইত্যাদি)।
প্রতিটি কম্পিউটার প্রোগ্রামে এরকম কিছু তথ্য (প্রোগ্রামিং এর ভাষায় Variable) এবং কাজ (প্রোগ্রামিং এর ভাষায় Function (C-তে ), Method (Java, C++ এ )) থাকে।
ধরা যাক আমাদের ব্যাঙ্কে গ্রাহকের সংখ্যা ৩ জন। এখন এই তিনজন গ্রাহকের জন্য আলাদা আলাদা একাউন্টের দরকার।
যদিও প্রতিটা একাউন্ট এ তথ্য (Variable) একিরকম (যেমন নাম, ঠিকানা, জমাকৃত টাকা (নাম ও টাকার পরিমান ভিন্ন হতে পারে কিন্তু সবার একাউন্টেই জমাকৃত টাকা ও নামের Variable থাকবে ) এবং এই তিনটি প্রোগ্রামই কিছু মেথড (কাজ) যেমন টাকা জমা রাখা, শো করা ইত্যাদি করবে। যদি আপনি C Programming Language এ এই প্রোগ্রামটা বানাতে চান তাহলে প্রতি একাউন্টের জন্য আলাদা আলাদা ভাবে Coding করা লাগবে।
এমন যদি হত যে আমরা আর্কিটেক্টদের মত Account এর একটা Blueprint বানাতে পারতাম যা থেকে শতশত গ্রাহকের জন্য একাউন্ট বানানো যায়!! প্রতিটি গ্রাহকের জন্য যদি আলাদা কোডিং করার প্রয়োজন না হত তাহলে কত আরামেই না থাকতে পারতাম!
হুম, এখন বুঝতে পারবেন কেন এত সময় ধান ভানতে শিবের গীত গাইলাম।
জাভা Object Oriented programming. এর অর্থ হচ্ছে আপনি প্রতিটা প্রোগ্রামএ কিছু ব্লুপ্রিন্ট (যেমন আমাদের উপরের একাউন্ট Example এর সার্বজনীন তথ্য বা Variable ও কাজ বা Method সমুহ যা সব গ্রাককের একাউন্টের জন্য প্রযোজ্য) তৈরি করবেন (যাকে জাভায় Class বলা হয়) এবং এই ব্লুপ্রিন্ট থেকে Object ( প্রতি গ্রাহকের স্বতন্ত্র Account) বানাতে পারবেন যত খুশি তত।
আপনাকে সালমান এফ রহমান কিংবা সুরঞ্জিতের জন্য প্রত্যেক বার Variable এবং মেথড (কাজ) কোডিং করা লাগবে না। শুধুমাত্র একটা Account object বানাবেন ব্লুপ্রিন্ট থেকে। এক্ষেত্রে আপনাকে Object এ (অর্থাৎ Individual Account ) শুধু কিছু Variable (টাকার পরিমান ) এর ইনফর্মেশন দিতে হবে (যেমন সুরঞ্জিত এর একাউন্টে থাকবে ৭২ লাখ টাকা আর সালমানেরটায় কয়েক হাজার কোটি টাকা )
প্রোগ্রামের মেথডগুলো (টাকা জমা রাখার Instruction, balance চেক করার ইন্সট্রাকশন ) প্রতিবার নতুন Account একাউন্টের জন্য কোড করা লাগবে না।
মনে রাখবেন Class হচ্ছে এক ধরনের Draft আর Object হচ্ছে এই Draft এর থেকে তৈরি চিঠি। একটা চিঠিতে স্বাভাবিক ভাবে ঠিকানা, সম্বোধন, মুল বডি থাকবে। প্রেমিকার জন্য চিঠি লেখা হোক আর চাচার জন্যই হোক এতে অবশ্যই ঠিকানা, সম্বোধন, মুল বডি থাকতে হবে । এগুলো ছারা কোন চিঠি লেখা যাবে না।
সুতরাং ঠিকানা, সম্বোধন, মুল বডির Draft হল Blueprint আর প্রেমিকার এবং চাচার জন্য আলাদা আলাদা চিঠি হোল এই ব্লুপ্রিন্ট থেকে বানানো Object. একইভাবে প্রতিটি Account এর ব্লুপ্রিন্ট এ (Class) কিছু সাধারন তথ্য আছে যা সব সতন্ত্র Account (Object) এ থাকে এবং এর থেকে আলাদা আলাদা গ্রাহকের Account (Object ) তৈরি করা যায়। প্রতিটা অবজেক্ট এর তথ্য ভিন্ন হতে পারে কিন্তু এদের Skeleton একরকম।
Object oriented programming এর পুরো ব্যাপারটাই হল Coding instructions গুলোকে অত্যন্ত সুন্দরভাবে organize করা এবং প্রোগ্রামারের পরিশ্রম অর্ধেক কমিয়ে আনা।
জাভা শিখতে হলে এই OOP (Object oriented programming) কনসেপ্ট মাথায় খুব ভাল ভাবে ঢুকিয়ে নিতে হবে। নাহলে এক পা ও এগুতে পারবেন না।
OOP খুব কঠিন মনে হচ্ছে কি? চিন্তা করবেন না, আগামি পর্বগুলোতে OOP ব্যাপারটা আরও Detailed ব্যাখ্যা করা হবে।
প্রথম পর্ব এখানে দেখুনঃ জাভা প্রোগ্রামিং টিউটোরিয়াল............পর্ব-১
জাভা প্রোগ্রামিং টিউটোরিয়াল............পর্ব-৩
সর্বশেষ এডিট : ১২ ই আগস্ট, ২০১২ রাত ১০:৩১