VB.Net-এ Inheritance, Polymorphism, এবং Encapsulation
Object-Oriented Programming (OOP) বা অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং এর তিনটি প্রধান মৌলিক ধারণা হল: Inheritance, Polymorphism, এবং Encapsulation। এগুলি OOP-এর মূল স্তম্ভ এবং প্রোগ্রামিংয়ে কোডের পুনঃব্যবহারযোগ্যতা, স্থিতিশীলতা এবং পরিচালনার সহজতা নিশ্চিত করতে সহায়তা করে। এখানে আমরা প্রতিটি ধারণা বিস্তারিতভাবে আলোচনা করব এবং VB.Net-এ কিভাবে এই তিনটি ধারণা প্রয়োগ করা যায় তা দেখাব।
১. Inheritance (ইনহেরিটেন্স)
Inheritance হল একটি ক্লাসের বৈশিষ্ট্য (ফিল্ডস এবং মেথডস) এবং আচরণ (behavior) অন্য একটি ক্লাসে উত্তরাধিকারসূত্রে প্রাপ্ত হওয়ার প্রক্রিয়া। এর মাধ্যমে একটি ক্লাস (subclass বা derived class) অন্য একটি ক্লাসের (base class বা parent class) বৈশিষ্ট্য এবং আচরণ অর্জন করে, যার ফলে কোডের পুনঃব্যবহারযোগ্যতা বৃদ্ধি পায় এবং কোড কমপ্লেক্সিটি কমে যায়।
Inheritance-এর সুবিধা:
- কোডের পুনঃব্যবহারযোগ্যতা।
- সিস্টেমের আর্কিটেকচার সহজ করা।
- নতুন ক্লাস তৈরি করার সময় পুরনো ক্লাসের কাজ পুনরায় না লিখে সেগুলি ব্যবহার করা।
VB.Net-এ Inheritance এর উদাহরণ:
' Parent class
Public Class Animal
Public Sub Speak()
Console.WriteLine("Animal makes a sound")
End Sub
End Class
' Child class that inherits from Animal
Public Class Dog
Inherits Animal
' Overriding the Speak method
Public Sub Bark()
Console.WriteLine("Dog barks")
End Sub
End Class
Sub Main()
' Create an object of the child class
Dim myDog As New Dog()
' Access inherited method
myDog.Speak() ' Animal makes a sound
' Access child class method
myDog.Bark() ' Dog barks
End Subএখানে, Dog ক্লাস Animal ক্লাস থেকে ইনহেরিট করেছে, যার ফলে Dog ক্লাস Animal ক্লাসের Speak মেথড ব্যবহার করতে পারে।
২. Polymorphism (পলিমর্ফিজম)
Polymorphism হল একটি অবজেক্ট ওরিয়েন্টেড কনসেপ্ট, যেখানে একটি অবজেক্ট একাধিক ফর্মে (behavior) উপস্থিত থাকতে পারে। এটি দুটি প্রকারে বিভক্ত:
- Compile-time Polymorphism (Method Overloading): একই নামের একাধিক মেথড বিভিন্ন প্যারামিটার গ্রহণ করে।
- Run-time Polymorphism (Method Overriding): একটি মেথড base class-এ ডিফাইন করা থাকলেও derived class-এ তা পুনরায় ডিফাইন (override) করা হয়।
Polymorphism-এর সুবিধা:
- কোড পুনঃব্যবহার।
- ক্লাসের আচরণে পরিবর্তন আনতে সহজ।
- ইউনিফাইড ইন্টারফেস (এটা একই নামের মেথড হলেও প্রতিটি ক্লাসে ভিন্ন আচরণ করবে)।
VB.Net-এ Polymorphism এর উদাহরণ:
' Parent class
Public Class Animal
Public Overridable Sub Speak()
Console.WriteLine("Animal makes a sound")
End Sub
End Class
' Child class that overrides the Speak method
Public Class Dog
Inherits Animal
Public Overrides Sub Speak()
Console.WriteLine("Dog barks")
End Sub
End Class
' Another Child class that overrides the Speak method
Public Class Cat
Inherits Animal
Public Overrides Sub Speak()
Console.WriteLine("Cat meows")
End Sub
End Class
Sub Main()
' Create objects of derived classes
Dim dog As New Dog()
Dim cat As New Cat()
' Demonstrating Polymorphism
Dim myAnimal As Animal
myAnimal = dog
myAnimal.Speak() ' Dog barks
myAnimal = cat
myAnimal.Speak() ' Cat meows
End Subএখানে, Dog এবং Cat ক্লাসগুলো Speak মেথডকে পুনরায় (override) ডিফাইন করেছে। myAnimal ভেরিয়েবলটি Animal টাইপের হলেও এটি Dog এবং Cat ক্লাসের Speak মেথড কল করতে পারে, যা run-time polymorphism এর উদাহরণ।
৩. Encapsulation (এনক্যাপসুলেশন)
Encapsulation হল ডেটা এবং ফাংশনালিটি একত্রে রাখার প্রক্রিয়া, যেখানে ডেটাকে ব্যক্তিগত (private) রাখা হয় এবং বাইরের কোড থেকে অ্যাক্সেস সীমাবদ্ধ করা হয়। এটি ডেটা নিরাপত্তা নিশ্চিত করতে সাহায্য করে এবং কোডের সঠিকতা বজায় রাখে।
Encapsulation-এর সুবিধা:
- ডেটার নিরাপত্তা এবং সুরক্ষা।
- কোডের রক্ষণাবেক্ষণ সহজ করা।
- অবাঞ্ছিত অ্যাক্সেস এবং পরিবর্তন থেকে ডেটা রক্ষা করা।
VB.Net-এ Encapsulation এর উদাহরণ:
Public Class BankAccount
' Private field
Private balance As Decimal
' Public property for encapsulating access to the balance field
Public Property AccountBalance() As Decimal
Get
Return balance
End Get
Set(value As Decimal)
If value >= 0 Then
balance = value
Else
Console.WriteLine("Balance cannot be negative.")
End If
End Set
End Property
' Method to deposit money
Public Sub Deposit(amount As Decimal)
If amount > 0 Then
balance += amount
Else
Console.WriteLine("Deposit amount must be positive.")
End If
End Sub
End Class
Sub Main()
' Create a BankAccount object
Dim account As New BankAccount()
' Use property to set balance
account.AccountBalance = 1000
' Deposit money
account.Deposit(500)
' Access the balance via property
Console.WriteLine("Current balance: " & account.AccountBalance)
End Subএখানে, balance ফিল্ডটি Private রাখা হয়েছে, এবং তার মান পরিবর্তন করার জন্য AccountBalance নামের Property এবং Deposit নামের Method ব্যবহার করা হয়েছে। এভাবে বাইরের কোড থেকে সরাসরি balance এর মান পরিবর্তন করা যাবে না, তবে encapsulation ব্যবহারের মাধ্যমে এর মান সঠিকভাবে নিয়ন্ত্রণ করা হচ্ছে।
সারাংশ
- Inheritance: এক ক্লাসের বৈশিষ্ট্য অন্য ক্লাসে উত্তরাধিকারসূত্রে পাওয়া।
- Polymorphism: একাধিক ফর্মে (behavior) একই নামের মেথড থাকতে পারে।
- Encapsulation: ডেটা এবং তার আচরণ একত্রে রাখতে গিয়ে ডেটার অ্যাক্সেস সীমাবদ্ধ করা।
এই তিনটি ধারণা VB.Net-এ Object-Oriented Programming (OOP) কৌশলগুলির মূল ভিত্তি এবং এটি সফটওয়্যার ডেভেলপমেন্টে কোডের পুনঃব্যবহারযোগ্যতা, স্থিতিশীলতা এবং নিরাপত্তা নিশ্চিত করতে সাহায্য করে।
Read more