"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > ما هو التغليف وكيفية استخدامه.

ما هو التغليف وكيفية استخدامه.

تم النشر بتاريخ 2024-11-08
تصفح:254

What is encapsulation and how to use it.

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

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

public class Person {
    // Private fields
    private String name;
    private int age;

    // Constructor
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // Getter for name
    public String getName() {
        return name;
    }

    // Setter for name
    public void setName(String name) {
        this.name = name;
    }

    // Getter for age
    public int getAge() {
        return age;
    }

    // Setter for age
    public void setAge(int age) {
        if(age > 0) { // Simple validation
            this.age = age;
        } else {
            System.out.println("Age must be positive.");
        }
    }
}

// Using the Person class
public class Main {
    public static void main(String[] args) {
        Person person = new Person("John", 25);

        // Accessing fields using getters
        System.out.println(person.getName()); // Output: John
        System.out.println(person.getAge());  // Output: 25

        // Modifying fields using setters
        person.setName("Jane");
        person.setAge(30);

        System.out.println(person.getName()); // Output: Jane
        System.out.println(person.getAge());  // Output: 30
    }
}

دعونا نقسمها
دعونا نحلل الكود ونشرح كل قسم خطوة بخطوة:

1. تعريف الفئة مع الحقول الخاصة
public class Person {
    // Private fields
    private String name;
    private int age;
}

توضيح:

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

2. المنشئ
    // Constructor
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

توضيح:

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

3. جيتر واضع ل
    // Getter for name
    public String getName() {
        return name;
    }

    // Setter for name
    public void setName(String name) {
        this.name = name;
    }

توضيح:

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

4. Getter وSetter للعمر (مع التحقق من الصحة)
    // Getter for age
    public int getAge() {
        return age;
    }

    // Setter for age
    public void setAge(int age) {
        if (age > 0) { // Simple validation
            this.age = age;
        } else {
            System.out.println("Age must be positive.");
        }
    }

توضيح:

يعمل getAge() بنفس الطريقة التي يعمل بها الاسم، مما يسمح بالوصول إلى حقل العمر.
لا يسمح الضبط setAge() بتعديل حقل العمر فحسب، بل يضيف أيضًا فحصًا للتحقق من الصحة. يضمن شرط if أن العمر محدد فقط إذا كان رقمًا موجبًا. إذا تم توفير عمر غير صالح (مثل رقم سالب)، فإن جهاز الضبط يمنع التحديث ويطبع رسالة بدلاً من ذلك. وهذا مثال على كيفية تمكين التغليف من التحكم في نوع البيانات التي يمكن تعيينها.

5. استخدام فئة الشخص
// Using the Person class
public class Main {
    public static void main(String[] args) {
        Person person = new Person("John", 25);

        // Accessing fields using getters
        System.out.println(person.getName()); // Output: John
        System.out.println(person.getAge());  // Output: 25

        // Modifying fields using setters
        person.setName("Jane");
        person.setAge(30);

        System.out.println(person.getName()); // Output: Jane
        System.out.println(person.getAge());  // Output: 30
    }
}

توضيح:

في هذا القسم، نقوم بإنشاء كائن شخص (شخص) باستخدام المُنشئ. يقوم المُنشئ بتعيين الاسم الأولي على أنه "جون" والعمر على أنه 25 عامًا.

ثم نستخدم الحروف (getName() و getAge()) لطباعة قيم الاسم والعمر. بعد ذلك، نستخدم أدوات الضبط (setName() وsetAge()) لتحديث القيم. وأخيرًا، تتم طباعة القيم المحدثة باستخدام الحروف مرة أخرى.

النقاط الرئيسية للتغليف في العمل:

  • حماية البيانات:

    لا يمكن الوصول إلى الحقول الخاصة أو تعديلها مباشرة من خارج الفصل.

  • الوصول المتحكم فيه:

    توفر أدوات Getters وSetters طريقة يمكن التحكم فيها للوصول إلى الحقول الخاصة وتعديلها.

  • تصديق:

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

بيان الافراج هذه المقالة مستنسخة على: https://dev.to/ife_oluwa/what-is-encapsulation-and-how-to-use-it-207d?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] للحذف هو - هي
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3