القائمة الرئيسية

الصفحات

تعلم البرمجه تعلم لغه البرمجه Javaالدرس لاول 1

تعلم البرمجه من الصفر حتى الختراف
تعلم البرمجه  تعلم لغه البرمجه الجافا الدرس لاول 1


جافا
نظرة عامة على لغة جافا

هل أنا جاهز لتعلم لغةJava ؟
إذا كنت مبتدئاً في البرمجة, يجب أن تدرس الخوارزميات قبل أن تبدأ مباشرةً بدراسة لغة جافا, لأنك بحاجة لمعرفة مبادئ البرمجة قبل أن تتعلم أي لغة برمجة.
لا تقلق إذا لم يسبق لك أن تعلمتها لأننا شرحنا الخوارزميات من الصفر.

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

ما هي لغة جافا؟
JAVA تكتب جافا باللغة العربية و هي لغة برمجة عالية المستوى إبتكرها James Gosling في عام 1991 أثناء عمله في مختبرات شركة Sun Microsystems و ذلك لاستخدامها بمثابة العقل المفكر المستخدم لتشغيل الأجهزة الذكية.

عام 1995 تم تطويرها لبناء تطبيقات للويب, السيرفرات, سطح المكتب, الهواتف و الروبوتات.

و هي تعمل على جميع و أهم أنظمة التشغيل مثل Windows, Mac OS, Linux, Unix, Android إلخ.. و تعتبر من أشهر لغات البرمجة على الإطلاق.

حالياً ملايين الأجهزة الإلكترونية مبرمجة على لغة جافا. و هذا شعار لغة جافا:

مميزات لغة جافا بالنسبة للمطورين
لها شعبية هائلة و هناك الكثير من المراجع لمن يريد تعلمها.
بسيطة و تعلمها سهل مقارنةً مع غيرها من اللغات.
شبيهة باللغتين C و C++ و لكن التعامل معها أسهل و سلس أكثر.
إذا أنشأت برنامجاً باستخدام لغة جافا فإن البرنامج يعمل على أي نظام في العالم و هذا من أهم ما يدفعك لتعلمها.
لغة جافا مطلوبة جداً في الخارج, إذا كنت تريد دخول سوق العمل فلغة جافا توفر لك الكثير من الفرص.


مميزات لغة جافا عن باقي لغات البرمجة
مادياً
لن تدفع أي مبلغ لتعمل على لغة جافا, فهي مصدر مفتوح و مجانية و ستبقى مجانية مدى الحياة.

تقنياً
تستطيع البرمجة بها حتى و لو كان حاسوبك ضعيفاً أو قديماً.

البساطة 
تعلمها سهل جداً بعد أن تفهم برمجة الكائنات.

العمل بحيادية 
يمكن لمترجم لغة جافا تقسيم أوامر البرنامج ليتنفذ على عدة معالجات بشكل متناسق باستخدام نظام JRE.

تعدد المهام 
جافا توفر لك تقنية الـ Multithreading و التي تسمح لك بجعل برنامجك قادراً على تنفيذ عدة أوامر مع بعض و بنفس الوقت.

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

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

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


لمن تم إعداد هذا المرجع؟
تم إعداد هذا المرجع ليتلاءم مع جميع الأشخاص الذين يريدون التعلم.
إذاً سواء كنت هاوياً, طالباً أو مبرمجاً, فإن هذا المرجع سيساعدك على فهم أساسيات لغة جافا و الوصول إلى مستوى متقدم جداً.

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

جافا
تحميل و تنصيب أدوات جافا

طريقة عمل برنامج مكتوب بلغة جافا
الكود الذي تكتبه على الكمبيوتر لا يعمل بشكل مباشر بل يمر بعدة مراحل تباعاً حتى يعمل تماماً كما في الصورة التالية.


إذاً الكود الذي تقوم بكتابته و الذي يسمى Source Code, يتم تحويله بواسطة مترجم لغة جافا ( javac ) إلى كود يفهمه الكمبيوتر يسمى Byte Code.
بعدها يقوم الـ JVM بتحويل الـ Byte Code إلى برنامج يعمل على أي نظام تشغيل كان سواء Windows, Linux, MacOS.


