تغليف جافا
التغليف
معنى التغليف هو التأكد من إخفاء البيانات "الحساسة" عن المستخدمين. لتحقيق ذلك ، يجب عليك:
- إعلان متغيرات الفئة / السمات كـ
private
- توفير طرق الحصول
العامة وتعيينها للوصول إلى قيمة
private
المتغير وتحديثها
احصل على وتعيين
لقد تعلمت من الفصل السابق أنه private
لا يمكن الوصول إلى المتغيرات إلا داخل نفس الفصل (لا يمكن للفصل الخارجي الوصول إليه). ومع ذلك ، من الممكن الوصول إليها إذا قدمنا طرقًا عامة للحصول عليها وتعيينها .
تقوم get
الطريقة بإرجاع القيمة المتغيرة ، وتقوم set
الطريقة بتعيين القيمة.
بناء الجملة لكليهما هو أنهما يبدأان بأي منهما get
أو set
متبوعًا باسم المتغير ، بالحرف الأول في الحالة الكبيرة:
مثال
public class Person {
private String name; // private = restricted access
// Getter
public String getName() {
return name;
}
// Setter
public void setName(String newName) {
this.name = newName;
}
}
شرح المثال
الطريقة ترجع get
قيمة المتغير name
.
set
تأخذ الطريقة المعلمة ( ) newName
وتخصصها
name
للمتغير. يتم this
استخدام الكلمة الأساسية للإشارة إلى الكائن الحالي.
ومع ذلك ، حيث name
تم التصريح عن المتغير كـ private
،
لا يمكننا الوصول إليه من خارج هذه الفئة:
مثال
public class Main {
public static void main(String[] args) {
Person myObj = new Person();
myObj.name = "John"; // error
System.out.println(myObj.name); // error
}
}
إذا تم التصريح عن المتغير كـ public
، فإننا نتوقع المخرجات التالية:
John
ومع ذلك ، عندما نحاول الوصول إلى private
متغير ، حصلنا على خطأ:
MyClass.java:4: error: name has private access in Person
myObj.name = "John";
^
MyClass.java:5: error: name has private access in Person
System.out.println(myObj.name);
^
2 errors
بدلاً من ذلك ، نستخدم التابعين getName()
and setName()
للوصول إلى المتغير وتحديثه:
مثال
public class Main {
public static void main(String[] args) {
Person myObj = new Person();
myObj.setName("John"); // Set the value of the name variable to "John"
System.out.println(myObj.getName());
}
}
// Outputs "John"
لماذا التغليف؟
- تحكم أفضل في سمات وطرق الطبقة
- يمكن جعل سمات الفئة للقراءة فقط (إذا كنت تستخدم
get
الطريقة فقط) ، أو للكتابة فقط (إذا كنت تستخدمset
الطريقة فقط) - مرن: يمكن للمبرمج تغيير جزء واحد من الكود دون التأثير على الأجزاء الأخرى
- زيادة أمن البيانات