Education Blog
  • اخبار التكنولوجيا
  • إنترنت
  • شبكات الكمبيوتر
  • برمجة
  • أمن المعلومات
  • أنظمة التشغيل
  • كلاود
  • مكتبة كونكت
  • كورسات
No Result
View All Result
Connect4Techs
No Result
View All Result
Home برمجة كوتلن

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

Ahmad Hussain by Ahmad Hussain
2022-04-24
in كوتلن, كورسات البرمجة, لغات البرمجة
0
510
SHARES
1.6k
VIEWS
Share on FacebookShare on Twitter

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

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

  • تعريف البرمجة الكائنية 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) و كما هو معروف السيارات كثيرة جدا تختلف من حيث اللون والموديل والحجم والشكل وغيرها هذه الأختلافات تسمى خصائص حيث لكل سيارة لها اللون الخاص بها (خاصية اللون) وكل سيارة لها الموديل الخاص بها (خاصية الموديل) وهكذا وكل سيارة تقوم بوظائف معينة فمثلا السياقة الى الأمام السياقة الى الخلف الدوران يمين ويسار وهكذا ..

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

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

Syntax

Syntax

إنشاء class​

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

إنشاء class​

خصائص ال class​

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

خصائص ال class​

الدوال Functions or Method Class​

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

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

الدوال Functions or Method Class​

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

Syntax

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

مثال​

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

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

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

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

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

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

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

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

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

Syntax

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

ملاحظة​

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

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

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

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

Syntax

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

مثال​

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

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

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

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

دالة constructor​

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

المثال

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

constructor​

constructor مثال​

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

constructor مثال​
constructor مثال​

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

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

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

دالة init​

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

init​

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

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

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

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

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

مثال

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

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

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

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

author avatar
Ahmad Hussain
See Full Bio
Tags: Kotlin OOPالبرمجة الكائنيةشرحكوتلن
Previous Post

اقتناص الأخطاء في لغة كوتلن – Kotlin try catch

Next Post

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

Ahmad Hussain

Ahmad Hussain

Next Post
سلسلة دروس تعليم لغة كوتلن لتعليم الأندرويد – Learn Kotlin بالعربي

سلسلة دروس تعليم لغة كوتلن لتعليم الأندرويد - Learn Kotlin بالعربي

Archive

Most commented

كل ما تريد معرفته في برنامج GNS3 وتثبيته واستخدامه

محاكي شبكات هواوي Huawei eNSP

محاكاة الشبكات من سيسكو باستخدام Cisco VIRL

GNS3 أفضل أم EVE-NG أم VIRL أم Packet Tracer

كيفية إضافة روترات وسويتشات سيسكو IOSv على GNS3 VM

كيفية إعداد وربط GNS3 VM ببرنامج GNS3

  • اخبار التكنولوجيا
  • إنترنت
  • شبكات الكمبيوتر
  • برمجة
  • أمن المعلومات
  • أنظمة التشغيل
  • كلاود
  • مكتبة كونكت
  • كورسات

Tags

5G CCNA pdf أبل أمن المعلومات أندرويد أنظمة التشغيل إنترنت اخبار التكنولوجيا الحوسبة السحابية الذكاء الاصطناعي بالعربي بايثون برمجة بروتوكول eigrp بروتوكول ospf تعليم لغة جافا ثغرة أمنية جوجل خدمات أمازون ويب دروس لغة جافا سيسكو شبكات الجيل الخامس شبكات الكمبيوتر شرح شرح لغة جافا فيروس كورونا فيسبوك فيس بوك كتاب شرح كلاود كوبونات يوديمي كوتلن كورس كورسات كورسات الشبكات كورسات يوديمي مجانا كورس سيسكو لينكس مايكروسوفت مراحل OSI موبايل هواوي واتساب ويندوز سيرفر

Recent News

كل ما تريد معرفته في برنامج GNS3 وتثبيته واستخدامه

كل ما تريد معرفته في برنامج GNS3 وتثبيته واستخدامه

2022-12-29
محاكي شبكات هواوي Huawei eNSP

محاكي شبكات هواوي Huawei eNSP

2022-12-23
No Result
View All Result
  • Home
    • Index (Default)
    • Index 1
    • Index 2
  • About Us
  • Get in Touch
  • Classes
    • Management
    • Teaching
    • Stories
    • Learning
    • Studying
    • Remedy
  • Pages
    • Category
    • Author
    • Article
    • Search