কম্পিউটার টিউটোরিয়াল

জাভা কনস্ট্রাক্টর ব্যবহার করার পদ্ধতি

জাভাতে, নির্দিষ্ট কাজ সম্পাদনের জন্য কোড ব্লক সংরক্ষণ করার জন্য মেথড ব্যবহার করা হয়। মেথডের সাথে কাজ করার সময় আপনি কনস্ট্রাক্টর নামে একটি ধারণায় مواجه হতে পারেন।

কনস্ট্রাক্টর হল জাভাতে অবজেক্ট আরম্ভ করার জন্য ব্যবহৃত বিশেষ মেথড। ক্লাসের অবজেক্ট তৈরি হলে কনস্ট্রাক্টর কল করা হয় এবং এটি অবজেক্টের প্রাথমিক মান সেট করতে ব্যবহৃত হয়।

এই টিউটোরিয়ালে উদাহরণসহ জাভা কনস্ট্রাক্টরের বেসিক এবং কনস্ট্রাক্টর কোডে কীভাবে ব্যবহার করতে হয় তা আলোচনা করা হয়েছে। এই টিউটোরিয়াল পড়া শেষে আপনি জাভা কনস্ট্রাক্টর ব্যবহার করে অবজেক্ট আরম্ভ করতে পারবেন।

জাভা কনস্ট্রাক্টর

প্রোগ্রামে ব্যবহার করার আগে নতুন তৈরি অবজেক্টকে কনস্ট্রাক্টর আরম্ভ করে। উদাহরণস্বরূপ, Supplier নামক একটি কনস্ট্রাক্টর একটি সাপ্লায়ারের ডিফল্ট অ্যাট্রিবিউটসহ একটি অবজেক্ট তৈরি করবে।

কনস্ট্রাক্টরের নাম তার ক্লাসের সাথে একই থাকে এবং এটি কোনো মান রিটার্ন করে না। জাভাতে কনস্ট্রাক্টরের একটি উদাহরণ নিচে দেওয়া হলো:

class Supplier { Supplier() { // এখানে কোড } }

এই উদাহরণে, আমরা Supplier নামক একটি কনস্ট্রাক্টর ঘোষণা করেছি, যার নাম আমাদের ক্লাসের সাথে মিলে। এছাড়া, আমাদের কনস্ট্রাক্টরের কোনো রিটার্ন টাইপ নেই—যেমন void—যা এটি অন্য মেথড থেকে আলাদা করে।

কনস্ট্রাক্টর ঘোষণা করার সময় জানতে হবে দুটি নিয়ম। প্রথম, কনস্ট্রাক্টরের নাম কনস্ট্রাক্টর ঘোষণা করা ক্লাসের নামের সাথে হুবহু মিলতে হবে। دوم, কনস্ট্রাক্টর মান রিটার্ন করতে পারে না।

জাভা কনস্ট্রাক্টর তৈরির পদ্ধতি

জাভা কনস্ট্রাক্টরের দুটি ধরন আছে: নো-আর্গ কনস্ট্রাক্টর এবং প্যারামিটারাইজড কনস্ট্রাক্টর। এই দুটি টাইপ ব্যবহার করে কনস্ট্রাক্টর কীভাবে তৈরি করবেন তা নিচে ব্যাখ্যা করা হলো।

নো-আর্গ কনস্ট্রাক্টর

মনে করুন আমরা একটি আহার দোকান চালাচ্ছি এবং আমাদের পনির প্রধান সাপ্লায়ারের বিস্তারিত সংরক্ষণ করার জন্য একটি প্রোগ্রাম তৈরি করতে চাই। এই প্রোগ্রামে সাপ্লায়ারের তথ্য সংরক্ষণ করার জন্য একটি কনস্ট্রাক্টর থাকবে এবং সেই মানগুলো কনসোলে প্রিন্ট করবে।

এই প্রোগ্রাম তৈরির জন্য আমরা নিচের কোড ব্যবহার করব:

class MainCheeseSupplier { private String name; private String address; private int discountRate; private String payDate; private MainCheeseSupplier() { name = "J. Acker Dairy"; address = "1600 Johnson Ave. San Francisco 94127"; discountRate = 2; payDate = "মাসের শেষ দিন।"; } public static void main(String[] args) { MainCheeseSupplier jadairy = new MainCheeseSupplier(); System.out.println("নাম: " + jadairy.name); System.out.println("ঠিকানা: " + jadairy.address); System.out.println("ডিসকাউন্ট রেট: " + jadairy.discountRate); System.out.println("পেমেন্ট তারিখ: " + jadairy.payDate); } }

আমাদের কোড নিচের আউটপুট দেবে:

নাম: J. Acker Dairy ঠিকানা: 1600 Johnson Ave. San Francisco 94127 ডিসকাউন্ট রেট: 2 পেমেন্ট তারিখ: মাসের শেষ দিন।

প্রথমে, আমরা MainCheeseSupplier নামে একটি ক্লাস সংজ্ঞায়িত করেছি যা আমাদের প্রোগ্রামের কোড ধারণ করে। তারপর আমরা চারটি প্রাইভেট ভেরিয়েবল—name, address, discountRate, এবং payDate—আরম্ভ করেছি যা আমাদের প্রধান পনির সাপ্লায়ারের তথ্য সংরক্ষণ করতে ব্যবহৃত হবে।

এই ভেরিয়েবলগুলো ঘোষণা করার পর, আমরা MainCheeseSupplier নামে একটি কনস্ট্রাক্টর তৈরি করেছি যা ডিফল্ট মান দিয়ে সেগুলো আরম্ভ করে। তারপর, আমাদের মেইন প্রোগ্রামে, আমরা নিচের কোড ব্যবহার করে আমাদের কনস্ট্রাক্টরের একটি উদাহরণ আরম্ভ করি:

MainCheeseSupplier jadairy = new MainCheeseSupplier();

এই কোড jadairy ভেরিয়েবলে MainCheeseSupplier অবজেক্টের একটি নতুন উদাহরণ বরাদ্দ করে। তারপর, আমরা jadairy ভেরিয়েবল এবং আমরা যাচ্ছি অ্যাক্সেস করতে অট্রিবিউট রেফারেন্স দিয়ে কনসোলে প্রতিটি মান প্রিন্ট করি।

এটি একটি নো-আর্গ কনস্ট্রাক্টর উদাহরণ। যেহেতু আমাদের কনস্ট্রাক্টর কোনো প্যারামিটার গ্রহণ করে না, তাই আমরা এটিকে নো-আর্গ বলি।

প্যারামিটারাইজড কনস্ট্রাক্টর

তবে, এমন পরিস্থিতি হতে পারে যেখানে আপনি কনস্ট্রাক্টর মাধ্যমে আর্গুমেন্ট পাস করতে চান।

আহার দোকানের উদাহরণে ফিরে যাই। ধরা যাক আমরা আমাদের প্রধান পনির সাপ্লায়ারের বিস্তারিতের মান আমাদের মেইন প্রোগ্রামে সংজ্ঞায়িত করতে চাই এবং প্রোগ্রাম এক্সিকিউশন শুরু হলে সেগুলো কনস্ট্রাক্টরকে বরাদ্দ করতে চাই।

আমরা এটি করতে পারি কারণ আমরা ভিন্ন মান সহ একাধিক সাপ্লায়ার আরম্ভ করছি, অথবা কারণ আমরা কনস্ট্রাক্টরে নির্দিষ্ট মান বরাদ্দ করতে চাই না।

যদি আমরা কনস্ট্রাক্টর মাধ্যমে আর্গুমেন্ট পাস করি, তবে এটিকে প্যারামিটারাইজড কনস্ট্রাক্টর বলা হয়।

আমরা কনস্ট্রাক্টর মাধ্যমে একটি প্যারামিটার লিস্ট পাস করতে পারি এভাবে:

class MainCheeseSupplier { String name; String address; int discountRate; String payDate; public MainCheeseSupplier(String supplierName, String supplierAddress, int supplierDiscountRate, String supplierPayDate) { name = supplierName; address = supplierAddress; discountRate = supplierDiscountRate; payDate = supplierPayDate; } public static void main(String[] args) { MainCheeseSupplier jadairy = new MainCheeseSupplier("J. Acker Dairy", "1600 Johnson Ave. San Francisco 94127", 2, "মাসের শেষ দিন।"); System.out.println("নাম: " + jadairy.name); System.out.println("ঠিকানা: " + jadairy.address); System.out.println("ডিসকাউন্ট রেট: " + jadairy.discountRate); System.out.println("পেমেন্ট তারিখ: " + jadairy.payDate); } }

আমাদের কোড নিচের আউটপুট দেবে:

নাম: J. Acker Dairy ঠিকানা: 1600 Johnson Ave. San Francisco 94127 ডিসকাউন্ট রেট: 2 পেমেন্ট তারিখ: মাসের শেষ দিন।

আপনি দেখতে পাচ্ছেন, এই উদাহরণে আমাদের কোডের আউটপুট আমাদের প্রথম উদাহরণের মতোই। তবে, আমাদের কোডে একটি বড় পার্থক্য আছে: কনস্ট্রাক্টর নিজেই মানগুলো আরম্ভ করার বদলে, আমরা কনস্ট্রাক্টরের একটি উদাহরণ ঘোষণা করার সময় সেগুলো প্যারামিটার হিসেবে পাস করি।

উপরের উদাহরণে, MainCheeseSupplier কনস্ট্রাক্টর চারটি প্যারামিটার গ্রহণ করে: supplierName, supplierAddress, supplierDiscountRate, এবং supplierPayDate। যখন আমরা MainCheeseSupplier কনস্ট্রাক্টরের একটি উদাহরণ আরম্ভ করি, আমরা এই প্যারামিটারগুলো মাধ্যমে মান পাস করি, যা আমাদের কনস্ট্রাক্টর পড়ে। কনস্ট্রাক্টরের একটি উদাহরণ আরম্ভ করার জন্য আমরা যে কোডটি ব্যবহার করি সেটি হলো:

MainCheeseSupplier jadairy = new MainCheeseSupplier("J. Acker Dairy", "1600 Johnson Ave. San Francisco 94127", 2, "মাসের শেষ দিন।");

তারপর, আমরা MainCheeseSupplier কনস্ট্রাক্টরে সংরক্ষিত মানগুলোর বিষয়বস্তু প্রিন্ট করি।

উপসংহার

জাভা কনস্ট্রাক্টর হল অবজেক্ট আরম্ভ করতে ব্যবহৃত বিশেষ মেথড। ক্লাসের একটি অবজেক্ট তৈরি হলে কনস্ট্রাক্টর কল করা হয় এবং এটি একটি অবজেক্টের অ্যাট্রিবিউটের প্রাথমিক মান সেট করতে ব্যবহৃত হয়।

এই টিউটোরিয়ালে উদাহরণসহ জাভাতে কনস্ট্রাক্টর তৈরি এবং ব্যবহার করার পদ্ধতি আলোচনা করা হয়েছে। এখন আপনি জাভা কনস্ট্রাক্টর এক্সপার্টের মতো ব্যবহার করতে পারবেন!

  1. জাভা Math.random ব্যবহার করার পদ্ধতি

  2. জাভা ৯-এ JShell-এ ইন্টারমিডিয়েট স্ট্রিম অপারেশন ব্যবহার করার পদ্ধতি

  3. জাভাতে সাব-প্যাকেজ ব্যবহার করা

  4. macOS-এ Homebrew দিয়ে একাধিক জাভা ভার্সন ইনস্টল ও ম্যানেজ করা