دورة JAVA للمبتدئين

الدرس الأول : مفهوم الكائنات Object

Java course for beginners

لغة جافا هي لغة تنبني في الأساس على البرمجة الكائنية التوجه.

لذا، نتساءل في البداية، ما هو مفهوم الكائن ؟

مفهوم الكائن

في الحياة العادية كما في البرمجة، كل شيء عبارة عن كائن. بمعنى أن مفهوم الكائن ينطبق على أي شيء تراه.

فالباب مثلا كائن، و الطاولة كائن، و الحاسوب أيضا يعتبر كائنا… إلخ.

كما أم لكل كائن يملك خصائص وأفعال تميزه عن باقي الكائنات.

على سبيل المثال: الحاسوب باعتباره كائنا، فهو يحمل هدا خصائص وأفعال تميزه. و من خصائص جهاز الحاسوب أنه صلب وله لون وحجم وشكل معين.

ومن الأفعال أو الأدوار التي يقوم بها الحسوب هي الحساب بكل أنواعه إلى غير ذلك من العمليات.

تاريخ مفهوم “الكائنات”

تم طرح المفهوم الحديث لـ “الكائنات” وأسلوب التوجيه بالكائنات في البرمجة بواسطة لغة Simula التي صدرت في عام 1967، والتي نُشر استخدامها Smalltalk بعدها بعامين في 1969، وأصبحت وسائل رئيسية في عالم البرمجة مع انتشار برنامج الـ سي++ والذي صدر في عام 1983.

استعمال أسلوب التوجيه بالكائنات

السياق الكتابي

وفي الأسلوب “البحت” للبرمجة الموجهة بالكائنات، يجب الدخول لحقول البيانات الخاصة بالكائن فقط من خلال المناهج (الدّوال الفرعية). وتجعل هذه القاعدة من السهل ضمان بقاء البيانات دوماً في حالة صالحة.

و من الناحية التركيبية syntactic، و في كافة لغات البرمجة الموجهة بالكائنات، يُستخدم مؤثر النقطة (dot operator) (والذي يوضع بين الكائن واسمه الرمزي) لاستدعاء دالة/منهج معين للكائن.

مثلاً، تأمل فئة حسابية تحمل اسم Arith_Class. هذه الفئة تتضمن دوال مثل add() و subtract() وmultiply() و divide()، تقوم بمعالجة رقمين يُعطيان لها. ويمكن استخدام هذه الفئة لإيجاد مجموع 78 و 69 وذلك في البداية عن طريق إنشاء كائن من الفئة ثم استدعاء طريقة الضرب، وذلك على النحو التالي:

1 int result = 1 ; // Initialization 2 arith_Obj1 = new Arith_Class(); // Creating a new object of Arith_Class 3 result = arith_Obj1.multiply(78,69); // returned value of multiply function, store in result variable.

وفي أي لغة يتم فيها إنشاء كائن من فئة معينة، يُطلق على هذا الكائن اسم تجسيد instance لهذه الفئة. فإذا كان لكل كائن نوع type، فإن أي كائنين من نفس الفئة سيكون لهما نفس نوع البيانات data type.

تبسيط و أمثلة

ويشار لإنشاء أي نموذج من أي فئة عملية إنشاء تجسيد instantiating من الفئة. ومن الأمثلة الواقعية على الكائنات عبارة “كلبي” my dog، والتي تعد تجسيدًا لنوع (فئة) تُسمى “كلب”، وهي فئة فرعية subclass للفئة “حيوان”.

وفي حالة الكائنات متنوعة الشكل polymorphic، يمكن تجاهل بعض تفاصيل نوعها بشكل انتقائي. فمثلاً يمكن أن يُستخدم الكائن “كلب” بواسطة دالة تبحث عن “حيوان ما”. ونفس الأمر ممكن مع “قطة”، نظرًا لأنها تنتمي أيضًا إلى الفئة “حيوان”.

ورغم أن الدخول عليها يتم كـ “حيوان”، فإن بعض الخصائص المعينة الخاصة بـ “الكلب” أو “القطة” ستظل غير متوافرة، مثل خاصية “الذيل”، نظرًا لأنه ليس كل الحيوانات لها ذيول.

إضافة إلى ‘الشبح’، فهو كائن ليس له إشارة مرجعية unreferenced في أي برنامج، ومن ثم فهو لا يخدم أي غرض.

وفي اللغات التي تحمل خاصية تجميع القمامة (التخلص من الملفات الزائدة)، تقوم جامعة القمامة garbage collector، بتعليم مكان الذاكرة المشغول بالكائن على أنه خال، رغم أنه يظل حاملاً للبيانات الخاصة بالكائن لحين أن يشغل المكان كائن أخرى يقوم بالكتابة الفوقية overwriting عليه.

السابق
الاستهداف في التسويق الاستراتيجي – الدرس 8
التالي
12 : دورة إحتراف HTML5 بمنهجية أكاديمية (عناصر Block Level )

شاركنا برأيك