في هذا الدرس نستعرض قواعد كتابة لغة جافا الاساسية. مثل المعرفات والفقرات والتعليقات و الكلمات المحجوزة و نستعرض كتابة برنامج بسيط يقوم بطباعة “مرحبا”.

لغة جافا هي لغة كائنية Object Oriented حيث انه في اثناء تشغيل البرنامج نقوم ​بتخليق مجموعة من الكائنات Objects في الذاكرة التي تتفاعل مع بعضها لكي يعمل البرنامج. مثلا نعمل برنامج لبيع السلع، فنمثل كل سلعة متوفرة عندنا ​بكائن في الذاكرة و يكون عندنا مجموعة من الزبائن حيث نمثل كل زبون ايضا ​​بكائن، بالطبع شكل كائن السلع يختلف عن كائن الزبون من حيث الصفات attributes و التصرفات behavior ، فمثلا كائن الزبون عنده صفات مثل الاسم، و الاموال المتاحة وغيرها كما انه يستطيع ان يشتري او يحجز السلع او ان يدفع الاموال، اما كائن السلع فعنده صفات مثل السعر و ال ID.
اذا اردنا ان نمثل ذلك المثال في الجافا سيكون عندنا:

  • صنفين من الكائنات: السلع و الزبائن، ونمثلها بالاصناف classes.
  • لكل من الكائنات، صفاتها المختلفة attributes ونمثلها بانواع البيانات المختلفة Data Types (الارقام والنصوص والتواريخ وغيرها)
  • تتفاعل الكائنات فيما بينها عن طريق التصرفات Behaviors المتاحة لكل منها ونمثلها بالطرق Methods.
هذة الفقرة تحتوي على كثير من المصطلحات التي سيتم شرحها بالتفصيل لاحقا وسيتم استيعابها كاملا مع قراءة بقية الدروس

المثال الاول، مرحبا !!

يتم تخزين اكواد جافا في ملفات مختلفة ذات امتداد java. (في الاغلب كل ملف يمثل ​صنف)، ولكي يشتغل البرنامج لابد من تحديد نقطة البداية في احد تلك الملفات/ الاصناف. وذلك عن طريق تعريف طريقة method اسمها main كما في المثال الاتي:

class Main{
	// نقطة البداية الفعلية للبرنامج ولابد من تعريف الطريقة بهذا الشكل
	public static void main(String[] args){
		// نأمر البرنامج بطبع كلمة مرحبا
		System.out.println("!! مرحبا");
	}
}

قواعد الكتابة الاساسية Basic Syntax

المعرفات Identifiers:

المتغيرات variables هي اماكن في الذاكرة نعطيها اسماء ونحفظ فيها البيانات، المعرفات هي اسماء تلك المتغيرات وهي ايضا اسماء الوظائف (functions/methods) و ​الاصناف، وهناك مجموعة من القواعد للتسمية:

  • تكتب المعرفات او اسماء المتغيرات بمجموعة من الحروف اللاتينية (a..z و A..Z) و الارقام(9..0) وشكل الكتابة ( _ ) ولابد من عدم احتواء الاسم على مسافات.
  • المعرفات في الجافا حساسة لحالة الاحرف Case Sensitive: اي ان كلمة Hello لا تساوي hello و لا تساوي heLLo، كل منهم يعتبر اسم مستقل.
  • لا تبدأ اسماء المعرفات بالارقام.
  • امثلة لتسميات صحيحة: age و price1 و name$ و name_ و NaMe .
  • امثلة لتسميات خاطئة: 1age(يبدأ برقم)، first name (يوجد مسافة) و (first-name) وجود علامة (-) من غير المسموح بها.
  • ليست قاعدة لكن هناك اتفاق للتسمية Naming Convention:
    – اسماء المتغيرات و الوظائف تبدأ بحروف صغيرة (small letters) مثل : name & age & buy.
    – اسماء ​الاصناف تبدأ بحروف كبيرة Capital letters مثل: Car & Animal.
    – اذا اردنا تسمية اسم يتكون من اكثر من كلمة، تبدأ الكلمات بعد الاولى بحروف كبيرة (Capital letters) مثل: firstName و totalAmount و اذا كان class يكون مثلا: HelloWorld وتسمى هذا الطريقة حالة الجمل Camel Case لانها تشبه سنام الجمل.

التعليقات Comments

يوجد رمزين للتعليقات في الجافا:

// تستخدم للتعليق من سطر واحد و /**/ للتعليق لاكثر من سطر:

تشغيل
// تعليق سطر واحد

/*
التعليق
لاكثر من
سطر
*/

جمل التعيين Assignment Statementsِ

جمل التعيين في الجافا لابد من ان تنتهي بفاصلة منقوطة (;) مثل:

تشغيل
int age = 20;
String name = "Mohamed";
int i = 6 + 1;
ملحوظة: عند اجراء العمليات الحسابية مثل 1 + 6 نسمي هذا الجزء بالعبارة expression لان الناتج منه يكون قيمة يمكن تخزينها.

الفقرات Blocks

الفقرات هي التي تحدد الحدود او النطاق للجمل او العمليات المختلفة ويتم تحديد تلك الحدود في الكود بالشكل {}، مثل في جمل التكرار Iteration و جمل الشرط conditions و ​الوظائف / ​الدوال ، نستطيع ايضا كتابة جمل داخل جمل من تلك الفقرات وتكون حدود كل منها هي {} :

// التكرار
while(count < 5){
	amount = count + 1;
	count = count + 1;
}

// الشرط
if(count < 5){
	mount = count + 1;
}

// الوظائف
private method(int count){
	count = count +1;
}

// فقرة داخل فقرة
while(count < 5){
	if(count < 3){
		amount = count + 3;
	}
	count = count + 1;
}


الكلمات المحجوزة Reserved Words

الكلمات المحجوزة في لغات البرمجة. هي كلمات تستخدمها اللغة لتنفيذ اجراء او امر معين او لها دلالة معينة للغة البرمجة. لذا لا يمكننا استخدام تلك الكلمات المحجوزة عند تسمية المتغيرات او الدوال (Identifiers).

abstractcontinuefornewswitch
assertdefaultgotopackagesynchronized
booleandoifprivatethis
breakdoubleimplementsprotectedthrow
byteelseimportpublicthrows
caseenuminstanceofreturntransient
catchextendsintshorttry
charfinalinterfacestaticvoid
classfinallylongstrictfpvolatile
constfloatnativesuperwhile

guest
0 تعليقات
Inline Feedbacks
اظهر كل التعليقات