التغليف في Java

⚡ ملخص ذكي

التغليف في Java هي آلية تجمع المتغيرات والأساليب معًا كوحدة واحدة مع إخفاء التفاصيل الداخلية. وهي تحمي بيانات الكائن باستخدام الحقول الخاصة والتحكم في الوصول من خلال أساليب الوصول والتعديل العامة.

  • 🔒 تعريف التغليف: يجمع البيانات والأساليب في وحدة واحدة مع إخفاء تفاصيل التنفيذ الداخلية.
  • 🛡️ إخفاء البيانات: يؤدي تعريف المتغيرات على أنها خاصة إلى منع الوصول إليها مباشرة من خارج الفئات.
  • 🔑 المُستقبِل والمُهيئ: تقوم طرق الوصول والتعديل العامة بقراءة وتحديث القيم الخاصة بأمان.
  • 🧩 ABStracالتغليف مقابل التغليف: تتولى عملية التغليف "كيفية" التنفيذ، و"الأساسي"traction يتعامل مع "ما" تفعله الفئة.
  • ✅ المزايا: يحسّن الأمان وقابلية الاختبار، ويتيح للمطورين تغيير التعليمات البرمجية بأقل قدر من الآثار الجانبية.

التغليف في Java

ما هو التغليف في Java?

التغليف في Java هي آلية لتغليف المتغيرات (البيانات) والطرق (الكود) معًا كوحدة واحدة. إنها عملية إخفاء تفاصيل المعلومات وحماية البيانات وسلوك الكائن. إنها واحدة من المفاهيم الأربعة المهمة في البرمجة الشيئية. من السهل اختبار فئة التغليف، لذا فهي أيضًا أفضل لاختبار الوحدات.

انقر اضغط هنا إذا لم يكن من الممكن الوصول إلى الفيديو

تعلم التغليف في Java مع المثال

لفهم ما هو التغليف بالتفصيل، ضع في اعتبارك فئة حساب البنك التالية مع طرق الإيداع وإظهار الرصيد

class Account {
    private int account_number;
    private int account_balance;

    public void show Data() {
        // code to show data
    }

    public void deposit(int a) {
        if (a < 0) {
            // show error
        } else
            account_balance = account_balance + a;
    }
}

لنفترض أن أحد المتسللين تمكن من الوصول إلى رمز حسابك المصرفي. الآن، يحاول إيداع مبلغ -100 في حسابك بطريقتين. دعنا نرى طريقته أو نهجه الأول.

المقاربة 1: يحاول إيداع مبلغ غير صالح (على سبيل المثال -100) في حسابك المصرفي عن طريق التلاعب بالرمز.

التغليف في Java

والآن السؤال هو - هل هذا ممكن؟ دعنا نتحقق من ذلك. عادةً ما يتم تعيين متغير في فئة على أنه "خاص" كما هو موضح أدناه. لا يمكن الوصول إليه إلا باستخدام الطرق المحددة في الفئة. لا يمكن لأي فئة أو كائن آخر الوصول إليها.

التغليف في Java

إذا كان أحد أعضاء البيانات خاصًا، فهذا يعني أنه لا يمكن الوصول إليه إلا داخل نفس الفئة. لا يمكن لأي فئة خارجية الوصول إلى عضو بيانات خاص أو متغير من فئة أخرى. لذا في حالتنا، لا يمكن للمخترق إيداع مبلغ -100 في حسابك.

التغليف في Java

المقاربة 2: فشلت المحاولة الأولى للمخترق في إيداع المبلغ. بعد ذلك، حاول إيداع مبلغ -100 باستخدام طريقة "الإيداع".

التغليف في Java

لكن تنفيذ الطريقة لديه فحص للقيم السالبة. لذا فإن النهج الثاني يفشل أيضًا.

التغليف في Java

وبالتالي، لا تعرض بياناتك أبدًا لطرف خارجي. مما يجعل تطبيقك آمنًا.

التغليف في Java

يمكن اعتبار الكود بأكمله بمثابة كبسولة، ولا يمكنك التواصل إلا من خلال الرسائل. ومن هنا جاء اسم التغليف.

إخفاء البيانات في Java

إخفاء البيانات في Java يُخفي هذا الأسلوب متغيرات فئة معينة عن الفئات الأخرى، ولا يمكن الوصول إليها إلا من خلال دالة الفئة الحالية. كما يُخفي تفاصيل التنفيذ عن المستخدمين. ولكن الأهم من إخفاء البيانات، أنه يهدف إلى تحسين الإدارة أو إدارة المجموعات.ping من البيانات ذات الصلة. لتحقيق درجة أقل من التغليف في Javaيمكنك استخدام مُعدِّلات مثل "protected" أو "public". باستخدام التغليف، يمكن للمطورين تغيير جزء واحد من الكود بسهولة دون التأثير على الأجزاء الأخرى.

