OOP Data Encapsulation شرح Private و Public

x32x01
  • بواسطة x32x01 ||
لو بدأت تتعلم البرمجة كائنية التوجه (OOP) أكيد شفت رموز غريبة زي + و - قدام الـ Attributes والـ Methods 🤔
ممكن تكون عدّيتها بسرعة… لكن الحقيقة إن الرموز دي من أهم أساسيات تنظيم الكود وحماية البيانات!
في البوست ده هتفهم ببساطة:
  • يعني إيه Private و Public
  • وليه مهمين جدًا في أي سيستم
  • وإزاي تستخدمهم صح في مشاريعك 💪

يعني إيه Private و Public في الـ OOP؟​

خلينا نبسطها خالص 👇

أولًا: Private (-)​

لما تلاقي علامة - قدام متغير أو دالة، ده معناه إنها Private 👇
يعني:
  • ❌ مش أي كود بره الـ Class يقدر يوصلها
  • 🔒 البيانات دي محمية
  • ✅ التعامل معاها بيكون عن طريق دوال معينة فقط
📌 الهدف: حماية البيانات ومنع التلاعب المباشر

ثانيًا: Public (+)​

أما علامة + فدي معناها إن الحاجة دي Public 👇
يعني:
  • ✅ أي جزء في البرنامج يقدر يستخدمها
  • 🔓 متاحة لكل الـ Objects
  • 📞 تقدر تنادي عليها بسهولة
📌 الهدف: توفير واجهة للتعامل مع الكلاس



ليه الموضوع ده مهم في البرمجة؟​

ببساطة… ده اللي بيحقق مفهوم مهم جدًا اسمه:

🔥 Data Encapsulation (تغليف البيانات)​

وده معناه:
  • حماية البيانات الحساسة 🔒
  • تنظيم الكود 🧠
  • تقليل الأخطاء 🛑
  • تسهيل تطوير المشروع بعد كده 🚀
لو تجاهلت الفكرة دي… الكود هيبقى عشوائي وسهل يتكسر!



مثال عملي: نظام ATM 💳​

تعالى نشوف مثال واقعي يوضح الفكرة 👇

Class: Account​

Python:
class Account:
    def __init__(self):
        self.__balance = 0  # Private

    def deposit(self, amount):  # Public
        self.__balance += amount

    def withdraw(self, amount):  # Public
        if amount <= self.__balance:
            self.__balance -= amount

التحليل:​

  • balance → Private 🔒
    مينفعش أي حد يغيره مباشرة (عشان الأمان)
  • deposit() و withdraw() → Public ✅
    دي الطرق الرسمية للتعامل مع الرصيد
📌 كده أنت بتتحكم في الفلوس بدل ما أي كود يلعب فيها!



مثال تاني: User System 👤​

Python:
class User:
    def __init__(self):
        self.__cardNumber = "1234"  # Private

    def login(self):  # Public
        print("User logged in")

    def logout(self):  # Public
        print("User logged out")

التحليل:​

  • cardNumber → Private 🔒
    بيانات حساسة مينفعش تظهر
  • login / logout → Public ✅
    دي الوظايف اللي المستخدم يتعامل معاها



إمتى أستخدم Private وإمتى Public؟​

اسأل نفسك السؤال ده 👇

استخدم Private لما:​

  • البيانات حساسة (زي: باسورد، رصيد، بيانات شخصية) 🔐
  • مش عايز حد يعدلها بشكل مباشر
  • محتاج تتحكم في طريقة التعديل

استخدم Public لما:​

  • عايز توفر وظائف واضحة للاستخدام
  • بتبني API أو System سهل الاستخدام
  • محتاج تدي صلاحية للوصول للدوال



Challenge عملي 💡​

تخيل إنك بتبني سيستم طلبات أكل 🍔
فكر كده:
  • إيه اللي يكون Private؟
    (زي: سعر الطلب الداخلي، بيانات الدفع)
  • وإيه اللي يكون Public؟
    (زي: إضافة طلب، إلغاء طلب، عرض القائمة)
✍️ حاول تكتب Class بسيط وتحدد فيه ده بنفسك… هتثبت المعلومة أكتر بكتير!



خلاصة البوست​

علامات + و - مش مجرد رموز…
دي أساس الأمان والتنظيم في البرمجة كائنية التوجه 💥
لو فهمت:
  • Private = حماية
  • Public = استخدام
يبقى أنت كده فهمت أول وأهم خطوة في احتراف الـ OOP 🔥
 
المواضيع ذات الصلة
x32x01
الردود
0
المشاهدات
782
x32x01
x32x01
x32x01
الردود
0
المشاهدات
811
x32x01
x32x01
x32x01
الردود
0
المشاهدات
915
x32x01
x32x01
x32x01
الردود
0
المشاهدات
295
x32x01
x32x01
x32x01
الردود
0
المشاهدات
857
x32x01
x32x01
الدخول أو التسجيل السريع
نسيت كلمة مرورك؟
إحصائيات المنتدى
المواضيع
2,496
المشاركات
2,689
أعضاء أكتب كود
577
أخر عضو
سراب
عودة
أعلى