البرمجة الكائنية في لغة كوتلن – Kotlin OOP

سلسلة دروس تعليم لغة كوتلن لتعليم الأندرويد – الدرس السابع عشر

محتويات الدرس :-

  • تعريف البرمجة الكائنية OOP
  • الكائن Class و Objects
  • خصائص ال Class
  • الدوال Functions or Method Class
  • إنشاء كائن من ال Class في دالة ال Main
  • إنشاء أكثر من كائن
  • تمرير معاملات الكائن
  • الوصول الى المعاملات بشكل مباشر
  • استخدام ال this
  • دالة Constructors
  • دالة init
  • تعريف متغير من نوع Public
  • تعريف متغير من نوع Private
  • تعريف متغير من نوع Protected
الدرس السابع عشر البرمجة الكائنية في لغة كوتلن
البرمجة الكائنية في لغة كوتلن – Kotlin OOP

البرمجة الكائنية​

البرمجة كائنية التوجُّه أو البرمجة الشيئية وهي عبارة عن نمط برمجة متقدمة، وفيه يقسم البرنامج إلى وحدات تسمى الكائنات (Objects)، كل كائن عبارة عن حزمة من البيانات والمتغيرات والثوابت والدوال ووحدات التنظيم وواجهات الاستخدام ويتم بناء البرنامج بواسطة استخدام الكائنات وربطها مع بعضها البعض .

الكائن objects و class​

لعل كل ما نراه في حياتنا اليومية من بشر وفواكه وحيوانات ووو هو كائن “object”….

لو نظرنا لفئة الحيوانات مثلا فالأسد والنمر والغزال والأرنب كلٌ منهم يمثل كائناً مستقلا بذاته, و له خصائص تميزه عن الآخر , ويقوم بسلوكيات ووظائف , إذن لكل كائن خصائص يتميّز بها و سلوكيات يقوم بها ومن هذه السلوكيات تنتج أحداث، 

وبهذه الثلاث عوامل يتميز كل كائن عما سواه:​

  1.  خصائص properties : وهي ما نسميه في البرمجة Data.
  2.  سلوكيات behavior أو وظائف يقوم بها: وهي ما نسميه بلغة البرمجة Methods or Functions.
  3.  أحداث Events : تخص الكائن وتنتج عن سلوكياته.

وكل كائن ( object ) ينتمي لفئة أعلى منه (class) فمثلا الفراولة هو كائن وهو ينتمي لفئة الفواكه, الأسد هو كائن وينتمي لفئة الحيوانات, السيارة والطائرة والسفينة هي كائنات وهي تنتمي للفئة التي هي وسائل النقل . وهكذا …

فالبرمجة الكائنية هي طريقة جديدة لتصميم وكتابة البرامج ، و الفكرة الرئيسية منها هي ان تقوم بتحويل البرنامج الى اجزاء مختلفة وكل جزء يمثل هدف او عمل معين .

توضيح أكثر​

كل Class يحتوي على مجموعة objects وكل object يحتوي على خصائص ووظائف

مثلاً​

لدينا صنف السيارات (class Car) و كما هو معروف السيارات كثيرة جدا تختلف من حيث اللون والموديل والحجم والشكل وغيرها هذه الأختلافات تسمى خصائص حيث لكل سيارة لها اللون الخاص بها (خاصية اللون) وكل سيارة لها الموديل الخاص بها (خاصية الموديل) وهكذا وكل سيارة تقوم بوظائف معينة فمثلا السياقة الى الأمام السياقة الى الخلف الدوران يمين ويسار وهكذا ..

صورة توضيحية​

image 163
البرمجة الكائنية 

Syntax

image 164
Syntax

إنشاء class​

لأنشاء كلاس تكتب الكلمة المحجوزة في المترجم class ثم بعدها اسم اختياري لهذا الكلاس .

image 165
إنشاء class​

خصائص ال class​

لكل فئة (كلاس) لها خصائص فمثلاً فئة السيارات لها خصائص منها المعرف id الخاص بكل سيارة والأسم واللون والموديل والسعر .

image 166
خصائص ال class​

الدوال Functions or Method Class​

بعد أضافة الخصائص الخاصة بالكلاس Car قمنا بأضافة دوال لطباعة ومعالجة الخصائص

وفي هذا المثال قمنا بأضافة دالة تقوم بطباعة معلومات او خصائص السيارة

