📘 شرح الدرس الوحدة 2: أساسيات البرمجة بلغة جافا · الدرس 3 من 17
الدرس 3
📋 في الخطة: الوحدتان 4 و 6: البيئة والبنية وأول الأخطاء · ⏱ 1 نظري + 3 عملي

أول برنامج بلغة جافا

لماذا نبرمج؟ وما الذي يميّز جافا؟ وكيف يتحوّل الكود إلى برنامج يعمل؟

classHello { print("Hi");} Write onceRun anywhere
بعد هذا الدرس ستستطيع أن:
  • تشرح ما هي لغة جافا وكيف يُترجم البرنامج ويُنفَّذ.
  • تجهّز أدوات البدء: JDK و NetBeans.
  • تكتب بنية برنامج جافا الصحيحة وتطبع باستخدام println و print.
  • تتعرّف على أول أخطاء الصياغة وتصلحها.

١ما هي لغة جافا؟

لغة برمجة كائنية التوجّه، واسعة الاستخدام في بناء التطبيقات والبرامج المتقدّمة، طوّرها جيمس غوسلينغ وزملاؤه في شركة صن مايكروسيستمز (Sun Microsystems).

«اكتب مرّة، وشغّل في أي مكان»

Write Once, Run Anywhere

يُكتب البرنامج مرّة واحدة ثم يعمل على ويندوز وماك ولينكس دون إعادة كتابته، بفضل الآلة الافتراضية للجافا JVM (تُنطق: جي-في-إم).

خصائصها ومميّزاتها

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

٢كيف يعمل برنامج جافا؟

يمرّ البرنامج بثلاث مراحل:

١. كتابة الكودHello.java ٢. الترجمةالمترجِم Compiler BytecodeHello.class JVMعلى ويندوز JVMعلى ماك JVMعلى لينكس مرّة واحدة٣. التشغيل في أي مكان
المترجِم Compilerالمفسّر Interpreter
طريقة العمليحوّل الكود كلّه إلى لغة الآلة دفعةً واحدةيقرأ الأوامر وينفّذها سطرًا بسطر
متى؟قبل التشغيلأثناء التشغيل

٣الأدوات اللازمة للبدء

ثبّت JDK←ثبّت NetBeans←اكتب أول برنامج
الأداةما هي؟ملاحظة
JDK
Java Development Kit
حزمة تطوير جافا: المترجِم وبيئة التشغيل والأدوات الأساسيةتُثبَّت أولًا
IDEبيئة التطوير المتكاملة: تلوّن الكود وتنبّه إلى الأخطاء وتقترح الإكمال—
NetBeansالبيئة المعتمدة في هذا المقررسهلة وسريعة ومناسبة للمبتدئين وتطبيقات الويب
Eclipse و IntelliJ IDEAبيئات أخرىمناسبة أكثر لتطبيقات الأندرويد

جرّب أول برنامج لك الآن

هكذا يبدو الكود في بيئة NetBeans. اضغط الزر الأخضر ▶ شغّل في OneCompiler: يُنسخ الكود تلقائيًّا ويُفتح موقع OneCompiler في تبويب جديد، فتلصقه هناك (Ctrl+V) وتضغط Run.

HelloJava.java
public class HelloJava{    public static void main(String[] args)    {        System.out.println("Hello, Java!");    }}
Output – JavaApplication (run)×
run:
Hello, Java!
BUILD SUCCESSFUL (total time: 0 seconds)

٤بنية برنامج جافا

أي برنامج جافا ثلاث طبقات متداخلة: الكلاس، وبداخله الدالة main، وبداخلها الأوامر.

اضغط جزءًا لترى مكانه في الكود
HelloJava.java
public class HelloJava{    public static void main(String[] args)    {        System.out.println("Hello, Java!");    }}

Output – JavaApplication (run)×
run:
Hello, Java!
BUILD SUCCESSFUL (total time: 0 seconds)

٥أمر الطباعة: println و print

printlnprint
ماذا يفعل؟يطبع ثم ينزل إلى سطر جديديطبع ويبقى في السطر نفسه
متى نستخدمه؟كل مخرَج في سطر مستقلدمج عدة مخرجات في سطر واحد
المؤشّر بعدهافي بداية سطر جديدبعد آخر حرف مباشرة
مختبر الطباعة

اضغط اسم الأمر في أي سطر لتبدّله بين println و print، وراقب الناتج. العلامة | تمثّل مكان المؤشّر.

System.out.("مرحبًا");System.out.("بك");System.out.("في جافا");
الناتج

٦الفاصلة المنقوطة ;

تُنهي كل أمر تنفيذي، كما تُنهي النقطة الجملة في العربية؛ تخبر المترجِم أن الأمر اكتمل.

✗ خطأ
snippet
System.out.println("مرحبا")
✓ صواب
snippet
System.out.println("مرحبا");

نسيان ; أكثر أخطاء المبتدئين شيوعًا، ويوقف ترجمة البرنامج.

أين لا نضعها؟