مصطلحات تقنية
Source Code: تعني الكود أو الشفرة المصدرية, و يقال لها أيضاً سورس كود.
Byte Code: الكود الذي تفهمه الآلة و هنا تجد أن الكود كله يتألف من رقمين و هما: 0 و 1.
javac: إختصار لـ Java Compiler و يسمى مترجم لغة جافا. فعلياً هو برنامج يحول الكود المكتوب بلغة جافا إلى Byte Code.
Interpreter: هو البرنامج الذي يشغل الـ Byte Code كبرنامج على نظام التشغيل.
JVM: إختصار لـ Java Virtual Machine و هو عبارة عن Interpreter خاص لتشغيل الـ Byte Code الذي أصله في الأساس كود جافا كأي برنامج عادي.
OS: إختصار لـ Operating System و التي تعني نظام التشغيل.


مفهوم الـ JDK
كما لاحظت سابقاً, الكود المكتوب بلغة جافا يمر بعدة مراحل حتى يعمل. و السبب الرئيسي في ذلك أن نظام التشغيل ليس مكتوباً بلغة جافا.
من هذا المنطلق, عليك معرفة أنه حتى يتعرف نظام التشغيل الذي تستخدمه على لغة جافا تحتاج تحميل و تنصيب أدوات تطوير جافا ( Java Development Kit ) و التي يقال لها JDK.


الـ JDK بدوره يتضمن أشياء كثيرة جداً مثل:

الكلاسات الجاهزة في جافا.
الشروحات للكلاسات و الدوال الجاهزة التي تظهر لك أثناء كتابتك للكود و التي تسمى javadoc.
مترجم لغة جافا javac.
مشغل لغة جافا ( Jave Runtime Environment ) الذي يختصر بـ JRE و الذي بدوره يحتوي على الـ JVM.

خلاصة
بدون الـ JDK لن يستطيع نظام التشغيل التعرف على لغة جافا. و بالتالي لن يستطيع تشغيل أي كود أو حتى برنامج جاهز مكتوب بلغة جافا.

تجهيز بيئة العمل
سوف نقوم بتحميل الـ JDK و برنامج Netbeans لبناء و تشغيل كود الجافا على الكمبيوتر.
سبب إستخدامنا لبرنامج الـ Netbeans هو أنه مجاني, سهل الإستخدام و يساعد كثيراً في كتابة الكود.


خطوات تحميل و تنصيب الـ JDK و الـ Netbeans

هنا خطوات تحميل و تنصيب الـ JDK و الـ Netbeans دفعة واحدة.


خطوات إنشاء مشروع جديد و تشغيله

هنا وضعنا خطوات إنشاء مشروع ( أي برنامج ) جديد في الـ Netbeans.
إنتبه: عليك إتباع هذه الخطوات في كل مرة تريد فيها تجربة الكود على الكمبيوتر.


الشكل العام لأي برنامج مكتوب بلغة جافا
مثال
package هنا يوضع إسم المجلد الذي يحتوي على ملف الجافا ;

public class هنا يوضع إسم الكلاس {

    public static void main (String [] args) {

        هنا يجب تضع الأوامر التي ستنفذ عند تشغيل البرنامج

    }

}
شرح الكود
الأمر package ; هو إسم المجلد الموضوع في المشروع و الذي يحتوي على ملف الجافا الذي يمثل البرنامج.
إسم الكلاس هنا يعتبر إسم للبرنامج.
الكود الذي يتنفذ مباشرةً عند تشغيل البرنامج هو الكود الذي نكتبه بداخل حدود الدالة main()
سنتطرق إلى مزيد من التفاصيل في الدرس التالي.

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


جافا
أساسيات لغة جافا

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

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

