تعلم برمجة Java من الصفر

تعلم برمجة Java من الصفر

تُستخدم لغة Java على نطاق واسع في أنظمة المؤسسات وتطبيقات أندرويد والخوادم. ميزتها أن البرنامج الواحد يعمل على أنظمة تشغيل متعددة، إذ يُترجَم الكود المصدري إلى bytecode ثم يُنفَّذ على JVM (آلة Java الافتراضية). تأخذك هذه المقالة في كتابة أول برنامج، وفهم المتغيرات والشروط والحلقات والأصناف، ثم ترجمة البرنامج وتشغيله بنفسك.

جميع الأمثلة في هذه المقالة تمت ترجمتها وتشغيلها باستخدام Java 17، والمخرجات المعروضة حقيقية.

ما الذي تحتاجه

طريقة العمل

مخطط لسير العمل: يُترجَم ملف .java بواسطة javac إلى bytecode بصيغة .class، ثم يشغّله java على JVM
مخطط لسير العمل: يُترجَم ملف .java بواسطة javac إلى bytecode بصيغة .class، ثم يشغّله java على JVM

ثلاث خطوات: اكتب ملف `.java`، ثم ترجمه بالأمر `javac` ليُنتج ملف `.class`، ثم شغّله بالأمر `java`.

أول برنامج

أنشئ الملف `Hello.java`. يجب أن يطابق اسم الصنف اسم الملف. اكتب الكود التالي:

public class Hello {
    public static void main(String[] args) {
        System.out.println("สวัสดี Java");
    }
}

الترجمة والتشغيل:

javac -encoding UTF-8 Hello.java
java -Dfile.encoding=UTF-8 Hello

المخرجات:

สวัสดี Java

الدالة `main` هي نقطة بداية البرنامج. ويطبع `System.out.println` النص على الشاشة. الخيار `-encoding UTF-8` يضمن قراءة النص التايلاندي في الملف بشكل صحيح.

المتغيرات والأنواع

لغة Java لغة ذات أنواع ثابتة، ويجب التصريح بنوع كل متغير.

النوعيخزّنمثال
intأعدادًا صحيحة`int age = 20;`
doubleأعدادًا عشرية`double price = 19.5;`
booleanصحيح أو خطأ`boolean passed = true;`
Stringنصًا`String name = "สมชาย";`

الشروط والحلقات

يحتوي المثال التالي على صنف `Student` يحدد التقدير من الدرجة، وحلقة `for` تمر على قائمة الطلاب.

import java.util.ArrayList;
import java.util.List;

public class Hello {
    static class Student {
        String name;
        int score;

        Student(String name, int score) {
            this.name = name;
            this.score = score;
        }

        String grade() {
            if (score >= 80) return "A";
            else if (score >= 70) return "B";
            else if (score >= 50) return "C";
            return "F";
        }
    }

    public static void main(String[] args) {
        System.out.println("สวัสดี Java");

        List<Student> students = new ArrayList<>();
        students.add(new Student("สมชาย", 85));
        students.add(new Student("สมหญิง", 72));
        students.add(new Student("สมศักดิ์", 45));

        int total = 0;
        for (Student s : students) {
            System.out.println(s.name + " ได้เกรด " + s.grade());
            total += s.score;
        }
        System.out.println("คะแนนเฉลี่ย: " + (total / students.size()));
    }
}

المخرجات الفعلية:

สวัสดี Java
สมชาย ได้เกรด A
สมหญิง ได้เกรด B
สมศักดิ์ ได้เกรด F
คะแนนเฉลี่ย: 67

لاحظ ما يلي:

أخطاء شائعة لدى المبتدئين

الخطوات التالية

جرّب كتابة آلة حاسبة صغيرة، وخزّن قائمة بيانات باستخدام `ArrayList`، وقسّم الكود إلى عدة أصناف في عدة ملفات، قبل الانتقال إلى تطوير الويب باستخدام Spring Boot.

الخلاصة

تُترجم لغة Java الكود المصدري ثم تُشغَّل على JVM. نقطة البداية هي الدالة `main`، والمتغيرات لها أنواع واضحة، والأصناف تنظّم البرنامج.