অধ্যায় ১ : সূচনা
বাংলা ভাষায় জাভা শিখতে গেলে সবচেয়ে বেশি যে সমস্যার সম্মুখীন হতে হয়, তা হল বাংলা ভাষায় লেখা জাভার বইগুলোর কোনটাই খুব বেশি গোছানো নয়। এই জন্যই আমার এই টিউটোরিয়ালটা শুরু করা। আমাদের বেশির ভাগই সি পার করে এসে জাভা শুরু করতে যাই। বাংলায় সি এর বেশ কিছু ভাল বই আছে। নিটন এবং সুবিনের বইগুলো সি এর জন্য বেশ। তাই সি এর বইএর মতন ইনডেক্সই আমরা নরমালি এক্সপেক্ট করি জাভার বইগুলোতে। কিন্তু, জাভার ফিচার অনেক বেশি হওয়ায় আর সেগুলো সহজ ও যথেষ্ট গুরুত্বপূর্ন হওয়ায় দেখা যায় যে ভেরিয়েবল শিখানোর পরই অনেকে পলিমরফিজম শিখানোর চেষ্টা করেন। আর এই সমস্যাটা যে শুধু মাত্র বাংলা ভাষার বইগুলোর জন্যই প্রযোজ্য তাই নয়, বরং ইংলিশ বইগুলোতেও এই ইন্ডেক্সিং প্রব্লেমটা দেখা যায়। আমার এই টিউটোরিয়াল-এ আমি মূলত জাভার টপিকগুলো যথাসম্ভব গুছিয়ে এবং সহজ করে উপস্থাপন করার চেষ্টা করব। আশা করি আমার সঙ্গে থাকবেন।
যাই হোক এখন কাজের কথায় আশা যাক, জাভা কী এবং কেন?
জাভা কীঃ
জাভা হল মোটামোটিভাবে বলা যায় সবচেয়ে সহজ ও সবচেয়ে শক্তিশালী এবং অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ল্যাঙ্গুয়েজ, যেটা সান মাইক্রোসিস্টেম কর্তৃক ১৯৯৩ সালে ডেভেলপ করা হয়েছে। প্রশ্ন হতে পারে অবজেক্ট ওরিয়েন্টেড কী জিনিস? এই ব্যাপারটা নিয়ে এই টিউটোরিয়ালেই আর একটু পড়ে আলোচনা করব।
জাভা কেনঃ
১। সিম্পল গ্রামারঃ জাভার গ্রামার খুব সিম্পল। সি করে এসেই জাভা করতে গেলে ব্যাপারটা প্রথম দিকে অদ্ভুত লাগবে। কারণ, সি-তে একটা লাইন প্রিন্ট করতে আমরা যেখানে “printf” লিখতাম, এখন সেই জায়গায় লিখব “system.out.print” বা “system.out.println”. কিন্তু, ৮-১০টা টিউটোরিয়াল পার হয়ে গেলে অবশ্যই বুঝতে পারবেন জাভার গ্রামার কীভাবে সি এর চেয়ে সিম্পল।
২। প্লাটফর্ম ইন্ডিপেন্ডেন্টঃ এটা জাভার একটা অসাধারণ ফিচার। আপনার এক প্লাটফর্মে লেখা সি কোড অন্য প্লাটফর্মে ঝামেলা করতে পারে। কিন্তু, জাভার জেভিএম আপনাকে সেই ঝামেলা থেকে বাঁচাবে। আপনার উইন্ডোজ প্লাটফর্মে লেখা জাভা কোড উইন্ডোজ, লিনাক্স সব প্লাটফর্মেই রান করবে। শুধু সেই ওএসে সেই ও.এস. এর জেভিএম ইন্সটল থাকতে হবে।
৩। ফাস্টঃ জাভার আরেকটা ইম্পরটেন্ট ব্যাপার হল জাভা অন্যান্য প্রোগ্রামিং ল্যাঙ্গুয়েজগুলোর চেয়ে ফাস্ট। সি, সি++ ল্যাঙ্গুয়েজের চেয়ে জাভার স্পীড অনেক বেশি।
৪। সিকিউরঃ জাভা একটা সিকিউর প্রোগ্রামিং ল্যাঙ্গুয়েজ। পিএইচপি, সি++ ইত্যাদি ল্যাঙ্গুয়েজগুলোর চেয়ে জাভার সিকিউরিটি অনেক বেশি।
৫। অন্যান্যঃ এগুলো ছাড়াও জাভার একগাদা সুবিধা আছে। যেমনঃ পোর্টেবল, ডাইনামিক, মাল্টি থ্রেডেড ইত্যাদি।
আর আজকের মত লাস্ট টপিক অবজেক্ট ওরিয়েন্টেড ব্যাপারটা কী, জাভা কি অবজেক্ট ওরিয়েন্টেড কি না এবং হলে কীভাবে এটি অবজেক্ট ওরিয়েন্টেড...
অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং বলতে বুঝায় এমন এক ধরনের প্রোগ্রামিং, যেখানে প্রোগ্রামাররা শুধুমাত্র একটা ডাটা স্ট্রাকচারের ডাটা টাইপই ডিফাইন করে দেন না, বরং এর অপারেশনের টাইপও ডিফাইন করে দেন। নিশ্চয়ই এমন অদ্ভুত সংজ্ঞা দেখে অলরেডি মাথা ঘুরাচ্ছে? ব্যাপার না, আমরা কোড করতে গেলে যখন ভেরিয়েবল কলিং, ফাংশন (জাভায় এটাকে ম্যাথড বলা হয়)- ইত্যাদি নিয়ে আলোচনা করব তখন ব্যাপারটা ক্লিয়ার হয়ে যাবে।
এখন প্রশ্ন হল জাভা কী অবজেক্ট ওরিয়েন্টেড কি না? যেহেতু জাভার টিউটোরিয়াল লিখতে গিয়ে এমন একটা অদ্ভুত টার্ম নিয়ে আমরা আলোচনা করছি, সুতরাং অবশ্যই বুঝতে পারছেন যে, জাভা অবশ্যই অবজেক্ট ওরিয়েন্টেড। এখন প্রশ্ন হল যে, জাভা কী এমন অ্যাচিভমেন্ট পূরণ করেছে যে আমরা একে অবজেক্ট ওরিয়েন্টেড বলছি...
আজকে অনেক বেশি লেখা হয়ে গেছে। এক পর্বেই ৫০০ শব্দের বেশি ব্যবহার হয়ে গেছে। একদিনে আসলে এত বেশি লেখা-পড়া করা ভাল না। তাই, এই ব্যাপারটা বাদ থাক। পরের টিউটোরিয়ালে জাভা কীভাবে অবজেক্ট ওরিয়েন্টেড, জাভা শুরু করতে কী কী লাগবে, মানে- কী কী ইন্সটল করা লাগবে এবং কী কী জানা থাকা লাগবে তা নিয়ে আলোচনা করব এবং তারপরের টিউটোরিয়াল থেকে সোজা কোড করা শুরু করব। এইসব থিওরিটিক্যাল ব্যা
আমি ডার্ক নাইট। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 9 বছর 4 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 10 টি টিউন ও 1 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 1 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।