مفاهيم البرمجة الكائنية في لغة جافا البرمجية – (2)

 • أنطلوجيا المجموعات – The anthology of sets :
ظهر مفهوم “نظرية المجموعات” في عام 1873 على يد أحد الفلاسفة الرياضيين الألمان، الذي يدعى كانتور جورج، والمجموعة تعني تجمع لعدة أشياء، أو كائنات – Objects مختلفة في وِحدة، أو فئة Class معينة. وتُعنى الرياضيات بدراسة تجمعات عدة لتلك العناصر، مثل مجموعة الأعداد أو النقاط، أو مجموعة الأعداد، التي جئنا على ذكرها في إحدى المقالات السابقة. وتندرج العديد من الأشياء في حياتنا اليومية تحت مفهوم المجموعات، حتى أثناء حديثنا العادي عن مجموعة السيارات، مجموعة الطلاب، مجموعة المدن، وغيرها الكثير. 

• البرمجة كائنية التوجه – Object-Oriented Programing :

تهدف البرمجة إلى حل المشكلات، وتعمل اللغات البرمجية كائنية التوجه خاصةً على تمثيل العناصر والمكونات الموجودة في العالم الحقيقي على هيئة كائنات Objects لفئات Classes. فإذا ضربنا مثالًا من واقع الحياة عن مجموعة من الكائنات، ولتكن مجموعة من الأعداد الصحيحة (2, 1, 0, -1, -2) إذ يمثل كل عنصر من عناصر هذه المجموعة كائنًا Object، ويمكن تصنيف هذه العناصر تحت فئة أو مجموعة معينة، تسمى Class وهذه من مكونات البرمجة كائنية التوجه.

تتماز البرمجة كائنية التوجه بجوار هذا بأربعة خصائص أساسية منها: 

  1. التجريد – Abstraction
  2. التغليف – Encapsulation
  3. الوراثة – Inheritance
  4. تعدد الأشكال – Polymorphism

• البنية الأساسية للغة جافا – The Main Concepts Of Java : 

هناك عدة مفاهيم ومكونات للبرمجة كائنية التوجه منها:

  1. الكتل الجملية – Blocks
  2. الجمل Statements
  3. التعبيرات Expressions

و سنأتي على ذكرها تفصيلًا فيما يأتي: 

الكتل الجملية – Blocks :

الكتل الجملية – Block هي مجموعة من عدة جمل. تبدأ الكتل الجميلة بعد فتح قوسين (}) وتنتهي بإغلاق القوس ({) وبين بداية القوس ونهايته، تتم كتابة الأوامر البرمجية.


الكائن – Object :

يمثل الكائن Object وحدة Entity في العالم الحقيقي يمكن تعريفها، و يمكن وصف خصائص هذا الكائن من خلال تضمين البيانات Attributes لهذا الكائن، ومن خلال تحديد أي نوع من البيانات له، والنوع – Type هو نوع من أنواع القيم التي يمكن تخزينها وإجراء العمليات عليها، وتنقسم أنواع البيانات لقسمين منهما ما يأتي:

البيانات البدائية – primitive types وتتضمن ثمانية بيانات أساسية:

اسم النوع تعريفهقيمته
Byteيستخدم لتخزين عدد صغير الحجم لا يحتوي على فاصلة عشرية، أي لتخزين عدد صحيح.127
Shortيستخدم لتخزين عدد متوسط الحجم لا يحتوي على فاصلة عشرية، أي لتخزين عدد صحيح.32,767
Intgيستخدم لتخزين عدد كبير لا يحتوي على فاصلة عشرية، أي لتخزين عدد صحيح.2,147,483,646
Longيستخدم لتخزين عدد كبير جدا لا يحتوي على فاصلة عشرية, أي لتخزين عدد صحيح حجمه كبير جدا.9,223,372,036,854,775,807
Floatيستخدم لتخزين عدد كبير بفاصلة عشرية، ويتحدد بنظام الـ floating point12.05f
Doubleيستخدم لتخزين عدد كبير جدا بفاصلة عشرية، ويتحدد بنظام الـ double-precision100.1d
Charيستخدم لتخزين حرف واحد، و يستخدم في العمليات المنطقية.A, B, C, etc
Boolean يستخدم في العمليات المنطقية (جمع، طرح، ضرب، قسمة، مقارنة).+, -, /, x

بيانات مرجعية – Reference/Object Data Types :

اسم النوعتعريفهمثال
classأي فئة أو Class يتم تعريفها من قبل المستخدم }Class Area
nullعلى العكس من البيانات البدائية، تسمح البيانات المرجعية باستخدام أي قيمة فارغةnull
arrayجميع أنواع المصفوفات}class Testarray
interfaceنوع من أنواع الكلاس نوع يسمح لنا بتطبيق مبدأ تعدد الوراثةinterface MyInterface
stringأي قيمة نصية يمكن أن يعرفها المستخدمstring = AdaLovelaces

