في بداية طريق تعلم لغة الجافا يكون التعامل مع شرح أول برنامج سطحيٌ جداً.
ولكن في هذه التدوينة سوف تتعلم كتابة أول برنامج لك بلغة الجافا.
ليس بسطحية و إنما ستعلم أيضاً المفاهيم الأساسية في لغة الجافا بتعمُّقٍ أكبر.
لأحفزك قليلاً..
ليس من البساطة أن تسمتع بما تفعل مالم يكن هناك دوافع.
الدافع الجميل في البرمجة هو رؤية أفكارك و تلك التعقيدات يتم تنفيذها على شاشة الحاسب، حينها ستشعر بتلك المتعة الخاصة التي قلما تجدها في أماكن أُخرى – أن تجتهد و تحصد ثمرة جهدك سريعاً، خاصة و أن لغة جافا من أشهر لغات البرمجة.
قبل كل شيء يجب أن تعد بيئة جافا للبدء بالبرمجة إذا لم تكن أعددتها مسبقاً، أما إذا كانت معدّة … فهيّا لننطلق.

في البداية فلتتعرف إلى الشفرة البرمجية (Code) كاملةً لأول برنامج لك
package firstproject; public class MyFirstApp { public static void main(String args[]){ System.out.println("مرحبا بك في مدونة علوم"); } }
بعد أن تعد نفسك، قم بفتح برنامج نتبينز أو أيٍ من البرامج المخصصة لكتابة و تنفيذ أكواد الجافا. سأستعرض معك. سنبدأ برحلتنا مع برنامجك الأول جزءاً جزءاً.
public class MyFirstApp {
في هذا السطر نخبر الحاسب بثلاث أشياء:
- بإستخدام public فإنك تقول أنك تريدأن تكون سماحية الوصول إلى مكونات هذا الـ class عامة، الـ class هو الهيكل الأساسي للبرنامج، و يماثل المنزل، في البداية ستقوم بإنشاء المنزل ثم بعد ذلك تبدأ تعمير و إنشاء و تأثيث الغرف، إذا إستخدمت المعرف public فإنك تجعل منزلك متاحاً للمشاركة.
- بإستخدام Class فإنك أخبرت الـحاسب بأنك تريد إنشاء Class و كما ذكرت لك آنفاً فالـ Class مماثل للمنزل أو الهيكل الخارجي الذي لا فائدة له وحده دون مكونات داخلية.
- MyFirstApp هو إسم قد إخترته بنفسي و بإمكانك إختيار إسم آخر مثل AhmedClass أو أي شي آخر، هذا يعني أنك تريد تسمية منزلك بهذا الإسم، فعندما يريد الناس الوصول إلى منزلك فسيقولون هيا لنذهب إلى منزل AhmedClass، كتابة هذا الإسم لها معايير يجب إتباعها لكن ليس بالضرورة ربما نتطرق لها لاحقاً. لكن من أهم المعايير هي أن يبدأ إسم الـ class بحرف capital.
public static void main(String args[]){

هنا تقوم بإنشاء أول غرفة من غرف منزلك الذي عرضته للمشاركة 🙂 شئ جميل.
لنتعرف على ما كتبته في هذا الجزء:
- بإمكانك أن تعرض منزلك للمشاركة، و لكن بإمكانك أن تستأثر بإحدى الغرف لك وحدك. بمعنى آخر تحدد صلاحية الوصول لهذه الغرف، فبكتابتك لـ public فإنك تقول أن هذه الغرفة متاحة للوصول.
- هناك مفهوم مهم في البرمجة. عمليات المشاركة التي نتحدث عنها فعلياً لا تتم بالإستيلاء على غرفة من شخص واحد، بل تتم بأن كل شخص يريد هذه الغرفة يأخذ نسخة منها. و بالتالي من الممكن أن خمس أشخاص تشاركوا هذه الغرفة بأخذ نسخ منها، فإذا أراد أحدهم طلاء نسخة غرفته بلون معين فهل ستتأثر بقية الغرف بهذا الطلاء؟ أم سيكون تأثير هذا الطلاء على غرفته فقط. هنا يأتي مفهوم الـ static، فإذا ذكرت ان هذه الغرفة static فهذا يعني أن أي تغيير بأي من نسخ الغرفة سيؤثر على بقية الغرف المنسوخة. فلا تقوم بالتغيير قبل دراسة تأثير ذلك على الآخرين إذا كانت غرفتك static 🙂 .
- ننتقل إلى void، المفهوم العام في البرمجة للغرف. جميع الغرف يسمح لك بالحصول منها على شئ واحد، أو لا شئ على الإطلاق، فذكرك لـ void هنا تعني أن كل شخص يستخدم هذه الغرفة لن يحصل منها على أي شئ. فقط للإستخدام كما هي.
- الـ main، هذا هو إسم الغرفة، و الآن لنتحول من المثال إلى الحقيقة. الغرف التي نتحدث عنها هنا هي الدوال methods داخل البيوت classes. بعد تحديد صفات الغرفة من ناحية قابلية المشاركة و تأثير التغيير على بقية المتشاركين، و ماذا بإمكان المشارك لهذه الـ method الحصول منها، نحدد إسم الـ method، و هنا للإسم main خصوصية، بحيث أنه في كل منزل class عند بداية تنفيذه يتم البحث عن الغرفة الأساسية بالمنزل ليبدأ منها، و دائماً تسمى main و إذا لم يجدها فإن تنفيذ هذا الـ class لوحده يعد ضرباً من الخيال.
System.out.print("مرحبا بك في مدونة علوم");
هذا هو أثاث الغرفة و الجزء المهم من الكود، هذا هو الجزء الذي يتم تنفيذه فعلاً و ترى نتيجته. و تفصيله لك كالآتي:
- في هذا السطر قد أمرنا الحاسب بطباعة جملة على الشاشة. هل تريد معرفة كيف تأمر الحاسب بالطباعة في لغة الجافا؟ بدلاً أن تقول له إطبع فستكتب System.out.println و ما بين القوسين ( ) تضيف ما ترغب بطباعته. هذا هو التركيب الأساسي لعملية الطباعة. يكفي الآن أن تعرف هذا كجزء أساسي لعملية الطباعة.
- الشئ الذي نرغب بطباعته على الشاشة هو جملة (مرحبا بك في مدونة علوم)، و حتى تخبر الحاسب بأن الذي ترغب في طباعته هو نص واحد، نضع دائماً النصوص بين علامتي التنصيص “”. و بذلك يكون هذا هو نصنا الذي ستتم طباعته.
- بنهاية كل أمر برمجي دائماً لا بد أن تضيف هذه العلامة “;“، علامتي التنصيص للتحديد فقط. نسيان هذه العلامة من الأخطاء الشائعة للمبرمجين في بداياتهم حتى يعتادوا عليها، و هي تعني أن هذه نهاية جملة الأمر يا أيها الحاسب.
الآن تبقى لك أن تضيف هذا الجزء
} }
إذا لاحظت عندما كنا نتحدث عن الـ class و الـ method كانت هناك أقواس تجاهلتها عمداً حتى أثير لديك شيئاً من التساؤلات، عد إلى الأجزاء التي كتبتها و لاحظها.
عندما تملك منزلاً ألا تحدد له بداية و نهاية؟ و هل للغرفة حدود؟ الأقواس هذه تمثل البدايات و النهايات لكل من الـ class و الـ method. كل ما يتم وضعه بين القوسين يعتبر جزءاً من مما يسبق القوس الأول، بالتالي فإن الـ main method هي جزء من MyFirstApp class.
إذا فهمت الجملة السابقة فإنك قد وصلت إلى درجة عالية من الفهم الأساسي لتنفيذ البرامج بلغة الجافا.
الآن تبقى لك أن تقوم بتنفيذ هذا الكود، بعد أن إكتملت كتابتك، إحفظ الملف الذي قمت بكتابته بإسم MyFirstApp.java. لاحظ أن الإسم مطابق تماماً لإسم الـ class و كذلك يجب أن يكون.
بإمكانك الآن تنفيذ البرنامج الذي كتبته و فهمته بالضغط على زر التنفيذ بالنتبينز حتى ترى النتيجة و هو زر أخضر مثلث بالقائمة العليا.
أرأيت أن تعلم كتابة برنامجك الأول بلغة الجافا ليس ضرباً من الخيال؟
تعتبر الحزم من المواضيع التي تطرقت لها في هذه التدوينة وتستطيع فهمها أكثر بقرائتك للتدوينتين التاليتين:
عندي اختبار نها~ي و شرحك ممتاز صراحة , كفيت و وفيت
دعواتي لك بالتوفيق رياض 🙏
شكرا لك وفعلا حفزتنى لتعلم البرمجة
خطوتك القادمة اذا هي الاشتراك في دورة لتعليم البرمجة .. افعلها
اشكرك اخي على كتاب 11 سبب يناديك لتكون مبرمجا
حمستني لتعلم البرمجه
شرح جميل ووافي شكراً جزيلاً
شرح جيد شكرا جزيلا اخي الكريم
سلام عليكم موضوع النت بينز أكثر من رائع بس أرجو المساعده في بعض الامور
شرح جيد جدا شكرا اخي
انا حملت بيئة لاكن احتاج مساعدا في تاقلم وتعلم اذا سمحت ان اتواصل معك لي تعلمني فسأكن لك كل احترامي ودعواتي ممكن
مرحباً بك،
تابع قسم التدريب في مدونة علوم و بإمكانك التواصل معي كذلك.
شكر لك يا استاذ مصطفي الطيب الله يمتعك في الدنيا وألأخره
شكراً لك على تواجدك في مدونة علوم أخي محمد.
لقد أجدت أستاذ مصطفى جمعنا الله وإياكم مع الحبيب المصطفى صلوات الله عليه
اريد كيف اربط but بي class اخر هل يتوفر في بيئه java
يعطيك الصحة وربي يجازيك الأجر كاملا ، قرات العديد من كتب الجافا لكن شرحك وأمثلتك لم يتطرق لها شخص قط، هذا دليل على تمكنك من المادة العلامة الكاملة وترتيبك أول معلم بدون منازع انصحك مشاركة هاته الموهبة ووفقكم الله…
مرحباً بك أخي محمد، يسعدني أنك قد وجدت بعض الفائدة في مدونة علوم. لا تنقطع عنا.
شكرا لك على الشرح الوافي جزاك الله خير فقد زادني علما ﻷنني بدأت بلصفر معك وانا اتعلم
شكرا مره اخرى
وأتمنى أن تصل يوماً ما لمبتغاك بإذن الله.
شكرا جزيلا لك اخي على الشرح مره حلو
مرحباً بك أخي علي
شكرا جزيلا اخي الطيب اول مرة من لحظة م عملت ست اب للبرنامج ينفز معاي
مرحباً بك رماح، يُسعدني ذلك. واصل ولا تتوقف حتى تطوّر برنامجاً كاملاً.
جزاك الله خير ، شرح واضح جداً
اتمنى ان نُحظر دو كامله للجافا على اليوتيوب ..
اجزم انه لديك الكثير من الفاهيم للراغبين ف تعلم الجافا.
مرحباً بك أحمد، كما أنني أتمنى ذلك أيضاً 🙂
تابع قسم الدورات في المدونة.
برك الله فيك درس رائع
السلام عليكم انا اريد تعلم لغة الجافا فلو فيه كتب شاملة ومفيدة وخاصة الخاصة بتطبيقات اندرويد
مع العلم اني لدي موقع بلغة php واريد ان اجعل منه تطبيق للاندرويد والايفون وشكرا
وعليكم السلام ورحمة الله حكيم.
أساليب الكتب مختلفة وقد تناسب البعض ولا تناسب الآخرين. عموماً سلسلة For dummies سلسلة جيدة جداً. هنا تجد كتاب JAVA for dummies.
مشكور
لما اعمل run file
تظهر رسالة
class “….’ does not have a main method
تأكد من دقة الأسطر رقم 5، أو إنسخه إلى برنامجك.
هذا الخطأ يعني أن الدالة الرئيسية غير موجودة، ويكون ذلك عادةً بسبب خطأ في كتابتها.
انا فعلت كما بالشرح تماما والفيديو ولكن لا يستجيب
public class FirstMadaProgram {
public static void Main(String args[]){
System.out.print(“hjhj\n”);
System.out.print(“مرحبا مادا مان\n”);
}
}
جرَب أن تغيّر حرف M إلى m في كلمة main.
هذا الخطأ يحدث عندما اكتب انا الكود
لكن عند النسخ منك لا يحدث هذا الخطأ لا اعرف لماذا
جرّب ما ذكرتُه لك وأخبرنا بالنتيجة
ما هم فرق print1n عن print ولمائا تنجح احيانا واحيانا اخرى احدهما.
تطلع لى رسالة
class “…” does not have a main method
يخبر البرنامج انك لم تعمل method
اي داله ال main
الحل البسيط لهذه المشكله
\اعد اعداد البرنامج من البدايه (ابداء مشروعك من جديد).ولاتنسى الضغط على زر تشغيل الكلاس بداله المين ميثود وهي تظهر لك هذاء الخيار عن تسطيب مشروعك (عند كتابه مشروعك تحصل خانه مكتوب عليها {start main method })hulg لها اشاره صح وبداء بكتابه مشروعك
صراحة ما فهمت اي شئ ( هههه )
مع اني تحمست وحملت وهيأت البيئة ولكن لن اقف
وشكراً لكتابك ( 11 سبب يناديك لتكون مبرمج جافا )
صراحة هذا الكتاب هو الذي جذبني شكرا لك كثيرا
?
جميل أنّك هيأت البيئة، واصل وستصل بإذن الله.
ارغب بالتواصل معك لتعلم كيفية كتابه البرامج بلغة جافا.. شكراً لك
رررررررررررروعه
شرح مفصل وجميل .
شكراً لك محمد
بجد انا كنت تايهه فعلا والشرح ده بسطلى الموضوع جدا
excellent *****