الدوال في Java | Methods بشرح موسّع للمبتدئين

18:00 دقائق مجاني
شرح الدوال من الصفر: ما هي الدالة؟ لماذا نستخدمها؟ كيف ننشئ دالة؟ وكيف نمرّر لها قيمًا ونستقبل نتيجة؟

عندما يبدأ برنامجك بالنمو، ستلاحظ أنك تكرر نفس الكود في أكثر من مكان. مثلًا: طباعة رسالة ترحيب، أو حساب مجموع رقمين، أو التحقق من شرط معيّن.

هنا تأتي فائدة الدوال (Methods): الدالة هي “قطعة كود” نعطيها اسمًا، ثم نستدعيها وقتما نحتاج. بدل أن نكتب نفس الكود عشر مرات، نكتبه مرة واحدة فقط.

هذا يجعل البرنامج:

  • أوضح وأسهل في القراءة.
  • أسهل في التعديل لاحقًا (تعدل مرة واحدة فقط).
  • أقل أخطاء لأن التكرار يقل.

أبسط دالة: تنفّذ شيئًا ولا ترجع قيمة

هذه دالة بسيطة تطبع رسالة. لاحظ كلمة void: تعني أن الدالة لا تعيد نتيجة.

public static void sayHello() {
  System.out.println("مرحبًا بك في Java");
}

ولاستدعائها (تشغيلها) نكتب اسمها مع أقواس:

sayHello();

فكرة مهمة للمبتدئ: كتابة الدالة وحدها لا يعني أنها ستعمل. هي مثل “وصفة” محفوظة. لا تعمل إلا عندما تستدعيها.

دالة تستقبل مدخلات (Parameters)

أحيانًا تريد أن تغيّر ما تقوم به الدالة بحسب قيمة معيّنة. هنا نمرّر للدالة “مدخلات” تسمّى Parameters.

public static void greet(String name) {
  System.out.println("مرحبًا يا " + name);
}

الاستدعاء:

greet("أحمد");
greet("سارة");

لاحظ أن الدالة نفسها واحدة، لكن النتيجة تختلف لأن المدخل اختلف.

دالة ترجع قيمة (Return)

أحيانًا تريد من الدالة أن “تحسب” وتعيد لك الناتج. هنا لا نستخدم void، بل نكتب نوع النتيجة التي ستُرجعها الدالة (مثل int). ثم نستخدم كلمة return.

public static int sum(int a, int b) {
  return a + b;
}

الاستخدام:

int result = sum(5, 3);
System.out.println("الناتج: " + result);

قاعدة سهلة:

  • إذا كانت الدالة “تفعل شيئًا” فقط → غالبًا تستخدم void.
  • إذا كانت الدالة “تحسب وتعيد نتيجة” → استخدم نوعًا مناسبًا و return.

أين نضع الدوال؟ (داخل class)

في Java لا يمكن كتابة الدوال خارج الكلاس. لذلك عادة نكتبها داخل class، ثم نستدعيها من main.

مثال كامل بسيط:

public class Main {

  public static void sayHello() {
    System.out.println("مرحبًا");
  }

  public static int sum(int a, int b) {
    return a + b;
  }

  public static void main(String[] args) {
    sayHello();
    int x = sum(10, 20);
    System.out.println(x);
  }
}

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

  • تعريف الدالة داخل main (هذا خطأ): الدالة تكون بجانب main داخل class.
  • نسيان استدعاء الدالة ثم التساؤل لماذا لم يظهر شيء.
  • كتابة نوع إرجاع لا يطابق return، مثل دالة int تُرجع نصًا.
  • نسيان return في دالة لا نوعها void.

✅ ممتاز. الآن لديك أساس قوي: قرار (if) + تكرار (loops) + تنظيم (methods). في الدرس القادم سنبدأ عالم البرمجة الكائنية: ما هو Class وما هو Object بطريقة مبسطة جدًا.