☕ Java

التثبيت وأول برنامج Hello World — Java

ما هذا ولماذا؟

تخيل أنك مخرج، والكمبيوتر هو مسرحك الشخصي. لكي يبدأ الممثلون على المسرح (البرامج) في الأداء، يحتاجون إلى سيناريو. في عالم البرمجة، يُسمى هذا السيناريو كودًا. Java هي إحدى اللغات التي يمكنك كتابة هذا السيناريو بها.

لماذا تتعلم Java؟ أولاً، جميع ألعاب Android تقريبًا (مثل Minecraft) مكتوبة بلغة Java، والعديد من المواقع (مثل Amazon) وحتى برامج المركبات الفضائية. ثانيًا، Java لغة صارمة وواضحة جدًا - لا تتسامح مع الأخطاء، لكن برامجك ستعمل بسرعة وموثوقية.

تشبيه: تخيل أن Java هي لعبة LEGO. في Python (لغة شائعة أخرى) يمكنك لصق القطع بالصلصال، وستظل متماسكة بشكل ما. أما في Java، فيجب أن تستقر كل قطعة في مكانها - عندها فقط لن ينهار التركيب. قد يبدو هذا صعبًا في البداية، لكنك بعد ذلك ستتمكن من بناء قلاع ضخمة لن تنهار.

البرنامج الأول الذي يكتبه كل مبرمج يُسمى Hello World. إنه ببساطة يطبع تحية على الشاشة. إنه مثل الحرف الأول في الأبجدية - لا يمكنك الاستغناء عنه.

أمثلة كود مع شرح

مثال 1: أبسط Hello World

// نعلن عن كلاس باسم Main (الكلاس الرئيسي)
public class Main {
    // نقطة الدخول إلى البرنامج - دالة main
    public static void main(String[] args) {
        // نطبع النص على الشاشة
        System.out.println("Hello, World!");
    }
}

شرح للمبتدئ:

  • public class Main - نقول للكمبيوتر: "أنشئ صندوقًا باسم Main سيحتوي على الكود الخاص بنا". في Java، يجب أن يكون كل الكود داخل هذه الصناديق - الكلاسات.
  • public static void main(String[] args) - هذا هو المفتاح الذي يشغل البرنامج. إذا لم تكتبه، لن يعمل البرنامج. احفظ هذا السطر مثل جدول الضرب - إنه دائمًا ثابت.
  • System.out.println(...) - أمر "اطبع وانتقل إلى سطر جديد". في Python سيكون ببساطة print(...). في Java تحتاج إلى كتابة أطول، لكننا نعرف بالضبط أين يُطبع النص - في وحدة التحكم النظامية.
  • الفاصلة المنقوطة ; - مثل النقطة في نهاية الجملة. في Java يجب وضعها بعد كل أمر. في Python لا توجد فاصلة منقوطة، وهذا غالبًا ما يربك المبتدئين.

مثال 2: Hello World مع متغير

public class Greeting {
    public static void main(String[] args) {
        // ننشئ متغيرًا - صندوقًا - يحتوي على نص
        String greeting = "Hello, world!";
        // نطبع محتويات الصندوق
        System.out.println(greeting);
    }
}

شرح:

  • String greeting - نقول: "أنشئ صندوقًا باسم greeting يمكنه تخزين نص فقط (String)". في Python كنت ستكتب ببساطة greeting = "Hello, world!" - دون تحديد النوع. Java تتطلب الدقة: إذا كان الصندوق للنص، ضع فيه نصًا فقط.
  • لماذا هذا مناسب؟ إذا حاولت بالخطأ وضع رقم في greeting، ستعطيك Java خطأ قبل تشغيل البرنامج. في Python، سيتم اكتشاف هذا الخطأ فقط أثناء التشغيل - وقد يتعطل البرنامج في أسوأ لحظة.

مثال 3: Hello World مع رقم

public class NumberGreeting {
    public static void main(String[] args) {
        // عدد صحيح (int)
        int year = 2025;
        // نص
        String message = "نحن في عام ";
        // نلصق النص والرقم باستخدام علامة +
        System.out.println(message + year);
    }
}

شرح:

  • int year - صندوق للأعداد الصحيحة (integer). في Python لا تحتاج لتحديد النوع، لكن في Java هذا إلزامي: int للأعداد الصحيحة، double للأعداد العشرية، boolean للقيم true/false.
  • message + year - Java ستستنتج بنفسها كيفية لصق النص والرقم. في Python يعمل هذا بنفس الطريقة، لكن في Java يجب أن تكون حذرًا: إذا جمعت رقمين، سيتم جمعهما رياضيًا، وليس لصقهما كنصوص.

مثال 4: Hello World مع شرط (إذا-وإلا)

public class SmartGreeting {
    public static void main(String[] args) {
        // ننشئ متغيرًا لوقت اليوم (0-24)
        int hour = 14;
        
        // نتحقق من الشرط
        if (hour < 12) {
            System.out.println("صباح الخير، أيها العالم!");
        } else {
            System.out.println("مساء الخير، أيها العالم!");
        }
    }
}

شرح:

  • if (hour < 12) - مثل سؤال: "هل الساعة أقل من 12؟". إذا كانت الإجابة نعم - يتم تنفيذ الكتلة الأولى داخل الأقواس المتعرجة {}. إذا لا - يتم تنفيذ الكتلة الثانية بعد else.
  • الأقواس المتعرجة {} - هي مثل المجموعات في LEGO. في Python، تُستخدم المسافات البادئة بدلاً من الأقواس. Java تستخدم الأقواس - وهذا أكثر أمانًا لأن المسافات قد تُزاح عن طريق الخطأ ويتعطل البرنامج.
  • لاحظ: لا توجد فاصلة منقوطة بعد if. الفاصلة المنقوطة توضع فقط بعد الأوامر داخل الأقواس.

مثال 5: Hello World مع حلقة (تكرار)

public class RepeatHello {
    public static void main(String[] args) {
        // حلقة: طالما i أقل من 5، افعل...
        for (int i = 0; i < 5; i++) {
            System.out.println("مرحبًا رقم " + i);
        }
    }
}

شرح:

  • for (int i = 0; i < 5; i++) - هذا مثل عداد: نبدأ من 0، نتحقق أن i أقل من 5، وبعد كل خطوة نزيد i بمقدار 1 (i++).
  • ستنفذ الحلقة 5 مرات: i=0, i=1, i=2, i=3, i=4. عندما تصبح i=5، الشرط i < 5 يصبح خطأ وتتوقف الحلقة.
  • في Python، الحلقة for i in range(5): تفعل نفس الشيء، لكنها لا تحتاج إلى تحديد النوع int أو زيادة يدوية.