الأربعاء، 17 أكتوبر 2012

عناصر اللغة الأساسية

عناصر اللغة الأساسية هم: (المعرفات "Identifiers" والكلمات الرئيسية "keywords" و القيم الحرفية "literals" ، و المسافات بيضاء "white spaces" والتعليق "comments" )

هذا الجزء من البرنامج التعليمي لجافا يعلمك العناصر اللغوية الأساسية و التركيب "syntax" للغة البرمجة جافا. بمجرد أن تحصل على هذه المفاهيم اللغوية الأساسية فيمكنك أن تستمر مع غيرها من مفاهيم لغات البرمجة كائنية المنحى Object-oriented programming - OOP.

الكلمات الرئيسية


هناك بعض الكلمات لها معنى محدد في جافا التي تخبر المحول البرمجي ما هو البرنامج الذي يفترض القيام به. هذه كلمات لا يمكن أن تستخدم كأسماء المتغيرات "variable names" أو أسماء الفئة "class names" ، أو أسماء المنهج "method names". الكلمات الرئيسية في جافا تعتبر حالة حساسة "case sensitive" ، وجميع الأحرف تكون بأحرف صغيرة.
الكلمات الرئيسية هي كلمات محجوزة  و هي  معرفة مسبقا في اللغة ، انظر الجدول أدناه (مأخوذ من موقع جافا). جميع الكلمات الرئيسية بأحرف صغيرة.


abstract default
if
private this
boolean do implements protected throw
break double import public throws
byte else instanceof return transient
case extends int short try
catch  final     interface    static void
char finally   long strictfp volatile
class float     native super while
const for new switch
 continue goto package  synchronized



لمزيد من المعلومات حول مختلف الكلمات الرئيسية لجافا

http://download.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
http://en.wikibooks.org/wiki/Java_Programming/Keywords


بعض الملاحظات: الكلمات virtual و ifdef و typedef و friend و struct و union هي كلمات متعلقة بلغة البرمجة  C . الكلمات الرئيسية const و goto هي  كلمات متعلقة بلغة البرمجة جافا. الكلمة   finalize هي اسم المنهج "method" من فئة  Object، وبالتالي فهي ليست كلمات رئيسية. enum  و label  ليست كلمات رئيسية.

التعليقات


التعليقات "Comments" هي توضيحات يتم إضافتها إلى برنامج لجعل التعليمات البرمجية أسهل في الفهم. المحول البرمجي يتجاهل التعليقات وبالتالي فهي فقط لتوثيق البرنامج.

جافا تدعم ثلاثة أنماط للتعليق .
  • نمط لكتلة من التعليقات يبدأ بـ /* وينتهي بـ */ الذي يمتد على العديد من أسطر.
  • نمط لسطر من التعليقات  يبدأ  بـ // وينتهي بنهاية السطر. (كما هو موضح في البرنامج أعلاه)
  • نمط لتوثيق التعليقات يبدأ  بـ/** وتنتهي بـ */ الذي يمتد على العديد من أسطر. عادة ما يتم إنشاؤه بإستخدام أداة مولد الوثائق التلقائي ، مثل javadoc. كما هو موضح في البرنامج أعلاه
ويتكون اسم الملف الذي تمت عليه عملية التحويل البرمجي من اسم الطبقة معها ".class" كإضافة "extension".

المتغيرات "Variables" و المعرفات "Identifiers" وأنواع البيانات "Data Types"


تستخدم المتغيرات "Variables" للبيانات التي تتغير أثناء تنفيذ البرنامج. كافة المتغيرات لها اسم و نوع  و مجال. المبرمج يعين أسماء المتغيرات "variables" ، والمعروفة بالمعرفات"identifiers"  . المعرف  "identifier"يجب أن يكون فريد من نوعه ضمن مجال برنامج جافا. المتغيرات "Variables" لها نوع من البيانات  ، والتي تشير إلى نوع القيمة التي يمكن تخزينها.  المتغيرات "Variables" المعلنة داخل كتلة أو داخل منهج "method" تسمى متغيرات محلية بحيث  لم يتم تهيأتهم تلقائيا.  المحول البرمجي سوف يولد خطأ كنتيجة لمحاولة الوصول إلى المتغيرات المحلية قبل أن يتم تعيين القيمتها.



نلاحظ في المثال أعلاه، وجود خطأ في عملية التحويل البرمجي حيث ان محاولة الوصول الى المتغير ليست في مكانها حيث تم إعلان المتغير من دون أي قيمة.
نوع البيانات تشير إلى صفات المتغير  attributes of the variable مثل مجموعة  القيم "values" التي يمكن تخزينها و المشغلين  (+, -, =… )"operators" الذين يمكن استخدامهم لمعالجة المتغير. جافا لديها أربعة أنواع رئيسية من البيانات البدائية تم إنشائها داخل اللغة. يمكنك أيضا إنشاء مركب لأنواع البيانات الخاصة بك.

جافا لديها أربعة أنواع من البيانات الرئيسية البدائية. يمكننا أيضا إنشاء أنواع البيانات الخاصة بنا.
  • Integer عدد صحيح و هو: byte, short, int, and long
  • Floating Point و هو:  float و double
  • Character و هو: char
  •  Boolean: متغير مع قيمة حقيقية "true" أو زائفة "false".
