Java-তে, null লিটারালটি কোনো মানের অনুপস্থিতি বোঝাতে ব্যবহৃত হয়।
Java-এর প্রিমিটিভ ডেটা টাইপগুলোর প্রত্যেকটিরই একটি ডিফল্ট মান থাকে, তাই সেগুলো কখনোই null হতে পারে না। প্রচলিত রীতি অনুযায়ী এগুলো ছোট হাতের অক্ষর দিয়ে শুরু হয়, যেমন int।
রেফারেন্স টাইপ কোনো অবজেক্টের মেমোরি অ্যাড্রেস ধারণ করে এবং এর মান null হতে পারে। এগুলো সাধারণত বড় হাতের অক্ষর দিয়ে শুরু হয়, যেমন String।
একটি প্রিমিটিভ ভ্যারিয়েবলে null মান অ্যাসাইন করার চেষ্টা করলে কম্পাইল টাইম এরর দেখা দেবে, কারণ ভ্যারিয়েবলটি সবসময়ই তার অ্যাসাইন করা টাইপের একটি প্রিমিটিভ মান ধারণ করে।
//Throws compile time error stating the required type is int, but null was provided
int number = null;
একটি রেফারেন্স ভ্যারিয়েবলে null মান অ্যাসাইন করলে কম্পাইল টাইম এরর হবে না, কারণ রেফারেন্স ভ্যারিয়েবলগুলো নাল হতে পারে।
//No error will occur as the String variable str is nullable
String str = null;
এই অনুশীলনীতে আপনি কারখানার কর্মীদের জন্য নেম ব্যাজ প্রিন্ট করার কোড লিখবেন।
কর্মীদের একটি ID, নাম এবং বিভাগের নাম থাকে। কর্মীদের ব্যাজ লেবেল নিচের মতো ফরম্যাট করা হয়: "[id] - name - DEPARTMENT"।
একজন কর্মীর ব্যাজ লেবেল রিটার্ন করার জন্য Badge.print() মেথডটি ইমপ্লিমেন্ট করুন:
Badge badge = new Badge();
badge.print(734, "Ernest Johnny Payne", "Strategic Communication");
// => "[734] - Ernest Johnny Payne - STRATEGIC COMMUNICATION"
মনে রাখবেন, লেবেলে বিভাগটি বড় হাতের অক্ষরে লিখতে হবে।
কম্পিউটার সিস্টেমের একটি খুঁতের কারণে, নতুন কর্মীরা কারখানায় কাজ শুরু করার সময় মাঝে মাঝে এখনও একটি ID পান না।
যেহেতু ব্যাজ আবশ্যক, তাই তারা ID প্রিফিক্স ছাড়া একটি সাময়িক ব্যাজ পাবেন। যে নতুন কর্মীদের এখনও ID নেই তাদের সাপোর্ট করার জন্য Badge.print() মেথডটি পরিবর্তন করুন:
Badge badge = new Badge();
Badge.print(null, "Jane Johnson", "Procurement");
// => "Jane Johnson - PROCUREMENT"
এমনকি কারখানার মালিককেও সব সময় একটি ব্যাজ পরে থাকতে হয়।
তবে মালিকের কোনো বিভাগ থাকে না। এই ক্ষেত্রে লেবেলে বিভাগের নামের বদলে "OWNER" প্রিন্ট হওয়া উচিত।
মালিকের জন্য একটি লেবেল প্রিন্ট করার জন্য Badge.print() মেথডটি পরিবর্তন করুন:
Badge badge = new Badge();
badge.print(254, "Charlotte Hale", null);
// => "[254] - Charlotte Hale - OWNER"
মনে রাখবেন, মালিকও নতুন কর্মী হতে পারেন:
Badge badge = new Badge();
badge.print(null, "Charlotte Hale", null);
// => "Charlotte Hale - OWNER"
Exercism-এ সাইন আপ করুন, Java ট্র্যাকের 26টি কনসেপ্ট158টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।