تعمل المتغيرات – Variables على حفظ إحدى القيم المعينة لهذا النوع – Type، ويجب تعين اسم Identifier لكل متغير، على أن يحمل اسمًا يتكون من مجموعة الحروف (a-z, A-Z) والأرقام (9 – 0) بالإضافة إلى _ و $ ويجب أن يتبع هذه القواعد التالية:

  1. أن يبدأ الاسم بحرف
  2. أن لا يبدأ برقم
  3. لا يحتوي على مسافة فارغة
  4. لا يكون من الأسماء المحجوزة
  5. يفضل أن يكون اسما معبرا عمّا يقوم به الكائن
  6. لا يحتوي على أي حروف أو علامات خاصة غير المذكورة سابقًا

وهناك بضع المتغيرات المحجوزة في لغة جافا منها ما يأتي:

publicfinallyAbstract
returnfloatboolean
shortforbreak
staticifbyte
superimplementscase
switchimportcatch
synchronizedinstanceofchar
thisintclass
throwonterfacecontinue
throwstransientlongdefault
transientnativedo
truenewdouble
trynullelse
voidpackageextends
volatileprivatefalse
whileprotectedfinal

الصنف – Class :

يعمل الصنف أو الكلاس كوحدة لتخزين البيانات  Attributes والإجراءات Methods وتعمل كذلك بمثابة القالب للنسخة الخام، او النسخة الأصلية Blueprint للبرنامج. 

الإجراءات أو الدوال – Methods :

الدوال هي مجموعة من العبارات أو التقارير المجتمعة لتأدية عملية محددة، والدوال في لغة جافا البرمجية، إما أن تكون مُعرَّفة سابقا فيتم إستدعائها بالقيمة Return، وإما أن تكون فارغة لا تستدعي شيء فتأخذ القيمة Void.

الحزم – Package :

الحزمة (package) عبارة عن مجال اسم (namespace)، وهدفها تنظيم مجموعة من الفئات Classes والواجهات ذات العلاقة، يمكن مقارنة فكرة الحزمة بمجلدات مختلفة موجودة في حاسوبك، مجلد خاص بالملفات HTML، مجلد آخر خاص بالصور، وآخر يحتوي على البرامج. هناك عشرات الحزم المذكورة في موقع أوركال، ألا ان بعض الدوال الشائعة من قبل جافا هي المذكورة أدناه: 

java.awtjava.netjava.utiljava.lang
Abstract Windowing Toolkit. تحتوي على الأصناف – Classes الخاصة بالرسومات، بما في ذلك رسومات جافا ثنائية الأبعاد، كما وتحدد إطار عمل واجهة المستخدم الرسومية الأساسية (GUI) لجافاتوفر الأصناف – Classes لتنفيذ تطبيقات الشبكات تحتوي على إطار عمل المجموعات، وفئات المجموعات القديمة، ونموذج الحدث، ومرافق التاريخ والوقت، والتدويل، وفئات المرافق المتنوعةتعمل على تمثيل البيانات البديئية – primitive type، كما لو كانت كائنات – object.
PanelUrlStackMath
ButtonSocketScannerSystem

الجمل – Statements :

تربط الجملة عدة أفكار معًا، وقد تحتوي عدة شروط كذلك، وتقوم الجمل بتبيان التعليمات التي يجب على البرنامج تنفيذها، وتنقسم الجمل في لغة جافا إلى نوعين:

الجمل التعبيرية – Expression Statements :

وهذا النوع من الجمل يقوم بتعريف المتغيرات Variables التي سوف تستخدم في داخل البرنامج، وذلك بتحديد اسم لها، وتحديد أي نوع من البيانات سيخزن فيها، ويجب أن تأتي جمل التعريف في بداية الإجراء Method لأن لغة جافا لا تسمح باستخدام أي من المتغيرات إلا بعد تعريفها. وهناك ثلاثة أنواع من الجمل التعريفية، جمل تنتج نتيجة، جمل تعيين نتيجة، والجمل التي بلا نتيجة، غير أنها تتضمن آثارًا جانبية.

جمل التحكم بالتدفق – Control-Flow Statements :

تحدد جمل التحكم بالتدفق الترتيب الذي يتم فيه تنفيذ الجمل والإجراءات، وعادة ما يتم تشغيل البرنامج من الأعلى للأسفل، ومع ذلك تقاطع جمل التحكم بالتدفق هذا الترتيب لتنفيذ بعض أوامر التدفق الأخرى ومنها:

  1. الجمل الشرطية – If Statements, If-Else, Switch-Case
  2. الجمل التكرارية – For, While, Do-While
  3. جمل Try-catch-finally, throw
  4. جمل Break, continue, label, return

المصادر

  1. Master Object Oriented Programming Concepts

2. https://harmash.com/home/

3 الرياضيات في حياتنا

4. مسألة اللانهائية في الرياضيات: نظرية جورج كانتور

5. Java Programming A free online course on learning Java

6. An Introduction to Object-Oriented Programming with Java

اترك تعليقًا

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

شعار ووردبريس.كوم

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   /  تغيير )

Google photo

أنت تعلق بإستخدام حساب Google. تسجيل خروج   /  تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   /  تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   /  تغيير )

Connecting to %s