رأس Method يوضح النتيجة: بعد public نكتب Return Type ثم الاسم وParameters بين الأقواس. مثل public int getDay()؛ هذه Method يجب أن ترجع قيمة int.
تطبع أو ترجع قيمة؟
Return Type, return & void
Return Type, return & void
الطباعة ليست return: return day; تعيد القيمة إلى موضع الاستدعاء. يمكن حفظها في متغير أو تمريرها إلى println. أما void فلا تعيد قيمة، حتى لو كانت تطبع على الشاشة.
مثال String: yourMethod تقرأ سطرًا باستخدام Scanner ثم ترجع النص مع " was entered.". في نشاطنا Scanner يقرأ النص المحدد داخل المثال بدل انتظار لوحة المفاتيح.
توضيح الصيغة المختصرة في الشريحة
العناوين المنتهية بـ; تعرض شكل Method فقط. Methods العادية الملموسة في أمثلتنا تحتاج جسمًا بين { }؛ لذلك نعطيك ملفات كاملة قابلة للترجمة.
تتبّع الكود سطرًا سطرًا
public class ReturnDemo {
public static void main(String[] args) {
ReturnExamples example = new ReturnExamples();
example.day = 31;
example.input = "Java";
System.out.println(example.getDay());
System.out.println(example.yourMethod());
example.writeOutput();
}
}public class ReturnExamples {
public int day;
public String input;
public int getDay() { return day; }
public String yourMethod() {
java.util.Scanner keyboard = new java.util.Scanner(input);
String result = keyboard.nextLine();
return result + " was entered.";
}
public void writeOutput() {
System.out.println("Day: " + day);
}
}خلّنا نمشي على المثال
- ضبطنا day على 31 وinput على Java.
- أعادت getDay القيمة 31 فطبعتها println في main.
- أعادت yourMethod النص Java was entered. فطبعه main أيضًا.
- استدعينا writeOutput مباشرة؛ هذه void وتطبع Day: 31 من داخلها.
لا تكتب System.out.println(example.writeOutput()); إذا كانت writeOutput من نوع void. ليس هناك قيمة يمكن طباعتها من هذا الاستدعاء.
غيّر القيم وشوف النتيجة
غيّر day ونص Scanner، وقارن Methods الثلاث في ReturnExamples.java: واحدة ترجع int، وأخرى String، والثالثة void.
محاكاة لهذا المثال المحدد، وليست تشغيلًا لكود Java عشوائي.