Encapsulation در جاوا

Encapsulation در جاوا
انکپسولاسیون یکی از اصول بنیادی برنامهنویسی شیءگرا (OOP) در جاوا است. این مفهوم به معنی بستهبندی دادهها (متغیرها) و متدها (توابع) است که روی دادهها عمل میکنند و آنها را در یک واحد به نام کلاس قرار میدهد. انکپسولاسیون کمک میکند تا دسترسی مستقیم به برخی از اجزای شیء محدود شود و امنیت و یکپارچگی دادهها حفظ گردد.
مفاهیم کلیدی انکپسولاسیون
- مخفیسازی دادهها: جزئیات داخلی یک کلاس از دسترسی بیرونی مخفی میشود و تنها عملکردهای ضروری از طریق متدها در دسترس قرار میگیرند.
- مودفایرهای دسترسی: استفاده از
private
،public
وprotected
برای کنترل دسترسی به اعضای کلاس. - متدهای getter و setter: متغیرهای private از طریق متدهای public getter و setter قابل دسترسی یا تغییر هستند.
- نگهداری بهتر کد: چون جزئیات پیادهسازی مخفی است، تغییرات در کد تأثیری بر بخشهای دیگر برنامه نخواهد گذاشت.
مثال انکپسولاسیون در جاوا
// Employee.java
class Employee {
// متغیرهای private که نمیتوانند بهطور مستقیم دسترسی پیدا کنند
private String name;
private int age;
// متد public getter برای دسترسی به متغیر private
public String getName() {
return name;
}
// متد public setter برای تغییر متغیر private
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if (age > 0) { // اعتبارسنجی برای حفظ یکپارچگی دادهها
this.age = age;
} else {
System.out.println(“سن باید مثبت باشد!”);
}
}
}
// کلاس Main برای نمایش انکپسولاسیون
public class Main {
public static void main(String[] args) {
Employee emp = new Employee();
// استفاده از متدهای setter برای اختصاص مقادیر
emp.setName(“جان دو”);
emp.setAge(25);
// استفاده از متدهای getter برای دسترسی به مقادیر
System.out.println(“نام کارمند: “ + emp.getName());
System.out.println(“سن کارمند: “ + emp.getAge());
}
}
مزایای انکپسولاسیون
- امنیت دادهها: از دسترسی مستقیم به دادههای حساس جلوگیری میکند.
- نگهداری بهتر کد: تغییرات میتوانند بدون تأثیر بر کد خارجی انجام شوند.
- دسترسی کنترلشده به دادهها: قبل از تغییر دادهها اعتبارسنجی انجام میشود (همانطور که در متد
setAge()
دیده میشود). - افزایش قابلیت استفاده مجدد کد: کد انکپسوله شده میتواند در بخشهای دیگر برنامه مجدداً استفاده شود.
- افزایش انعطافپذیری: پیادهسازی داخلی میتواند بدون شکستن کد خارجی تغییر کند.
دیدگاهتان را بنویسید