ما هو التغليف؟
يدور التغليف في 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 } }
دعونا نقسمها
دعونا نحلل الكود ونشرح كل قسم خطوة بخطوة:
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."); } }
يعمل getAge() بنفس الطريقة التي يعمل بها الاسم، مما يسمح بالوصول إلى حقل العمر.
لا يسمح الضبط setAge() بتعديل حقل العمر فحسب، بل يضيف أيضًا فحصًا للتحقق من الصحة. يضمن شرط if أن العمر محدد فقط إذا كان رقمًا موجبًا. إذا تم توفير عمر غير صالح (مثل رقم سالب)، فإن جهاز الضبط يمنع التحديث ويطبع رسالة بدلاً من ذلك. وهذا مثال على كيفية تمكين التغليف من التحكم في نوع البيانات التي يمكن تعيينها.
// 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 طريقة يمكن التحكم فيها للوصول إلى الحقول الخاصة وتعديلها.
يوضح محدد العمر كيف يمكنك فرض القواعد (على سبيل المثال، يجب أن يكون العمر إيجابيًا) لحماية البيانات من الإدخال غير الصالح.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3