Javaالتجريد في جافا
- مفهوم التجريد
- مفهوم الـ Abstract Class في جافا
- مفهوم الـ Abstract Method في جافا
- أمثلة شاملة حول التجريد في جافا
مفهوم التجريد
التجريد ( Abstraction ) هو أسلوب مهم جداً يستخدم لتسهيل كتابة الأوامر على المبرمجين, فهو يجعلك قادراً على تنفيذ ما تريد دون الحاجة إلى معرفة كافة التفاصيل التي تم فيها تنفيذ ذلك. إذاً الـ Abstraction يجعلك تتعامل مع الأشياء بسطحية بدل أن تغوص في معرفة تفاصيل الكودات المعقدة.
فمثلاً إذا كنت تنوي بناء برنامج يتيح لمستخدميه إرسال إقتراحات حول التطبيق من خلال البريد الإلكتروني, في هذه الحالة لن يكون عليك القلق بتاتاً حول طريقة تعامل أوامر جافا مع البروتوكولات التي تعمل عندما يتم إرسال رسائل إلكترونية من خلال هذا التطبيق, لأنك لست مسؤولاً عنها, فعلياً هذه وظيفة شركة Sun التي تقوم بتطوير لغة جافا. و هم يخبرونك أنه لإرسال بريد إلكتروني إستخدم هذه الأوامر البسيطة فقط.
إذاً الـ Abstraction هو أسلوب يستخدم لإخفاء تفاصيل تنفيذ البرنامج. لتطبيق مفهوم الـ Abstraction نستخدم الكلمة abstract
ضمن شروط محددة.
مصطلحات تقنية
إذا أردت تعريف الشيء كـ abstract
, أكتب فقط الكلمة abstract
قبله.
- الكلاس المعرف كـ
abstract
يسمى Abstract Class. - الكلاس العادي الغير معرف كـ
abstract
يسمى Concrete Class. - الدالة المعرفة كـ
abstract
تسمى Abstract Method أو Abstract Function.
مفهوم الـ Abstract Class في جافا
إذا وضعت الكلمة abstract
قبل إسم الكلاس, ستتغير قليلاً طريقة التعامل معه لأنه لم يعد كلاس عادي.
عندها سيراه و يعامله المترجم كـ Abstract Class.
نقاط مهمة حول الـ Abstract Class
- الكلاس العادي لا يمكنه أن يحتوي على دوال نوعها
abstract
. - الـ Abstract Class يمكنه أن يحتوي على دوال عادية, و يمكنه أن يحتوي على دوال نوعها
abstract
. - إذا قمت بتعريف الكلاس كـ
abstract
, فهذا يعني أن هذا الكلاس لا يمكن إنشاء كائنات منه. - بما أنه لا يمكن إنشاء كائنات من Abstract Class, فهذا يعني أنه للإستفادة من هذا الكلاس, يجب وراثته.
- الكلاس الذي يرث من كلاس نوعه
abstract
, يجب أن يفعل Override لجميع الدوال المعرفة كـabstract
.
طريقة تعريف كلاس نوعه abstract
نكتب فقط الكلمة abstract
قبل الكلمة class
.
مثال
abstract class Example { }
مفهوم الـ Abstract Method في جافا
إذا كنت تريد بناء دالة و جعل الكلاس الذي يرثها هو المسؤول عن كتابة محتواها، قم بتعريفها كـ abstract
.
نقاط مهمة حول الـ Abstract Method
- إذا وضعت الكلمة
abstract
قبل إسم الدالة، فهذا يعني أنها دالة من النوعabstract
. - الدالة التي نوعها
abstract
هي دالة لها إسم و نوع محدد، لكنها لا تحتوي على body (جسم)، أي لا تملك أقواس بداية و نهاي{ }
. - الدالة العادية تحتوي على أقواس البداية و النهاية
{ }
. - الـ Abstract Method يجب وضع فاصلة منقوطة
;
في آخرها بدل أقواس البداية و النهاية. - الكلاس الذي يرث من كلاس نوعه
abstract
، يجب أن يفعل Override لكل دوالة نوعهاabstract
، أي يجب أن يكتب الـ body لهذه الدوال.
طريقة تعريف دوال نوعها abstract
في جافا
نكتب فقط الكلمة abstract
بعد Modifier الدالة.
أمثلة
public abstract void print(); public abstract int getId(); public abstract void setId(int id);
إنتبه: عندما تفعل Override لدالة نوعها abstract
, يجب أن لا تعرفها كـ abstract
من جديد.
مثال
لنفترض أننا قمنا بتعريف دالة إسمها displayMessage()
كـ abstract
.
public abstract void displayMessage();
لا يجب أن نكتب abstract
عندما تفعل لها Override.
public abstract void displayMessage() { // abstract methods cannot have a body <-- [ abstract سيظهر لك هذا التنبيه بسبب الكلمة ] }
لتصحيح هذا الخطأ, نمسح فقط الكلمة abstract
.
public void displayMessage() { // نلاحظ أن التنبيه إختفى }
أمثلة شاملة حول التجريد في جافا
وضعنا هنا ثلاثة أمثلة بسيطة و مترابطة تعلمك الأساسيات.
وضعنا هنا مثال بسيط حول Abstract Class يرث من Abstract Class.
وضعنا هنا مثال مهم يعلمك متى تحتاج إلى إنشاء Abstract Class.
سترى فائدة الـ Abstraction أيضاً في دروس متقدمة عندما تستخدم كلاسات جاهزة تتيح لك التعامل مع الشبكات (Networks), الواجهات (GUI) و قواعد البيانات (DataBases) بكل سهولة. كما أنك ستراها عندما تعمل على بناء مشاريع كبيرة, تجبرك على إستخدام هذا الأسلوب لتسهيل العمل في المشروع.