Encapsulation
Encapsulation
ايش يعني مفهوم التغليف (Encapsulation) ؟
يعني البيانات مخفية ومحمية عن المستخدم
ومحد يقدر يغيير فيها من برا الكلاس
إلا بإستخدام دوال مخصصه
- كيف يعني ؟
يعني حنخلي المتغيرات أو الدوال الموجوده في الكلاس
محد يقدر يوصل لها من برا الكلاس بسهوله
يصير كذا الكلاس متميز بتحكم أفضل وأمن للمتغيرات والدوال
وعشان نِفعل (نشغل) ذا المفهوم عندنا في الكلاس :
لازم المتغير اللي خايفين عليه ومهتمين فيه
يكون * private *
- ايش يعني private ؟
نوع من أنواع الـ Modifiers - إمكانية الوصول -
يعني إنه مايسمح للمتغير يُستخدم ولا يتم إستدعائه من برا الكلاس
* عكس الـ public تماماً *
- ايش يعني public ؟
انه يسمح للمتغير يُستخدم و يتم إستدعائه من برا الكلاس عادي
بالطريقة الموضحة نقدر ننشئ متغير برايفت
ونلاحظ إن لمن قلنا print.x اشتغل معانا =)
بس لمن قلنا print.y طلع لنا رسالة خطأ =(
ليه ؟ لانو برايفت مانقدر نستخدمه بذي الطريقة X
} class Test
;public int x = 10
;private int y = 20
{
} public class Main
} public static void main(String[] args)
; ()Test print = new Test
;System.out.println(print.x)
;System.out.println(print.y)
{
{
نقدر نتعامل مع المتغير الـ private بإستخدام الـ get & set
- ايش هم get & set ؟
عباره عن دوال تخلينا نقدر نوصل للمتغيرات المحميه والمخفيه
وتعدل عليها أو نستدعيها
بذي الطريقه منعنا الوصول المباشر للمتغيرات
set : نعدل على قيمة المتغير
get : ناخذ قيمة المتغير
طريقة إنشاء الدوال set & get
ولاحظوا الفرق بين المتغير الـ public و private في الإستخدام
} class Test
;public int x = 10
; private int y = 20
}()public int get_y
; return y
{
} public void set_y( int new_y )
; y = new_y
{
{
} public class Main
} public static void main(String[] args)
;() Test print = new Test
طباعة القيمة //
;System.out.println(print.x)
;System.out.println(print.get_y())
تحديث القيمة //
;print.x = 30
;print.set_y(30)
{
{
وبكذا ننهي درسنا