Apex ক্লাস এবং অবজেক্টস হলো Apex প্রোগ্রামিং ভাষার দুটি মৌলিক উপাদান, যা অবজেক্ট-অরিয়েন্টেড প্রোগ্রামিংয়ের মূল ধারণা। ক্লাস হলো একটি নীলনকশা বা টেম্পলেট যা বিভিন্ন বৈশিষ্ট্য (properties) এবং পদ্ধতি (methods) সংজ্ঞায়িত করে। অন্যদিকে, অবজেক্ট হলো ক্লাসের একটি ইনস্ট্যান্স যা নির্দিষ্ট ডেটা ধারণ করে এবং সেই ডেটার উপর নির্দিষ্ট কার্যক্রম সম্পাদন করতে পারে।
Apex ক্লাস
Apex ক্লাস হলো এমন একটি অবজেক্ট-অরিয়েন্টেড কাঠামো যেখানে ডেটা ফিল্ড, প্রোপার্টি এবং মেথড সংজ্ঞায়িত থাকে। ক্লাসের মাধ্যমে বিভিন্ন ডেটা এবং লজিক গঠন করা যায় যা প্রোগ্রামিং লজিক তৈরি করতে সহায়ক।
ক্লাসের সাধারণ কাঠামো:
public class ClassName {
// ভ্যারিয়েবল বা প্রোপার্টি
public String propertyName;
// কনস্ট্রাক্টর
public ClassName() {
// Initialization code
}
// মেথড
public void methodName() {
// Method code
}
}
উদাহরণ:
public class Car {
// প্রোপার্টি
public String model;
public String color;
// কনস্ট্রাক্টর
public Car(String model, String color) {
this.model = model;
this.color = color;
}
// মেথড
public void displayInfo() {
System.debug('Car Model: ' + model + ', Color: ' + color);
}
}
এখানে Car নামের একটি ক্লাস তৈরি করা হয়েছে, যেখানে model এবং color নামে দুইটি প্রোপার্টি আছে। এছাড়া একটি কনস্ট্রাক্টর আছে যা ক্লাস ইনস্ট্যান্স তৈরি করার সময় প্রোপার্টিগুলো ইনিশিয়ালাইজ করতে সাহায্য করে। displayInfo() মেথডটি গাড়ির তথ্য প্রদর্শনের জন্য ব্যবহৃত হবে।
Apex অবজেক্টস
Apex অবজেক্ট হলো ক্লাসের একটি নির্দিষ্ট ইনস্ট্যান্স। যখন কোনো ক্লাস থেকে একটি অবজেক্ট তৈরি করা হয়, তখন সেটি ক্লাসের প্রোপার্টি ও মেথডগুলো ব্যবহার করতে সক্ষম হয়। প্রতিটি অবজেক্টের নিজস্ব ডেটা থাকে এবং ক্লাসের প্রোপার্টিগুলোকে ইনিশিয়ালাইজ করা যায়।
উদাহরণ:
// Car ক্লাসের একটি অবজেক্ট তৈরি করা
Car myCar = new Car('Tesla Model S', 'Red');
// অবজেক্টের মেথড কল করা
myCar.displayInfo();
এখানে myCar নামে একটি অবজেক্ট তৈরি করা হয়েছে যা Car ক্লাসের একটি ইনস্ট্যান্স। myCar অবজেক্টটি Tesla Model S মডেল এবং Red রঙ ধারণ করে। displayInfo() মেথড কল করলে এই তথ্য প্রদর্শিত হবে।
Apex ক্লাস এবং অবজেক্টের ব্যবহার
Apex ক্লাস এবং অবজেক্ট সাধারণত কাস্টম ডেটা টাইপ তৈরি এবং বিভিন্ন লজিক্যাল ফাংশন বাস্তবায়নের জন্য ব্যবহৃত হয়। কিছু সাধারণ ব্যবহার হলো:
ডেটা মডেলিং: ক্লাসের মাধ্যমে ডেটা মডেল তৈরি করা যায়, যেখানে অবজেক্টগুলি সেই মডেলের নির্দিষ্ট ডেটা ধারণ করে। যেমন, Car ক্লাসের প্রতিটি অবজেক্ট একটি নির্দিষ্ট গাড়ির মডেল এবং রঙ ধারণ করতে পারে।
কাস্টম কার্যক্রম সম্পন্ন করা: ক্লাসের মধ্যে বিভিন্ন মেথড সংজ্ঞায়িত করে ডেটা প্রসেসিং, গণনা এবং বিভিন্ন কার্যক্রম সম্পন্ন করা যায়। উদাহরণস্বরূপ, displayInfo() মেথড ব্যবহার করে প্রতিটি অবজেক্টের তথ্য প্রদর্শন করা সম্ভব।
সহজতর কোড রিইউজ: একবার একটি ক্লাস তৈরি হলে, সেই ক্লাস থেকে একাধিক অবজেক্ট তৈরি করা যায় এবং পুনঃব্যবহারযোগ্য লজিক তৈরি করা সহজ হয়।
প্রজেক্ট ওরগানাইজেশন: কাস্টম ক্লাস তৈরি করে বিভিন্ন ফাংশনালিটি মডুলার করা যায়, যা কোডকে আরও পরিষ্কার এবং রক্ষণাবেক্ষণ সহজ করে।
সংক্ষেপে Apex ক্লাস এবং অবজেক্টস
- Apex ক্লাস: একটি টেম্পলেট যা প্রোপার্টি এবং মেথড ধারণ করে, যা অবজেক্ট তৈরি করতে সহায়ক।
- Apex অবজেক্ট: ক্লাসের একটি নির্দিষ্ট ইনস্ট্যান্স যা ক্লাসের প্রোপার্টি এবং মেথড ব্যবহার করতে সক্ষম।
Apex ক্লাস এবং অবজেক্ট ব্যবহার করে Salesforce প্ল্যাটফর্মে কাস্টম লজিক এবং ডেটা মডেল তৈরি করা যায়, যা ব্যবসায়িক প্রক্রিয়া অটোমেশনে সহায়ক।
Apex ক্লাস হলো Salesforce প্ল্যাটফর্মে কোডিং করার জন্য একটি অবজেক্ট-অরিয়েন্টেড প্রোগ্রামিং (OOP) কাঠামো যা ডেটা ও ফাংশনালিটি সংযুক্ত করে নির্দিষ্ট কার্যক্রম সম্পাদন করে। Apex ক্লাসের মাধ্যমে লজিক্যাল কোড ব্লক তৈরি করা যায়, যা ডেটা ম্যানেজমেন্ট, প্রক্রিয়াকরণ, এবং বিভিন্ন কার্যক্রমের উপর ভিত্তি করে ব্যবহার করা যায়।
Apex ক্লাস কী?
Apex ক্লাস হলো বিভিন্ন মেথড, ভ্যারিয়েবল, এবং অন্যান্য ডেটা টাইপের সমন্বয়ে তৈরি একটি কোড ব্লক, যা নির্দিষ্ট কার্যক্রম এবং ফাংশনালিটি ধারণ করে। ক্লাসে ডেটা ও মেথড সংযুক্ত থাকে যা প্রোগ্রামের লজিক সহজে সংরক্ষণ ও পরিচালনা করতে সহায়ক। Apex ক্লাস অনেকটা Java ক্লাসের মতোই কাজ করে এবং এটি Salesforce-এর সাথে গভীরভাবে সংযুক্ত, যা Salesforce এর অবজেক্ট এবং ডেটাবেজের উপর কার্যকরী হয়।
Apex ক্লাসটি ডেভেলপারদেরকে অবজেক্ট-অরিয়েন্টেড প্রোগ্রামিং কনসেপ্ট অনুসরণ করে কোড সংরক্ষণ এবং পুনরায় ব্যবহারযোগ্য কোড তৈরি করতে সহায়তা করে।
Apex ক্লাসের সাধারণ গঠন
Apex ক্লাসে অ্যাক্সেস মডিফায়ার, ক্লাসের নাম, ভ্যারিয়েবল, কনস্ট্রাক্টর, এবং মেথড থাকতে পারে।
public class MyClass {
// Class variable
public String name;
// Constructor
public MyClass(String name) {
this.name = name;
}
// Method
public void displayName() {
System.debug('Name: ' + name);
}
}
Apex ক্লাসের প্রয়োজনীয়তা
Apex ক্লাসের প্রয়োজনীয়তা Salesforce প্ল্যাটফর্মে কার্যকর ও পুনরায় ব্যবহারযোগ্য কোড তৈরি করতে অত্যন্ত গুরুত্বপূর্ণ। Apex ক্লাস ব্যবহারের কিছু মূল কারণ নিচে দেয়া হলো:
কোড সংগঠন এবং পুনরায় ব্যবহারযোগ্যতা: Apex ক্লাসে ডেটা এবং মেথড সংরক্ষণ করে কোডকে সহজেই সংগঠিত এবং পুনরায় ব্যবহারযোগ্য করা যায়। এর ফলে একই লজিক একাধিকবার লিখতে হয় না, বরং একটি ক্লাসকে বিভিন্ন স্থানে ব্যবহার করা যায়।
অবজেক্ট-অরিয়েন্টেড প্রোগ্রামিং (OOP) সাপোর্ট: Apex ক্লাসে অবজেক্ট-অরিয়েন্টেড প্রোগ্রামিংয়ের মূল ধারণাগুলো যেমন- ইনহেরিটেন্স, পলিমরফিজম, এনক্যাপসুলেশন ইত্যাদি ব্যবহার করা যায়। এর ফলে কোডের পুনরায় ব্যবহারযোগ্যতা এবং কার্যকারিতা বৃদ্ধি পায়।
বিভিন্ন ব্যবসায়িক প্রক্রিয়া ম্যানেজমেন্ট: Apex ক্লাসের মাধ্যমে কাস্টম লজিক এবং ব্যবসায়িক প্রক্রিয়াগুলি পরিচালনা করা সহজ হয়। উদাহরণস্বরূপ, ক্লাস ব্যবহার করে কাস্টম লজিক তৈরি করা যায় যা ডেটা ভ্যালিডেশন, ডেটা প্রসেসিং, এবং ইন্টিগ্রেশন ম্যানেজ করতে সাহায্য করে।
ডেটা মডেলিং এবং প্রক্রিয়াকরণ: Apex ক্লাসে ভ্যারিয়েবল এবং মেথড ডিফাইন করে ডেটা মডেল এবং প্রক্রিয়া সহজে ম্যানেজ করা যায়। এতে ক্লাসের মধ্যে ডেটা সংরক্ষণ এবং সেটার উপর অপারেশন করা যায়।
পরিচ্ছন্ন কোড এবং মেনটেনেবলিটি: একটি বৃহৎ প্রজেক্টে কোড সহজে ম্যানেজ করতে হলে, পরিচ্ছন্ন কোডিং প্রয়োজন। ক্লাস ব্যবহার করে কোডিং করলে একই কোডের বিভিন্ন অংশকে আলাদা আলাদা অংশে ভাগ করা যায়, যা কোড সহজে মেনটেইন করতে সহায়ক।
ইন্টিগ্রেশন সক্ষমতা: Apex ক্লাসের মাধ্যমে Salesforce এবং এক্সটারনাল সিস্টেমের মধ্যে ইন্টিগ্রেশন তৈরি করা সহজ হয়। ক্লাসের মধ্যে API কল, SOQL কুয়েরি, এবং ডেটা ম্যানিপুলেশন লজিক সংরক্ষণ করা যায়, যা ইন্টিগ্রেশনের জন্য প্রয়োজনীয়।
ইনক্যাপসুলেশন এবং ডেটা সুরক্ষা: Apex ক্লাসে ডেটা এবং মেথড এনক্যাপসুলেশন করে রাখা হয়, যার ফলে কোডের একটি নির্দিষ্ট অংশে এক্সেস নিয়ন্ত্রণ করা যায়। অ্যাক্সেস মডিফায়ার যেমন public, private, protected ব্যবহারের মাধ্যমে ডেটা সুরক্ষা নিশ্চিত করা যায়।
উদাহরণ: Apex ক্লাসের ব্যবহার
নিচের উদাহরণে Student নামক একটি ক্লাস তৈরি করা হয়েছে যেখানে একটি কনস্ট্রাক্টর, একটি ভ্যারিয়েবল, এবং একটি মেথড ব্যবহার করা হয়েছে।
public class Student {
// Class variable
public String studentName;
public Integer studentAge;
// Constructor
public Student(String name, Integer age) {
this.studentName = name;
this.studentAge = age;
}
// Method to display student information
public void displayInfo() {
System.debug('Student Name: ' + studentName);
System.debug('Student Age: ' + studentAge);
}
}
// ক্লাসের ব্যবহার
Student student = new Student('John Doe', 20);
student.displayInfo();
এই উদাহরণে:
Studentনামের একটি ক্লাস তৈরি করা হয়েছে, যেখানেstudentNameএবংstudentAgeভ্যারিয়েবল রয়েছে।displayInfoমেথড ব্যবহার করে ছাত্রের তথ্য প্রদর্শন করা হচ্ছে।Studentক্লাসের একটি অবজেক্ট তৈরি করেdisplayInfoমেথড কল করে ছাত্রের নাম ও বয়স প্রিন্ট করা হচ্ছে।
সংক্ষেপে:
Apex ক্লাস Salesforce প্ল্যাটফর্মে কাস্টম লজিক এবং ব্যবসায়িক কার্যক্রম পরিচালনা করতে একটি শক্তিশালী এবং সুসংহত কাঠামো প্রদান করে। এর মাধ্যমে কোড পুনরায় ব্যবহারযোগ্য, পরিচ্ছন্ন, এবং কার্যকরী করা যায়, যা ডেভেলপারদের জন্য একটি উন্নত প্ল্যাটফর্ম প্রদান করে। Apex ক্লাসের মাধ্যমে Salesforce প্ল্যাটফর্মে উন্নত এবং কাঠামোগত কোড তৈরি করা সহজ হয়।
ক্লাস ডিক্লারেশন এবং ইনস্ট্যান্সিয়েশন Apex-এ অবজেক্ট-অরিয়েন্টেড প্রোগ্রামিংয়ের মূল ধারণা। ক্লাস ডিক্লারেশন দ্বারা একটি কাস্টম কাঠামো বা নীলনকশা তৈরি করা হয়, যা অবজেক্ট তৈরি করতে সহায়ক। আর ইনস্ট্যান্সিয়েশন হলো সেই ক্লাস থেকে একটি নির্দিষ্ট অবজেক্ট তৈরি করা।
ক্লাস ডিক্লারেশন (Class Declaration)
ক্লাস ডিক্লারেশন হলো এমন একটি প্রক্রিয়া যেখানে একটি নতুন ক্লাস তৈরি করা হয় এবং সেই ক্লাসের প্রোপার্টি এবং মেথডগুলো সংজ্ঞায়িত করা হয়। Apex-এ ক্লাস ডিক্লার করার সময় সাধারণত অ্যাক্সেস মডিফায়ার, ক্লাসের নাম, এবং ক্লাসের ভেতরের মেম্বার ভেরিয়েবল ও মেথড সংজ্ঞায়িত করা হয়।
Syntax:
public class ClassName {
// মেম্বার ভ্যারিয়েবল (properties)
public DataType propertyName;
// কনস্ট্রাক্টর
public ClassName() {
// Initialization code
}
// মেথড
public void methodName() {
// Method code
}
}
উদাহরণ:
public class Car {
// প্রোপার্টি
public String model;
public String color;
// কনস্ট্রাক্টর
public Car(String model, String color) {
this.model = model;
this.color = color;
}
// মেথড
public void displayInfo() {
System.debug('Car Model: ' + model + ', Color: ' + color);
}
}
এখানে Car নামে একটি ক্লাস ডিক্লার করা হয়েছে যেখানে model এবং color নামে দুটি প্রোপার্টি রয়েছে। এছাড়া একটি কনস্ট্রাক্টর রয়েছে যা ইনস্ট্যান্সিয়েশন করার সময় প্রোপার্টিগুলো সেট করতে সহায়ক। displayInfo() মেথড ব্যবহার করে গাড়ির মডেল ও রঙ প্রদর্শন করা যাবে।
ইনস্ট্যান্সিয়েশন (Instantiation)
ইনস্ট্যান্সিয়েশন হলো সেই প্রক্রিয়া যেখানে একটি ক্লাস থেকে অবজেক্ট তৈরি করা হয়। যখন কোনো ক্লাস থেকে অবজেক্ট তৈরি করা হয়, তখন সেটিকে সেই ক্লাসের একটি ইনস্ট্যান্স বলা হয়। ইনস্ট্যান্সিয়েশন করার সময় কনস্ট্রাক্টর কল করা হয় এবং প্রোপার্টি বা মেথডগুলো সেই নির্দিষ্ট অবজেক্টে অ্যাসাইন করা হয়।
Syntax:
ClassName objectName = new ClassName(parameters);
উদাহরণ:
// Car ক্লাস থেকে একটি অবজেক্ট তৈরি করা
Car myCar = new Car('Tesla Model S', 'Red');
// অবজেক্টের মেথড কল করা
myCar.displayInfo();
এখানে myCar নামের একটি অবজেক্ট তৈরি করা হয়েছে, যা Car ক্লাসের একটি ইনস্ট্যান্স। myCar অবজেক্টটি Tesla Model S মডেল এবং Red রঙ ধারণ করে। displayInfo() মেথড কল করার মাধ্যমে এই তথ্য প্রদর্শন করা হবে।
ক্লাস ডিক্লারেশন এবং ইনস্ট্যান্সিয়েশন-এর গুরুত্বপূর্ণ বিষয়
- কনস্ট্রাক্টর ব্যবহার: ইনস্ট্যান্সিয়েশন করার সময় কনস্ট্রাক্টর ব্যবহার করে প্রোপার্টির প্রাথমিক মান সেট করা যায়।
- মাল্টিপল ইনস্ট্যান্স: একই ক্লাস থেকে একাধিক অবজেক্ট তৈরি করা সম্ভব এবং প্রতিটি অবজেক্টে আলাদা মান থাকতে পারে।
- প্রোপার্টি এবং মেথড অ্যাক্সেস: ইনস্ট্যান্সিয়েশন করার পর অবজেক্ট থেকে প্রোপার্টি ও মেথড অ্যাক্সেস করা যায়।
সংক্ষেপে
- ক্লাস ডিক্লারেশন: নতুন ক্লাস তৈরি ও তার প্রোপার্টি এবং মেথড সংজ্ঞায়িত করা।
- ইনস্ট্যান্সিয়েশন: ক্লাস থেকে নির্দিষ্ট অবজেক্ট তৈরি করা এবং সেটি ব্যবহার করা।
এই প্রক্রিয়ার মাধ্যমে Apex-এ কাস্টম অবজেক্ট তৈরি করা যায় এবং সেই অবজেক্টের মাধ্যমে বিভিন্ন কার্যক্রম সম্পাদন করা যায়, যা প্রোগ্রামিং লজিক তৈরি এবং রিইউজেবল কোড লিখতে সহায়ক।
অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (Object-Oriented Programming, OOP) একটি প্রোগ্রামিং প্যারাডাইম, যেখানে ডেটা ও কার্যকলাপকে অবজেক্ট হিসেবে সংরক্ষণ ও পরিচালনা করা হয়। OOP এর মূলনীতিগুলি কোডকে আরও সুসংগঠিত, পুনরায় ব্যবহারযোগ্য, এবং রক্ষণাবেক্ষণযোগ্য করে তোলে। OOP এর প্রধান চারটি মূলনীতি হলো এনক্যাপসুলেশন (Encapsulation), ইনহেরিটেন্স (Inheritance), পলিমরফিজম (Polymorphism), এবং অ্যাবস্ট্রাকশন (Abstraction)।
১. এনক্যাপসুলেশন (Encapsulation)
এনক্যাপসুলেশন হলো ডেটা এবং মেথডকে একটি ক্লাসের মধ্যে বেঁধে রাখার প্রক্রিয়া। এর মাধ্যমে ডেটাকে বাইরের অ্যাক্সেস থেকে সুরক্ষিত রাখা যায় এবং শুধুমাত্র নির্দিষ্ট মেথডের মাধ্যমে ডেটা অ্যাক্সেস বা পরিবর্তন করা যায়।
উদাহরণ:
public class Student {
private String name; // Private ভ্যারিয়েবল
// Public মেথড যা প্রাইভেট ডেটা অ্যাক্সেস করতে দেয়
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}
- এখানে
nameভ্যারিয়েবলprivateহিসাবে ডিক্লেয়ার করা হয়েছে, তাই এটি সরাসরি বাইরে থেকে অ্যাক্সেস করা যায় না। setNameএবংgetNameমেথডের মাধ্যমেnameভ্যারিয়েবলে ডেটা সেট এবং রিট্রিভ করা যায়।
এনক্যাপসুলেশনের মাধ্যমে কোডের সুরক্ষা বৃদ্ধি পায় এবং প্রোগ্রামের ডেটা পরিবর্তনের নিয়ন্ত্রণ থাকে নির্দিষ্ট মেথডের উপর।
২. ইনহেরিটেন্স (Inheritance)
ইনহেরিটেন্স হলো একটি ক্লাসের বৈশিষ্ট্যগুলো অন্য একটি ক্লাসে ব্যবহার করার প্রক্রিয়া। অর্থাৎ, একটি ক্লাস (চাইল্ড ক্লাস) অন্য একটি ক্লাসের (প্যারেন্ট ক্লাস) বৈশিষ্ট্য ও মেথড উত্তরাধিকার সূত্রে পায়। এটি কোড পুনরায় ব্যবহারযোগ্যতা এবং সহজতর করে।
উদাহরণ:
// প্যারেন্ট ক্লাস
public class Person {
public String name;
public Integer age;
public void displayInfo() {
System.debug('Name: ' + name);
System.debug('Age: ' + age);
}
}
// চাইল্ড ক্লাস
public class Student extends Person {
public Integer studentId;
public void displayStudentInfo() {
displayInfo(); // প্যারেন্ট ক্লাসের মেথড ব্যবহার করা হচ্ছে
System.debug('Student ID: ' + studentId);
}
}
- এখানে
Studentক্লাসPersonক্লাস থেকে ইনহেরিট করেছে, যার ফলেStudentক্লাসPersonক্লাসেরname,ageএবংdisplayInfo()মেথড ব্যবহার করতে পারছে।
ইনহেরিটেন্সের মাধ্যমে কোড সহজে পুনরায় ব্যবহারযোগ্য হয় এবং কোড রিডন্ডেন্সি কমে।
৩. পলিমরফিজম (Polymorphism)
পলিমরফিজম হলো একটি কাজ বা মেথডকে একাধিক উপায়ে সম্পাদন করার ক্ষমতা। একই মেথড নাম ভিন্ন ভিন্ন ক্লাসে ভিন্নভাবে কাজ করতে পারে। পলিমরফিজমের দুটি প্রধান রূপ হলো মেথড ওভারলোডিং এবং মেথড ওভাররাইডিং।
উদাহরণ:
// মেথড ওভারলোডিং
public class Calculator {
public Integer add(Integer a, Integer b) {
return a + b;
}
public Double add(Double a, Double b) {
return a + b;
}
}
// মেথড ওভাররাইডিং
public class Animal {
public void makeSound() {
System.debug('Some sound...');
}
}
public class Dog extends Animal {
public override void makeSound() {
System.debug('Bark');
}
}
- মেথড ওভারলোডিং:
Calculatorক্লাসেরaddমেথড দুটি ইনপুট টাইপ অনুযায়ী ভিন্ন ভিন্ন উপায়ে কাজ করছে। - মেথড ওভাররাইডিং:
Dogক্লাসAnimalক্লাসেরmakeSoundমেথড ওভাররাইড করেছে, যার ফলেDogক্লাসেরmakeSoundমেথড চালালে "Bark" প্রিন্ট হবে।
পলিমরফিজমের মাধ্যমে কোডকে আরও ডাইনামিক ও ফ্লেক্সিবল করা যায়।
৪. অ্যাবস্ট্রাকশন (Abstraction)
অ্যাবস্ট্রাকশন হলো কোডের জটিলতা লুকিয়ে রেখে প্রয়োজনীয় বৈশিষ্ট্যগুলো প্রদর্শন করা। এটি এমন একটি প্রক্রিয়া যেখানে কিছু মেথড বা ক্লাসের মাধ্যমে বাইরের বিশ্বের জন্য প্রয়োজনীয় তথ্য প্রদর্শন করা হয়, এবং অবাঞ্ছিত জটিলতাগুলো আড়াল করা হয়। Apex এ Interface এবং Abstract Class ব্যবহার করে অ্যাবস্ট্রাকশন অর্জন করা যায়।
উদাহরণ:
// Abstract Class
public abstract class Vehicle {
public abstract void startEngine();
}
public class Car extends Vehicle {
public override void startEngine() {
System.debug('Car engine started');
}
}
- এখানে
Vehicleএকটি Abstract Class, যেখানেstartEngineএকটি অ্যাবস্ট্রাক্ট মেথড।Carক্লাসে এটি ওভাররাইড করে প্রয়োজনীয় কোড যোগ করা হয়েছে।
অ্যাবস্ট্রাকশনের মাধ্যমে কমপ্লেক্সিটির নিয়ন্ত্রণ করা যায় এবং শুধুমাত্র প্রয়োজনীয় অংশগুলো প্রকাশ করা যায়।
সংক্ষেপে OOP Concepts
- এনক্যাপসুলেশন (Encapsulation): ডেটা এবং মেথডকে একটি ইউনিট হিসেবে সংরক্ষণ করা এবং সরাসরি অ্যাক্সেস সীমাবদ্ধ করা।
- ইনহেরিটেন্স (Inheritance): একটি ক্লাসের বৈশিষ্ট্য ও মেথড অন্য ক্লাসে ব্যবহার করার প্রক্রিয়া।
- পলিমরফিজম (Polymorphism): একই মেথড বা কাজ ভিন্ন ভিন্ন উপায়ে সম্পন্ন করার ক্ষমতা।
- অ্যাবস্ট্রাকশন (Abstraction): প্রয়োজনীয় বৈশিষ্ট্যগুলো প্রদর্শন করা এবং অবাঞ্ছিত জটিলতাগুলো আড়াল করা।
OOP Concepts প্রোগ্রামিংকে আরও সুসংগঠিত, পুনরায় ব্যবহারযোগ্য, এবং রক্ষণাবেক্ষণযোগ্য করে, যা সফটওয়্যার ডেভেলপমেন্টকে আরও সহজ এবং কার্যকরী করে তোলে।
Constructors এবং Class Methods Apex ক্লাসের দুটি গুরুত্বপূর্ণ উপাদান। কনস্ট্রাক্টর মূলত ক্লাস থেকে একটি অবজেক্ট তৈরি করার সময় প্রোপার্টিগুলো ইনিশিয়ালাইজ করতে ব্যবহৃত হয়, এবং ক্লাস মেথডস হলো নির্দিষ্ট কার্যক্রম সম্পাদনের জন্য ব্যবহার করা বিভিন্ন ফাংশন। নিচে Constructors এবং Class Methods সম্পর্কে বিস্তারিত আলোচনা করা হলো।
Constructors
Constructor হলো একটি বিশেষ মেথড যা কোনো ক্লাস থেকে অবজেক্ট তৈরি করার সময় স্বয়ংক্রিয়ভাবে কল হয়। কনস্ট্রাক্টরের কাজ হলো ক্লাসের প্রোপার্টিগুলোকে প্রাথমিক মান দিয়ে ইনিশিয়ালাইজ করা। Constructor-এর নাম ক্লাসের নামের মতোই হয় এবং এটি কোনো রিটার্ন টাইপ গ্রহণ করে না।
Constructor-এর বৈশিষ্ট্য:
- Constructor-এর নাম ক্লাসের নামের মতোই হয়।
- Constructor-এর কোনো রিটার্ন টাইপ নেই।
- একটি ক্লাসে একাধিক কনস্ট্রাক্টর থাকতে পারে, যা বিভিন্ন ইনপুট প্যারামিটার গ্রহণ করতে পারে (Constructor Overloading)।
Syntax:
public class ClassName {
// Constructor
public ClassName(parameters) {
// Initialization code
}
}
উদাহরণ:
public class Car {
public String model;
public String color;
// Constructor
public Car(String model, String color) {
this.model = model;
this.color = color;
}
}
এখানে Car ক্লাসে একটি কনস্ট্রাক্টর আছে যা model এবং color প্রোপার্টিগুলোকে ইনিশিয়ালাইজ করে। যখনই এই ক্লাস থেকে একটি অবজেক্ট তৈরি করা হয়, তখন এই কনস্ট্রাক্টরটি স্বয়ংক্রিয়ভাবে কল হয় এবং প্রোপার্টিগুলোতে মান সেট করে।
Class Methods
Class Methods হলো এমন ফাংশন বা মেথড, যা ক্লাসের ভেতরে সংজ্ঞায়িত থাকে এবং নির্দিষ্ট কাজ সম্পন্ন করে। Class Methods সাধারণত কোডের পুনঃব্যবহারযোগ্যতা বাড়ায় এবং বিভিন্ন কাজের জন্য কোড ব্লক তৈরি করতে সহায়ক।
Class Methods-এর বিভিন্ন ধরণের অ্যাক্সেস মডিফায়ার থাকতে পারে, যেমন public, private, এবং protected। Methods সাধারণত ক্লাসের প্রোপার্টির মান প্রসেস বা পরিবর্তন করতে এবং অন্যান্য কার্যক্রম সম্পন্ন করতে ব্যবহৃত হয়।
Syntax:
public class ClassName {
// Class Method
public ReturnType methodName(parameters) {
// Method code
}
}
উদাহরণ:
public class Car {
public String model;
public String color;
// Constructor
public Car(String model, String color) {
this.model = model;
this.color = color;
}
// Class Method
public void displayInfo() {
System.debug('Car Model: ' + model + ', Color: ' + color);
}
}
এখানে Car ক্লাসে displayInfo() নামে একটি মেথড সংজ্ঞায়িত করা হয়েছে, যা গাড়ির মডেল এবং রঙ প্রদর্শন করে। এই মেথডটি অবজেক্ট তৈরি করে কল করা হলে, প্রোপার্টিগুলোর মান প্রদর্শন করা সম্ভব।
Constructor এবং Class Methods-এর পার্থক্য
| বৈশিষ্ট্য | Constructor | Class Method |
|---|---|---|
| উদ্দেশ্য | অবজেক্ট তৈরি করার সময় প্রোপার্টি ইনিশিয়ালাইজ করা | নির্দিষ্ট কাজ সম্পাদন করা এবং কোডের পুনঃব্যবহারযোগ্যতা বাড়ানো |
| রিটার্ন টাইপ | কোনো রিটার্ন টাইপ নেই | সাধারণত একটি রিটার্ন টাইপ থাকে, void ও হতে পারে |
| নাম | ক্লাসের নামের মতোই | স্বাধীন নাম থাকতে পারে |
| অবজেক্ট তৈরি করার সময় কল হয় | হ্যাঁ | না |
| অবজেক্টের উপর কার্যকর | অবজেক্ট তৈরি করার সময়ই কার্যকর হয় | অবজেক্ট তৈরি করার পরে কল করা যায় |
সংক্ষেপে Constructors এবং Class Methods
- Constructors: ক্লাস থেকে অবজেক্ট তৈরি করার সময় প্রোপার্টিগুলো ইনিশিয়ালাইজ করতে ব্যবহৃত হয়।
- Class Methods: ক্লাসের নির্দিষ্ট কার্যক্রম সম্পন্ন করতে এবং পুনঃব্যবহারযোগ্য লজিক তৈরি করতে ব্যবহৃত হয়।
Apex-এ Constructors এবং Class Methods ব্যবহার করে প্রোগ্রামিং লজিক আরও সুগঠিত করা যায় এবং অবজেক্ট-অরিয়েন্টেড কাঠামো তৈরি করা সহজ হয়।
Read more