এনক্যাপসুলেশন হলো ডেটা এবং মেথডকে একসাথে বাঁধা এবং বাহের থেকে ডেটা সরাসরি অ্যাক্সেস বাধা দেওয়া। C#-এ অ্যাক্সেস স্পেসিফায়ার দিয়ে এটি করা হয়:
- Public: সব জায়গা থেকে অ্যাক্সেসযোগ্য
- Private: শুধু ক্লাসের ভিতর থেকে (ডিফল্ট)
- Protected: ক্লাস এবং ডেরাইভড ক্লাস থেকে
- Internal: একই অ্যাসেম্বলি থেকে
- Protected Internal: একই অ্যাসেম্বলি বা ডেরাইভড ক্লাস থেকে
উদাহরণ: Private ফিল্ড পাবলিক মেথড দিয়ে অ্যাক্সেস
using System;
namespace RectangleApplication
{
class Rectangle
{
private double length;
private double width;
public void AcceptDetails()
{
length = 10;
width = 15;
}
public double GetArea()
{
return length * width;
}
public void Display()
{
Console.WriteLine("Length: {0}", length);
Console.WriteLine("Width: {0}", width);
Console.WriteLine("Area: {0}", GetArea());
}
}
class ExecuteRectangle
{
static void Main(string[] args)
{
Rectangle r = new Rectangle();
r.AcceptDetails();
r.Display();
Console.ReadLine();
}
}
}
আউটপুট
Length: 10 Width: 15 Area: 150
ফিল্ডগুলো প্রাইভেট, বাহের থেকে সরাসরি অ্যাক্সেস করা যায় না। মেথড দিয়ে কন্ট্রোলড অ্যাক্সেস।