"আমি আপনাকে অবজেক্ট ইনিশিয়ালাইজেশন সম্পর্কে বলতে চাই। আপনি যখন একটি অবজেক্ট তৈরি করেন, তখন আপনাকে তার ভেরিয়েবলে প্রারম্ভিক মান বরাদ্দ করতে হবে এমন পরিস্থিতি এড়াতে যেখানে আপনি এমন একটি বস্তু অ্যাক্সেস করেন যেখানে সঠিকভাবে কাজ করার জন্য প্রয়োজনীয় তথ্য নেই।"
"আসুন একটি ফাইল অবজেক্ট বিবেচনা করা যাক। একটি ফাইলের জন্য ন্যূনতম প্রয়োজনীয় তথ্য হল এর নাম। একটি নামহীন ফাইল তৈরি করা অযৌক্তিক হবে। "
"ধরুন আমরা ফাইলগুলির সাথে কাজ করার জন্য একটি MyFile ক্লাস লিখি। প্রতিটি বস্তুর জন্য কি তথ্য প্রয়োজন হবে?"
"অবজেক্টের সাথে যুক্ত ফাইলের নাম?"
"এটা ঠিক। এটি করার জন্য, আমরা আমাদের ক্লাসে ইনিশিয়ালাইজ () মেথড যোগ করি। এটি দেখতে এইরকম।"
class MyFile
{
private String filename = null;
public void initialize(String name)
{
this.filename = name;
}
…
}
"আমরা মেথড কল করে অবজেক্টের সাথে কাজ করা সম্ভব করার জন্য ইনিশিয়ালাইজ মেথড যোগ করেছি। ইনিশিয়ালাইজ মেথড কল করার সাথে সাথেই আমরা অবজেক্টের মেথডগুলোকে কল করতে পারি। যদি আমরা কোনো অবজেক্টের সাথে কাজ করতে না পারি, তাহলে আমরা সেটিকে অবৈধ বলি ; অন্যথায়, আমরা বলি অবজেক্টটি বৈধ । ইনিশিয়ালাইজ পদ্ধতির প্রধান কাজ হল সমস্ত ডেটা গ্রহণ করা যা একটি বস্তুকে বৈধ করার জন্য প্রয়োজন। "
"আমি দেখি."
"এখন আসুন আমাদের কাজকে আরও কঠিন করে তুলি। অথবা, দ্বিতীয় চিন্তায়, সহজ। আপনি এটিকে কীভাবে দেখছেন তার উপর নির্ভর করে। ধরুন আমাদের ক্লাস ব্যবহারকারী একজন প্রোগ্রামার তার সম্পূর্ণ পথের পরিবর্তে শুধুমাত্র ফাইলের ডিরেক্টরি এবং সংক্ষিপ্ত নাম পাস করা আরও সুবিধাজনক বলে মনে করবেন। প্রোগ্রামারকে এটি করতে দেওয়ার জন্য আমরা আরেকটি ইনিশিয়ালাইজ পদ্ধতি তৈরি করতে পারি ( জাভা আমাদেরকে অভিন্ন নাম দিয়ে বিভিন্ন পদ্ধতি তৈরি করতে দেয় । এখানে আমাদের ক্লাস দেখতে কেমন হবে:"
class MyFile
{
private String filename = null;
public void initialize(String name)
{
this.filename = name;
}
public void initialize(String folder, String name)
{
this.filename = folder + name;
}
…
}
"আরও একটি জিনিস: আমাদের প্রায়ই বর্তমান ফাইলের পাশে একটি ফাইলের একটি অস্থায়ী অনুলিপি তৈরি করতে হবে।"
"আমরা কি এটি করার জন্য একটি পদ্ধতি তৈরি করতে পারি?"
"অবশ্যই। দেখো।"
class MyFile
{
private String filename = null;
public void initialize(String name)
{
this.filename = name;
}
public void initialize(String folder, String name)
{
this.filename = folder + name;
}
// The filename will be stored in the same directory as file.
public void initialize(MyFile file, String name)
{
this.filename = file.getFolder() + name;
}
…
}
"এবং আমি যতটা চাই এই পদ্ধতিগুলির মধ্যে অনেকগুলি তৈরি করতে পারি?"
"ঠিক আছে, কারণের মধ্যে। কিন্তু টেকনিক্যালি বলতে গেলে, হ্যাঁ, যতগুলো আপনি চান।"
"আমাকে কখন ইনিশিয়ালাইজ মেথড কল করতে হবে?"
"অবজেক্ট তৈরি করার পরপরই, এটি বৈধ করতে।"
উদাহরণ: |
---|
|
|
|
"এই getFolder() পদ্ধতি কি?"
"আমরা আসলে এখানে কোডটি দেখাইনি। এটি এমন একটি পদ্ধতির প্রতিনিধিত্ব করে যা ফোল্ডারের নামের সাথে একটি স্ট্রিং প্রদান করে যেখানে আমাদের ফাইল সংরক্ষণ করা হয়।"
GO TO FULL VERSION