מבנה כללי של פעולה סטטית

כל פעולה סטטית כוללת את המילה static, טיפוס החזרה (או void), שם, ורשימת פרמטרים:

public static <טיפוס_החזרה> שם_הפעולה(<פרמטרים>) {
    // גוף הפעולה
}

פעולה שאינה מחזירה ערך (void)

פעולה מסוג void מבצעת משימה (הדפסה, שינוי וכו') אך לא מחזירה תוצאה לקוד הקורא. לא משתמשים ב-return עם ערך.

public static void printHello(String name) {
    System.out.println("שלום " + name + "!");
}

קריאה לפעולה:

printHello("דני");  // ידפיס: שלום דני!

פעולה מחזירה ערך (return)

פעולה שמחזירה ערך חייבת לציין את טיפוס ההחזרה (int, double, boolean, String וכו') ולהשתמש ב-return כדי להחזיר את התוצאה.

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

public static boolean isEven(int num) {
    return num % 2 == 0;
}

קריאה לפעולה – חובה לקלוט את הערך המוחזר (למשתנה, להדפסה, או כפרמטר לפעולה אחרת):

int result = sum(3, 7);       // result = 10
System.out.println(sum(2, 5)); // ידפיס 7

if (isEven(4)) {
    System.out.println("זוגי");
}

פעולה מקבלת עצם כפרמטר

פעולה יכולה לקבל עצם (אובייקט) כפרמטר. למשל, אם יש לנו מחלקה Student עם שדות name ו-grade:

public static void printStudent(Student s) {
    System.out.println(s.getName() + ": " + s.getGrade());
}

public static boolean isPassing(Student s) {
    return s.getGrade() >= 56;
}

כשמעבירים עצם לפעולה, מועברת הפנייה (reference) לעצם – שינויים בשדות העצם בתוך הפעולה ישפיעו גם מחוץ לה.

פעולה מחזירה עצם

פעולה יכולה גם להחזיר עצם. טיפוס ההחזרה הוא שם המחלקה:

public static Student createStudent(String name, int grade) {
    Student s = new Student(name, grade);
    return s;
}

קריאה:

Student st = createStudent("יוסי", 90);
System.out.println(st.getName()); // ידפיס: יוסי

דוגמה מתקדמת יותר – פעולה שמחפשת תלמיד עם הציון הגבוה ביותר במערך ומחזירה אותו:

public static Student bestStudent(Student[] arr) {
    Student best = arr[0];
    for (int i = 1; i < arr.length; i++) {
        if (arr[i].getGrade() > best.getGrade())
            best = arr[i];
    }
    return best;
}

סיכום – טבלת השוואה

סוג הפעולהטיפוס החזרהreturnדוגמה
אינה מחזירה ערךvoidללא (או return; ריק)printHello("דני")
מחזירה ערך פרימיטיביint, boolean וכו'return ערך;int x = sum(3,7)
מקבלת עצםכל טיפוסתלוי בפעולהisPassing(student)
מחזירה עצםשם מחלקהreturn עצם;Student s = create(...)

שאלות נפוצות

מתי להשתמש ב-void ומתי בפעולה מחזירה ערך?

אם הפעולה צריכה לייצר תוצאה שהקוד הקורא צריך להשתמש בה – השתמשו ב-return. אם הפעולה רק מבצעת משימה צדדית (כמו הדפסה) – השתמשו ב-void.

מה קורה אם לא כותבים return בפעולה שמחזירה ערך?

שגיאת קומפילציה! Java דורש שכל מסלול אפשרי בפעולה יסתיים ב-return עם ערך מהטיפוס המוצהר.

האם אפשר לשנות עצם שמועבר כפרמטר?

כן. כשמעבירים עצם לפעולה, מועברת הפנייה (reference). שינויים בשדות העצם ישפיעו על העצם המקורי. אבל לא ניתן להחליף את העצם עצמו (ההפנייה היא לפי ערך).

צריכים עזרה בתכנות Java?

מורים פרטיים ילמדו אתכם פעולות, מחלקות ותכנות מונחה עצמים.

מצאו מורה פרטי