الكلاس ( Class )
الكائن ( Object )
الخصائص ( Instance variables )
الدوال ( Methods )
مفهوم الكلاس
الكلاس عبارة عن حاوية كبيرة تستطيع أن تحتوي كل الكود من متغيرات و دوال و كائنات إلخ..



مفهوم الكائن
الكائن عبارة عن نسخة مطابقة لكلاس معين.

بما أن الكائن عبارة عن نسخة من الكلاس, يمكننا القول أنه لا يمكن إنشاء كائن إذا لم يكن هناك كلاس.
إذاً في مفهوم برمجة الكائنات نقوم بإنشاء كلاس معين يسمونه blue print أي (النسخة الخام أو النسخة الأصلية) , و بعدها ننشئ نسخة أو أكثر من هذا الكلاس و نفعل بها ما نريد بدون أن نغير محتويات الكلاس الأساسي و هكذا نكون حافظنا على كودات الكلاس الأساسي لأننا نعدل على النسخ و ليس عليه مباشرةً.

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


ملاحظة: الكائن هو نسخة من الكلاس و ليس نسخة من الملف الذي يحتوي على الكلاس.
كما أن الكلاس الأساسي يتم إنشائه بدون إعطاء قيم لمتغيراته و سنرى في دروس لاحقة كيف أننا نغير قيم الكائنات و ليس قيم الكلاس الأصلي مباشرةً.

لا تقلق ستفهم كل شيء في دروس لاحقة.

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

إذا كان عندنا كلاس إسمه Harmash يحتوي على متغيرين x و y, و أنشأنا منه كائنين, الكائن الأول إسمه A و الثاني إسمه B.
هنا سيكون كل كائن يحتوي نسخة خاصة من الأشياء الموجودة في الكلاس Harmash.
سيملك الكائن A نسخة خاصة به من المتغيرين x و y لا علاقة للكائن B فيها.
و سيملك الكائن B نسخة خاصة به من المتغيرين x و y لا علاقة للكائن A فيها.



مفهوم الدوال
الدالة ( أو الميثود ) عبارة عن كود جاهز يتنفذ فقط عندما تقوم بإستدعائه.

مثال
الفراغ العام موضع ترحيب ()
ut.print "welcome 
}

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

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


كيف يفعل ذلك ؟

إنتبه: لا يقوم المدير بتعديل الملفات التي أعطاه إياها المبرمجين.
يقوم المدير بإنشاء مشروع جديد و إنشاء الكلاس الأساسي في المشروع, أي الـ Main Class.
ثم يقوم بانشاء كائنات من الكلاسات التي أنشأها المبرمجين بداخل هذا الكلاس, و هكذا يكون قد قام بجمعها كلها في مكان واحد, أي ربط جميع الكائنات مع بعضها.

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

لا تقلق إذا لم تفهم كل شيء تم ذكره حتى الآن لأن الهدف الأساسي هو إعطاءك فكرة عامة. كما أنك ستتعلم طريقة بناء المشاريع من الصفر بعد أن تتعلم كل ما تحتاجه.


جافا
أسلوب و مبادئ كتابة الكود في جافا

مبادئ كتابة الكود في جافا

حساسية القضية
Case Sensitivity تعني أن لغة البرمجة تميز بين الأحرف الكبيرة و الأحرف الصغيرة.

جافا تعامل الأسماء التي نستخدمها بتأني سواء للمتغيرات, الدوال, الكلاسات, الكائنات إلخ.
مثال: note و Note ليسوا شيئاً واحداً.

بينما في لغات برمجة أخرى مثل HTML لا يهم إذا كانت الأحرف كبيرة أو صغيرة.
مثال: note و Note و NoTe و NOTE هم شيئاً واحداً.


إسم الكلاس
دائماً إبدأ إسم الكلاس بحرف كبير.
مثال: class First

إذا كان إسم الكلاس يتألف من أكثر من كلمة, إجعل أول حرف من كل كلمة كبيراً.
مثال: صنف FirstJavaClass


إسم الدالة
دائماً إبدأ إسم الدالة بحرف صغير.
مثال: public void display()