image 167
الدوال Functions or Method Class​

إنشاء كائن من ال class في دالة ال main​

Syntax

image 168
إنشاء كائن من الclass في دالة الmain​

مثال​

في هذا المثال سنتعرف على كيفية إنشاء كائن object من الكلاس وكيفية اعطاء قيم لخصائص هذا الكائن وكيفية الوصول الى الوظائف الخاصة بهذا الكائن

image 169
إنشاء كائن من الclass في دالة الmain​
image 170
إنشاء كائن من الclass في دالة الmain​

إنشاء أكثر من كائن​

في هذا المثال سنتعرف على كيفية إنشاء أكثر من كائن

image 171
إنشاء أكثر من كائن​
image 172
إنشاء أكثر من كائن​

تمرير معاملات للكائن​

يمكن تمرير معاملات للكائن وذلك لتسهيل كتابة الكود الخاص بك وتقليل ال syntax

كيفية تمرير المعاملات​

تكتب متغيرات المعاملات داخل اقواس الكلاس وحسب كل متغير ونوعه وشرط ان يكون تمرير قيم المعاملات للكائن حسب النوع المعطى لمعاملات الكلاس

Syntax

image 173
تمرير معاملات للكائن​

ملاحظة​

المعاملات او المتغيرات داخل اقواس الكلاس لا يمكن الوصول اليه بشكل مباشر من داخل functions الكلاس لذلك عملنا متغيرات محلية myID و myName تنوب عن متغيرات المعاملات بحيث تأخذ قيم متغيرات المعاملات وبالتالي يمكن الوصول لها من داخل الدوال functions .

image 174
كيفية تمرير المعاملات​

الوصول الى المعاملات بشكل مباشر​

يمكن الوصول الى متغيرات المعاملات من داخل الدوال عن طريق كتابة var او val قبل متغيرات المعاملات وبالتالي تصبح كمتغيرات محلية او خصائص يمكن الوصول لها مباشرا من الدوال .

Syntax

image 175
الوصول الى المعاملات بشكل مباشر​

مثال​

image 176
الوصول الى المعاملات بشكل مباشر​

طريقة ثانية للوصول الى المعاملات​

يمكن الوصول الى المعاملات بأستخدام طريقة ال this .

image 177
يمكن الوصول الى المعاملات بأستخدام طريقة الthis 

دالة constructor​

وهي عبارة عن دالة مخزنة في المترجم compiler يتم استدعائها (تنفيذ ما في داخلها) بشكل تلقائي في الوقت نفسه عند إنشاء كائن .

المثال

في هذا المثال تم انشاء كائن Object من الفئة Car وقمنا بكتابة الدالة المخزنة ضمن الكلاس وهي constructor وعند انشاء الكائن تلقائياً تم استدعاء ما موجود ادخلها .

image 178
constructor​

constructor مثال​

مثال في الكلاس قمنا بتهيئة متغيرات الخصائص واعطيناهة قيم null ثم ضمن الconstructor قمنا بتحديث قيم الخصائص وقمنا بالطباعة .

image 179
constructor مثال​
image 180
constructor مثال​

تمرير معاملات constructor​

في هذا المثال توضيح لكيفية تهيئة معاملات الconstructor وكيفية تمرير قيم المعاملات عند إنشاء الكائن .

image 181
تمرير معاملات constructor​

دالة init​

وهي تشبه دالة الconstructor لكن الفرق ان في الinit يكون تمرير معاملات في الclass اما الconstructor يكون تمرير المعاملات من خلالها .

image 182
init​

تعريف متغير من نوع public​

كل الدروس السابقة التي تم تعريف المتغيرات فيها هي عبارة عن public سواء تم كتابة كلمة public قبل تعريف المتغير او لا .

image 183
تعريف متغير من نوع public​

تعريف متغير من نوع private​

ويعني ان المتغير يسمح الوصول له فقط من داخل الكلاس ويمنع الوصول اليه من كلاسات او دوال خارجية .

مثال

في هذا المثال سيعرض مترجم اللغة خطأ ويخبرنا بانه غير مسموح الوصول الى المتغيرات myId و myName لانها متغيرات من نوع private اي فقط المسموح الوصول اليه من دوال الكلاس نفسه الذي تنتمي اليه .

image 184
تعريف متغير من نوع private​

تعريف متغير من نوع protected​

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

شارك المقال

مواضيع قد تعجبك: