» נושאי לימוד
» נושאי לימוד
יום שני 29 באפריל 2024
מתודת ()main
דף ראשי  מתחילים  מתודת ()main גרסה להדפסה

מתודת main()

 

 

- מבוא

- הקדמה

- main() מתודת ב‑Java

- main() פונקציית ב‑++C

- שאלות סיכום

 


 

   מבוא

סטודנטים בקורס הקדמה לתכנות Java אחראים לידיעת והבנת כל החומר בשעור זה
(חוץ מנושאים ספציפיים ב –
C++).

הנושאים הספציפיים ב – C++ מוצעים כחומר משלים לטובת אלו שמכירים כבר C++
ומבצעים הסבה ל –
Java.

  הקדמה  

מתודת main()

 

מתודת main חייבת להיכלל במחלקה השולטת של אפליקציות Java. גם תוכניות ++C
עצמאיות מחייבות פונקציית
main.

 

main() מתודת    ב‑Java

 

 

ההצהרה של מתודה

 

הספרות מתייחסת לעתים תכופות להצהרה של מתודה.

 

Exploring Java מאת Patrick Niemer & Joshua Peck (O’Reily), מביא את ההגדרה הבאה עבור ההצהרה של מתודה:

 

"ההצהרה של מתודה הינו אוסף של מידע לגבי המתודה, בדומה לאבטיפוס ב‑C,
או להצהרת פונקציה מקדימה בשפות אחרות. היא כוללת את שם המתודה, טיפוס המתודה ויכולת הגישה למתודה, כמו גם את הארגומנטים שלה ואת הטיפוס המוחזר."

 

 

טיפוס

 

נראה שההגדרה לעיל מתייחסת לטיפוס המתודה מבחינת האבחנה בין static ל‑non-static

(ספרות אחרת מתייחסת לטיפוס של פונקציה כאל הטיפוס המוחזר, שעל-פי ההגדרה לעיל מהווה חלק נפרד של ההצהרה).

 

יכולת הגישה למתודה

 

נראה גם, שהשימוש במושג זה בהגדרה לעיל, מתייחס לשימוש ב‑public, private וכו'.

 

בשורה התחתונה לגבי ההצהרה של מתודה

 

ניתן לראות את ההצהרה של מתודה כאילו היא מספקת את כל המידע הקיים לגבי ה‑interface למתודה. במילים אחרות, היא מספקת את כל המידע הנחוץ למשתמש על מנת שיוכל להפעיל את המתודה.

 

ההצהרה של מתודת main()

 

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

 

public static void main(String[] args)
public static void main(String args[])

 

public

 

מילת המפתח public מציינת שכל אובייקט יהיה מסוגל לקרוא למתודה. בשיעורים הבאים ידונו מילות המפתח public, private, protected בפירוט.

 

static

 

מילת המפתח static מציינת שהמתודה היא מתודת-מחלקה, וניתן לקרוא לה מבלי ליצור אובייקט של המחלקה. דבר זה משמש את המפענח של Java על מנת לשגר את התוכנית באמצעות הפעלת מתודת main של המחלקה שהוגדרה בפקודה להרצת התוכנית.

 

void

 

מילת המפתח void מציינת שהמתודה אינה מחזירה ערכים כלשהם.

 

args

 

הפרמטר הפורמלי args הוא מערך מטיפוס String, המכיל את הארגומנטים שהוכנסו בשורת הפקודה. יש לשים לב שהפרמטר args חייב להיות מוגדר, בין אם המשתמש נדרש להכניס ארגומנט בשורת הפקודה ובין אם לא, וכמו-כן ללא קשר לעובדה, האם הקוד בתוכנית עושה שימוש ממשי בארגומנט.

 

מאפיין length

 

ב‑Java, args הוא אובייקט מערך אמיתי. אובייקטים של מערך הם בעלי מאפיין בשם length.

 

מערכת זמן הריצה עוקבת אחר הכנסת ארגומנטים על-ידי המשתמש בשורת הפקודה, ומרכיבה את המערך String, שמכיל את הארגומנטים הללו.

 

עיבוד ארגומנטים משורת הפקודה

 

ניתן להשתמש במאפיין args.length באמצעות הקוד בתוכנית על מנת לקבוע את מספר הארגומנטים, שהוכנסו למעשה בידי המשתמש.

 

אם מערך המחרוזות מכיל נתונים, המחרוזת הראשונה בו תואמת לארגומנט הראשון
(ולא לשמה של התוכנית, כמו ב‑++
C).

 

ארגומנטים משורת הפקודה, וכן מחרוזות ומערכי String ידונו באחד השיעורים הבאים.

 

main() פונקציית ב‑++C

 

פונקציית main בתוכנית ++C עשויה להיות בעלת אחת משתי ההצהרות הבאות:

 

return-type main()
return-type main(int argc, char *argv[])

 

הטיפוס המוחזר עשוי להיות כל טיפוס חוקי או void, המציין כי הפונקציה אינה מחזירה ערכים כלשהם. רשימת הארגומנטים עשויה להיות ריקה, או שהיא עשויה להכיל את הארגומנטים התומכים בארגומנטים משורת הפקודה.

 

הארגומנט int args משמש את מערכת ההפעלה על מנת להעביר ערך integer,
המציין את מספר הארגומנטים שהוכנסו בידי המשתמש משורת הפקודה.

 

הארגומנט char *argv[] מעביר מחוון למערך מחוונים מטיפוס char. כל אחד מן המחוונים שבמערך מצביע על מחרוזת בזיכרון שמסתיימת ב‑NULL,
שהיא הארגומנט שהוכנס בידי המשתמש בשורת הפקודה. המחוון בעל האינדקס 0 מצביע על מחרוזת המכילה את שם התוכנית (או, במערכות מסוימות, זבל). מחוון בעל הציון 1 מצביע על הארגומנט הממשי הראשון משורת הפקודה.

 

השמות הניתנים לארגומנטים הם שמות מקובלים, אך אינם מחייבים.

 

 

שאלות סיכום

 

ש: כתוב את ההצהרה עבור מתודת main באפליקציית Java.

 

ת: public static void main(String[] args)

 

ש: הסבר בקצרה מדוע מתודת main באפליקציות Java מוצהרת כ‑public.

 

ת: מילת המפתח public מציינת שכל אובייקט יוכל לקרוא למתודה.

 

ש: הסבר מדוע מתודת main באפליקציות Java חייבת להיות מוצהרת כ‑static.

 

ת: מילת המפתח static מציינת שהמתודה היא מתודת-מחלקה, וניתן לקרוא לה מבלי ליצור
    אובייקט   של המחלקה. דבר זה משמש את המפענח של
Java על מנת לשגר את התוכנית
    באמצעות הפעלת מתודת
main של המחלקה שהוגדרה בפקודה להרצת התוכנית.

 

ש: לאיזו מטרה מיועדת מילת המפתח void כאשר היא משמשת בתור הטיפוס המוחזר עבור
     מתודת
main?

 

ת: כאשר מילת המפתח void משמשת בתור הטיפוס המוחזר עבור מתודות Java מסוג כלשהו,
    הדבר מציין שהמתודה אינה מחזירה כל ערכים.

 

ש: בהנחה שאפליקציית Java אינה מיועדת לשימוש בארגומנטים משורת הפקודה,
    האם (כמו ב‑++
C) אין צורך לכלול את הפרמטר הפורמלי עבור מתודת main,
    שהוא מערך מטיפוס
String?

 

ת: לא. אף על פי ש‑++C מאפשרת לפסוח על רשימת הארגומנטים הפורמליים במתודת main
  
 (כזו שאינה מיועדת לתמוך בארגומנטים משורת הפקודה), מתודת main בתוכנית Java חייבת
    תמיד לספק את רשימת הארגומנטים הפורמליים, ללא קשר לכך אם נעשה בהם שימוש ממשי
    בתוכנית.

 

ש: כאשר משתמשים ב‑Java בארגומנטים משורת הפקודה, ושמו של מערך String הוא args
    האם ניתן להשתמש במשתנה
args.length בקוד של התוכנית על מנת לקבוע את מספר 
    הארגומנטים, שהוכנסו בידי המשתמש?

 

ת: כן.

 

ש: האם המחרוזת הראשונה במערך של הארגומנטים משורת הפקודה מכילה ב‑Java, כמו ב‑++C,
     את שמה של האפליקציה?

 

ת: לא. בניגוד ל‑++C, המחרוזת הראשונה במערך הארגומנטים משורת הפקודה באפליקציית Java,
    אינה מכילה את שמה של האפליקציה.

 

ש: המחלקה השולטת של כל אפליקציות Java חייבת לכלול את מתודת main. האם מחלקות אחרות
    באותה אפליקציה עשויות לכלול גם-כן מתודת
main? אם לא, מדוע לא?
    אם כן, לשם מה זה נחוץ?

 

ת: כן. לעתים קרובות רצוי לספק מתודת main עבור מחלקה שלא תהיה, בסופו של דבר, המחלקה
    השולטת של האפליקציה, וזאת כדי להעניק את האפשרות לבחון את המחלקה
    ב‑
stand-alone mode, באופן שאינו תלוי במחלקות אחרות.

 

 17-12-03 / 19:19  נוצר ע"י רונית רייכמן  בתאריך 
 הגדרת מחלקות - הקודםהבא - שימוש במחלקות System ו‑PrintStream 
תגובות הקוראים    תגובות  -  0
דרכונט
מהי מערכת הדרכונט?
אינך מחובר, להתחברות:
דוא"ל
ססמא
נושאי לימוד
חיפוש  |  לא פועל
משלנו  |  לא פועל
גולשים מקוונים: 7