لا توضع بعد رأس الكلاس ولا رأس الدالة ولا بعد الأقواس { }. السطر المظلَّل هو الوحيد الذي يحتاجها:

HelloJava.java
public class HelloJava{    public static void main(String[] args)    {        System.out.println("Hello, Java!");    }}

٧التعليقات

نصوص داخل الكود لشرحه، يتجاهلها المترجِم تمامًا فلا تُنفَّذ ولا تؤثّر على البرنامج.

النوعالصيغةالاستخدام
سطر واحد// ...كل ما بعد // في السطر نفسه
عدة أسطر/* ... */كل ما بين /* و */، ويصلح لسطر واحد
توثيق Javadoc/** ... */توثيق البرامج (للعلم فقط)
ماذا يرى المترجِم؟
HelloJava.java
public class HelloJava{    public static void main(String[] args)    {        // طباعة مع النزول إلى سطر جديد        System.out.println("مرحبًا بك");        // طباعة تبقى في نفس السطر        System.out.print("تعلم ");        System.out.print("البرمجة");        /*           هذا السطر معطَّل بتعليق،           فلن يُنفَّذ إطلاقًا        */        // System.out.println("سطر مؤجَّل");    }}
ما يصل إلى المترجِم
public class HelloJava{    public static void main(String[] args)    {         System.out.println("مرحبًا بك");         System.out.print("تعلم ");        System.out.print("البرمجة");         }}
Output – JavaApplication (run)×
run:
مرحبًا بك
تعلم البرمجة
BUILD SUCCESSFUL (total time: 0 seconds)

٨أول تعارف مع الأخطاء

عندما تكتب أول برامجك ستظهر لك أخطاء، وهذا طبيعي تمامًا. أكثرها في البداية أخطاء صياغة: مخالفة لقواعد كتابة جافا. يكتشفها NetBeans فورًا ويضع تحت السطر خطًّا أحمر متعرّجًا وعلامة ❗ بجانب رقمه، ولا يعمل البرنامج حتى تصلحها.

Main.java
public class Main {    public static void main(String[] args) {        System.out.println("مرحبًا")    }}
Output – JavaApplication (run)×
Main.java:3: error: ';' expected
1 error
BUILD FAILED (total time: 0 seconds)
الخطأ الشائعمثالالإصلاح
نسيان الفاصلة المنقوطةprintln("Hi")println("Hi");
حرف صغير بدل كبيرsystem.out.printlnSystem.out.println
نسيان علامة التنصيصprintln("Hi);println("Hi");
قوس غير مغلقmain(String[] args) { بلا }أغلق كل قوس فتحته

توقّع وتحقّق

تأمل الكود التالي،

snippet
System.out.print("A");System.out.println("B");

ماذا سيكون الناتج عند تنفيذه؟

print الأولى لا تنزل سطرًا، فتلتصق B بـ A.

أي سطر يحتاج فاصلة منقوطة؟

الأوامر التنفيذية فقط تنتهي بـ ;

كلاس اسمه Calc، ما اسم ملفه؟

تأمل الكود التالي،

snippet
// System.out.println("1");System.out.println("2");

كم سطرًا يظهر في الناتج عند تنفيذه؟

السطر الأول معطّل بتعليق، فلا يُنفَّذ إلا الثاني.

الخلاصة

تحدٍّ برمجي: إطار حول كلمة

سهل

ارسم إطارًا نصيًّا حول كلمة Java، ثم اطبع سطرًا أخيرًا مكوّنًا من أمرين print.

المطلوب:
  • الأسطر الثلاثة الأولى بـ println.
  • السطر الأخير «Hello World» ناتج أمرين: print("Hello ") ثم print("World").
  • أضف تعليقًا واحدًا على الأقل يشرح الكود.

ابدأ من هذا الكود، واضغط ▶ شغّل هنا لتكتب حلّك وتجرّبه مباشرة:

Frame.java
public class Frame{    public static void main(String[] args)    {        // ارسم الإطار هنا     }}
Output – المطلوب×
+-------+
| Java! |
+-------+
Hello World
💡 تلميح 1
الإطار ثلاثة أسطر: سطر علوي، ثم سطر الكلمة، ثم سطر سفلي مطابق للعلوي.
💡 تلميح 2
print الأولى لا تنزل سطرًا، فتلتصق بها الثانية.

حاول بنفسك أولًا؛ للمسألة أكثر من حلّ صحيح.

Frame.java
public class Frame{    public static void main(String[] args)    {        // الإطار: ثلاثة أسطر        System.out.println("+-------+");        System.out.println("| Java! |");        System.out.println("+-------+");         // سطر واحد من أمرين print        System.out.print("Hello ");        System.out.print("World");    }}

🧪 تدريبات المذكرة العملية

التدريب العملي 1: طباعة بيانات المقررمن مذكرة العملي: المسألة، والخوارزمية، والمخرجات، والحل.افتح التدريب ←انتقل إلى تقييم الدرسأسئلة الاختيار، وصح وخطأ، وأكمل الفراغات، والأسئلة العملية.ابدأ التقييم ←