تكرار السؤال: …
الإجابة المختصرة
الأركان الأربعة هي: التغليف، التجريد، الوراثة، وتعدد الأشكال. التغليف يركز على إخفاء الحالة الداخلية وحمايتها، بينما التجريد يركز على إخفاء تفاصيل التنفيذ المعقدة وإبراز الواجهة الضرورية فقط.
الشرح
التغليف (Encapsulation) يدمج البيانات والعمليات التي تعمل عليها في وحدة واحدة (Class) ويقيد الوصول المباشر إلى المتغيرات إلا عبر Getters/Setters أو دوال محددة لضمان تكامل الحالة. بينما التجريد (Abstraction) يُعنى بتبسيط الرؤية البرمجية للمستخدم (كالضغط على زر تشغيل السيارة دون الحاجة لفهم دورة الاحتراق الداخلي).
مثال بالكود
class BankAccount {
private balance: number = 0;
public deposit(amount: number): void {
if (amount <= 0) throw new Error('Invalid amount');
this.balance += amount;
}
public getBalance(): number {
return this.balance;
}
}أخطاء شائعة
- الخلط بين التغليف ومجرد كتابة دوال Getters و Setters لكل حقل دون أي منطق تحقق وحماية.
- اعتبار التجريد والتغليف اسماً لمعنى واحد، متجاهلين أن أحدهما لإخفاء البيانات والآخر لإخفاء التعقيد.