الجدول التالي (مأخوذة من الموقع الرسمي لجافا) يلخص القيم الافتراضية لبنيت جافا لأنواع البيانات.

Data Type
Default Value (for fields)
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char '\u0000'
String (or any object)  
null
boolean false


عندما نقوم بتعريف متغير نخصص له معرف "identifier" و نوع البيانات "data type".
مثلا
في البيان المذكور، الكلمة "String" هي نوع البيانات للمعرف message . إذا لم تقم بتحديد القيمة عندما يتم تعريف المتغير "variable" ، فسيتم تعيين القيمة الافتراضية لنوع البيانات الخاصة به.

قواعد تسمية المعرف  


  • ويمكن أن تتكون من أحرف صغيرة "lower case" و أحرف الكبيرة "upper case"  والأرقام "digits" ، علامة الدولار ($) وحرف التسطير (_).
  • يجب أن يبدأ بحرف أوعلامة الدولار أو تسطير أسفل السطر
  • يعتبر المعرف حالة حساسة
  • لا يمكن أن تستخدم الكلمات الرئيسية كمعرفات
  • ضمن جزء معين من البرنامج أو نطاق، يجب على كل بند تم تحديده من قبل المستخدم ان يكون لديه معرف فريد "unique identifier" يعني لا نستطيع استخدام نفس اسم المعرف لأكثر من متغير واحد.
  • ويمكن ان يكون في أي الطول.

الفئات


الفئة "class" ليست سوى خطة لإنشاء كائنات مختلفة التي تحدد لها الخصائصه والسلوكيات . الكائن يعرض الخصائص والسلوكيات التي تحددها فئتهُ. ويمكن ان تحتوي الفئة على حقول "fields" و مناهج "methods" لوصف سلوك كائن. المناهج ليسوا سوى أفراد "members" من الفئة التي توفر الخدمة لكائن أو تنفيذ بعض المهام المنطقية.

الكائنات


الكائن هو مثيل "instance" لفئة تم إنشاؤها باستخدام المشغل new . المشغل new  يقوم بإرجاع مرجع "reference" لمثيل جديد للفئة. يمكن تعيين هذا المرجع في متغير من نوع مرجع للفئة. وتسمى عملية خلق الكائنات من الفئة بالتمثيل "instantiation". مرجع الكائن يوفر مقبض للكائن الذي تم إنشاؤه وتخزينه في الذاكرة. في جافا، لا يمكن معالجة الكائنات إلا عن طريق المراجع الذين يمكن تخزينهم في المتغيرات "variables".
مثال:
في المثال اعلاه تم خلق كائن من الفئة  HelloWorld و تم وضعه في متغير بإسم helloObj

الواجهة


الواجهة هي عبارة عن عقد على شكل مجموعة من الإعلانات للمناهج و للثوابت "constant". عندما تقوم فئة بتنفذ "implements" واجهة ، فهي تتعهد بتنفيذ جميع المناهج المعلنة في تلك الواجهة.

الواجهة في شكلها الأكثر شيوعا هي عبارة عن مجموعة من المناهج المترابطة والتي لا تحتوي على تعليمات برمجية. إذا أردنا إضهار سلوك دراجة bicycle على أساس واجهة فقد يظهر على النحو التالي :


لتنفيذ هذه الواجهة ، فإن اسم الفئة سيتغيير عن اسم الواجهة ( لنأخذ على سبيل المثال علامة تجارية معينة من الدراجات،  مثل ACMEBicycle) ، و سنستخدم الكلمة الرئيسية implements في تعريف فئة :

الأعضاء المثيلة


كل كائن تم إنشاؤه سيكون لديه نسخ من الحقول المُعرّفة في الفئة التي ينتمي إليها و التي تسمى بالمتغيرات المثيلة "instance variables" التي تمثل حالة كائن. مناهج الكائن التي تحدد سلوكه تسمى المناهج المثيلة "instance methods" . المتغيرات المثيلة  "instance variables" و المناهج المثيلة "instance methods" التي تنتمي إلى الكائنات تسمى جميعا الأعضاء المثيلة "instance members". يتم استخدام نقطة ‘.’ مع مرجع كائن للوصول إلى الأعضاء المثيلة "instance members".

الأعضاء الثابتة


الأعضاء الثابتة "Static members" هي تلك التي تنتمي إلى فئة ككل وليس الى مثيل معينة (كائن). تتم تهيئة متغير ثابت "static variable" عند تحميل الفئة. وبالمثل ، يمكن أن يكون للفئة مناهج ثابتة "static methods". الأعضاء الثابتة "Static members" و المناهج ثابتة "static methods" تعرف جميعا بالمتغيرات الثابتة "static members" و يتم تعريفهم بالكلمات الرئيسية ثابت "static" . يمكن الوصول إلى الأعضاء الثابتة "Static members" في الفئة إما عن طريق استخدام اسم الفئة أو باستخدام مرجع كائن، ولكن لا يمكن الوصول إلى الأعضاء المثيلة إلا عبر مراجع الكائن.

أدناه هو برنامج يظهر مختلفة أجزاء التراكيب اللغوية الأساسية التي نوقشت أعلاه.


Class Name: HelloWorld
Object Reference: helloObj (in Line 1)
Object Created: helloObj (In Line 2)
Member Function: printMessage
Field: output (String)
Static Member: helloObj
Instance Member : output (String)


ليست هناك تعليقات:

إرسال تعليق