و إذا كان إسم الدالة يتألف من أكثر من كلمة, إجعل أول كلمة تبدأ بحرف صغير و جميع الكلمات التي تليها تبدأ بحرف كبير.
مثال: public void displayUserInfo()


إسم الملف الذي يحتوي على الكلاس
إسم كلاس الجافا يجب أن يكون مطابقاً لإسم الملف الموجود بداخله.
مثال: إذا كان إسم الكلاس class Harmash يجب أن يكون موجوداً في ملف جافا إسمه Harmash.java كما في هذه الصورة:


إنتبه: إذا كان إسم الكلاس مختلف عن إسم الملف فإن الـ javac أي المترجم الذي يحول كود الجافا للغة يفهمها الكمبيوتر, لن يستطيع إيجاد الكلاس لأنه يبحث عن الملف أولاً ثم يتوقع أن يكون الكلاس يحمل نفس الإسم, وسيسبب ذلك مشاكل في الكود.


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


إذاً كيف سيفهم مترجم لغة جافا (javac) أي كلاس يجب أن يتنفذ في البداية؟

من هنا جاءت فكرة أنه يمكن للمشروع الذي تبنيه أن يحتوي على العدد الذي تريده من الكلاسات, و لكنه يجب أن يحتوي على نقطة إنطلاق واحدة و هكذا سيعرف المترجم من أين سيبدأ بتنفيذ الأوامر.
نقطة البداية في جافا هي الدالة public static void main(String[] args). و لذلك عند إنشاء أي مشروع جديد تجد هذه الدالة جاهزة فيه.

في جافا يجب أن يحتوي كل برنامج على الدالة main() لأنها نقطة البداية.


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


تعليق على سطر واحد.

مثال
// هذا تعليق يتألف من سطر واحد

تعليق على عدة أسطر.

مثال
/* هذا تعليق
 * يتألف من
 * عدة أسطر
 */

تذكر: أنت لست مجبراً على وضع تعليقات في برامجك. و لكننا ننصحك بوضع تعليقات دائماً حتى تساعدك في فهم الكود الذي كتبته.

الأحرف المستخدمة في وضع الأسماء في جافا
أي إسم نضعه لمتغير, دالة, كلاس, كائن إلخ.. يسمى identifier في البرمجة.
في جافا كل عنصر نريد خلقه علينا إعطاءه إسم خاص, أي علينا تحديد الـ identifier له.
إذاً يتم التمييز بين العناصر في جافا من خلال أسمائهم, أي من خلال الـ Identifiers.


قواعد إلزامية عند إعطاء الأسماء

جميع الـ Identifiers يجب أن يبدأوا بحرف كبير بين A-Z أو حرف صغير بين a-z أو رمز الدولار $ أو الشحطة _
يمنع بدء الـ Identifiers برقم.
يمنع استخدام الـ Literals أي القيم true, false و null
يمنع إستخدام أي كلمة من الكلمات المحجوزة ( Keywords ).
لا تنسى أن جافا تطبق مبدأ الـ Case Sensitive.

ركز على أول حرف فقط

أمثلة للأسماء التي يسمح باستخدامها: Harmash , name , $money , _number

أمثلة للأسماء التي يمنع استخدامها: 1name , -cash , @user

الكلمات المحجوزة في جافا
جميع الكلمات التالية محجوزة للغة جافا, أي لا يمكن إستخدامها كـ Identifiers.

نبذة مختصرة
يجزم
منطقية
استراحة
بايت
قضية
قبض على
char
صف دراسي
constcontinue
الافتراضي
فعل
مزدوج
آخر
التعداد
يمتد
نهائي
أخيرا
تطفو
إلى عن على
اذهب إلى
إذا
الأدوات
استيراد
حالة
int
جهة تعامل
طويل
nativenew
صفقة
نشر
محمي
عامة
إرجاع
قصيرة
ثابتة
strictfp
superswitch
تزامن
هذه
يرمي
يلقي
عابر
محاولة
باطل
متطايره
في حين

تعليقات