جيتر و سيتر في Java

جيتر و سيتر في Java طريقتان تقليديتان تستخدمان لاسترداد وتحديث قيم المتغير. يتم استخدامها بشكل أساسي لإنشاء القيم المتغيرة وتعديلها وحذفها وعرضها. يتم استخدام طريقة الضبط لتحديث القيم ويتم استخدام طريقة getter لقراءة القيم أو استرجاعها. ومن المعروف أيضًا باسم الملحق والمتحول.

الكود التالي هو مثال لطرق getter و setter:

class Account{
private int account_number;
private int account_balance;
    // getter method
    public int getBalance() {
        return this.account_balance;
    }
    // setter method
    public void setNumber(int num) {
        this.account_number = num;
    }
}

في المثال أعلاه، طريقة getBalance() هي طريقة getter التي تقرأ قيمة المتغير account_balance وطريقة setNumber() هي طريقة الضبط التي تقوم بتعيين أو تحديث القيمة للمتغير account_number.

ABStracالتغليف مقابل التغليف

في كثير من الأحيان يساء فهم التغليف ABStracالإنتاج. لندرس-

  • التغليف يدور حول "كيفية" تحقيق الوظيفة
  • ABStracالأمر يتعلق أكثر بـ "ماذا" يمكن أن يفعله الفصل.

مثال بسيط لفهم هذا الفرق هو الهاتف المحمول. حيث يتم تغليف المنطق المعقد الموجود في لوحة الدوائر بشاشة لمس، ويتم توفير واجهة المستخدم لـtracأخرجها.

مزايا التغليف في Java

  • التغليف يربط البيانات بالوظائف المرتبطة بها. هنا تعني الوظائف "الطرق" والبيانات تعني "المتغيرات".
  • لذلك نحتفظ بالمتغيرات والأساليب في مكان واحد. هذا المكان هو "الطبقة". الطبقة هي أساس التغليف.
  • مع Java التغليف، يمكنك إخفاء (تقييد الوصول) إلى أعضاء البيانات الهامة في التعليمات البرمجية الخاصة بك، مما يحسن الأمان
  • كما ناقشنا سابقًا، إذا تم إعلان عنصر بيانات "خاصًا"، فلا يمكن الوصول إليه إلا داخل نفس الفئة. لا يمكن لأي فئة خارجية الوصول إلى عنصر بيانات (متغير) من فئة أخرى.
  • ومع ذلك، إذا كنت بحاجة إلى الوصول إلى هذه المتغيرات، عليك استخدام "الجامع" و"الواضع" العام الأساليب.

الأسئلة الشائعة

يركز التغليف على كيفية تحقيق الوظائف من خلال ربط البيانات والأساليب وإخفاء التفاصيل الداخلية.tracيركز هذا الأسلوب على ما تفعله الفئة من خلال عرض الميزات الأساسية فقط وإخفاء التعقيد خلف واجهة بسيطة.

قم بتعريف متغيرات الفئة على أنها خاصة، ثم وفر دوال جلب وتعيين عامة لقراءتها وتحديثها. هذا يقيد الوصول المباشر إليها ويسمح للفئة بالتحكم في كيفية استخدام بياناتها.

تقوم دوال الوصول (Getter) بقراءة أو استرجاع قيمة متغير خاص، بينما تقوم دوال التعيين (Setter) بتحديثه. تتيح هذه الدوال تحكمًا دقيقًا في الوصول، كما تسمح بإضافة منطق التحقق قبل تغيير القيمة.

يمكن للذكاء الاصطناعي إنشاء حقول خاصة مع دوال جلب وتعيين متطابقة، واقتراح التحقق من الصحة داخل دوال التعيين، وإعادة هيكلة الحقول العامة إلى أعضاء مغلفة، والمساعدةping يتبع المطورون أفضل ممارسات البرمجة الكائنية بسرعة وبشكل متسق.

نعم. يمكن للتحليل الثابت المدعوم بالذكاء الاصطناعي أن يحدد الحقول العامة القابلة للتغيير، والوصول المباشر إلى الحالة الداخلية، والتحقق المفقود، ثم يوصي بتغليف البيانات باستخدام طرق وصول خاصة لتحسين الأمان.

تلخيص هذه التدوينة بـ: