מילון מושגים:
שורת פקודה - ממשק טקסטואלי שבו מקלידים פקודות למערכת ההפעלה ומקבלים תגובה בטקסט, במקום להשתמש בעכבר.
מערך - מבנה נתונים שמאחסן אוסף ערכים מאותו סוג ברצף, שאפשר לגשת אליהם לפי מספר מיקום (אינדקס).
מחרוזת - סוג נתונים שמייצג רצף של תווים, כלומר טקסט, ומשמש לאחסון מילים, משפטים או כל רצף סימנים.
פרמטר - ערך שמועבר לפונקציה או לפקודה כקלט, ומשפיע על אופן פעולתן ועל התוצאה שהן מחזירות.
ספרייה - אוסף קוד מוכן, כמו פונקציות ומחלקות, שמפתחים משתמשים בו בתוכניותיהם במקום לכתוב הכול מחדש.
The main Arguments
בשיעור זה לומדים מהם הארגומנטים של פונקציית הראשית, איך מציגים אותם, איך שולחים אליהם ערכים משורת הפקודה, בונים מחשבון קטן שמקבל שני מספרים מבחוץ, ורואים כיצד להדמות זאת מתוך סביבת הפיתוח.
נושאי הסיכום המוצגים בשיעור:
1. מה הם הארגומנטים האלה: אחרי שראינו שאפשר לייצר מהאפליקציה שלנו קובץ jar ולהריץ אותו חיצונית, בואו נבין מה הם הארגומנטים שנשלחים ל-main, והארגונטים האלה הם מערך מחרוזות שניתן לשלוח מחוץ לתוכנית כאשר מפעילים את התוכנית, לדוגמה על ידי קובץ jar ניתן להרצה.
2. הצגת הפרמטרים: נניח שרוצים עכשיו להציג את הפרמטרים האלה, לוקחים מחרוזת הודעה שמכילה את אורך המערך, כדי לראות קודם כל כמה פרמטרים יש, ולאחר מכן רצים בלולאת foreach על כל איבר מהמערך, ורוצים לגשת להודעה, לשרשר ירידת שורה ולשרשר את האיבר עם סימן שוויון, ובסוף להציג את זה בחלונית ההודעה של הספרייה, כי אנחנו הולכים להריץ את זה כקובץ jar ניתן להרצה ולא תהיה לנו שם גישה לקונסולה, עם הערך שאינו בשימוש, את ההודעה, את הכותרת שלנו, אפילו אפשר להשאיר כותרת ריקה, ואת הקבוע שמציין הודעת מידע.
3. הרצה ראשונה בלי פרמטרים: קודם כל אם מריצים את התוכנית דרך סביבת הפיתוח בצורה הרגילה מקבלים שאורך המערך הוא אפס, כי אין שום תוכנית אחרת שפנתה אלינו ושלחה לנו ארגונטים, ואנחנו צריכים עכשיו לייצר jar שהוא ניתן להרצה, עושים ייצוא, בוחרים בג'אווה את הקובץ jar הניתן להרצה, ממשיכים, שומרים אותו בשולחן העבודה, בוחרים רק את התוכנית שלנו, קוראים לה בשם שמתאר הצגת פרמטרים, מסיימים, ניגשים לשולחן העבודה ויש לנו פה את קובץ ה-jar, ואם לוחצים עליו לחיצה כפולה שוב פעם מקבלים שאורך המערך הוא אפס כי איפה בדיוק שלחנו פרמטרים.
4. שליחת פרמטרים משורת הפקודה: איך אפשר לשלוח פרמטר לתוכנית, אפשר לעשות את זה על ידי שורת הפקודה, פותחים את חלון ההרצה עם הפקודה המתאימה, ניגשים לשולחן העבודה ויש לנו את הקובץ, ואם מריצים אותו בצורה כזאת שוב פעם לא שלחנו אליו פרמטרים, אבל אם רושמים פה רווח ואז רושמים את הפרמטרים שרוצים, לדוגמה כמה מילים, רואים שאלה הפרמטרים שנשלחו, יש לנו ארבעה פרמטרים ששלחנו, ואם רוצים שביטוי עם רווחים יהיה פרמטר אחד אז צריכים לעטוף אותו במרכאות, ואז הוא הופך להיות פרמטר אחד ויחיד, וכך רואים שהתוכנית שלנו יכולה לקבל ערכים ולבצע איתם פעולות.
5. למה בכלל לשלוח דבר כזה: אבל למה לנו לשלוח דבר כזה, אז בואו נייצר תוכנית אחרת שכן יש לה איזושהי משמעות מסוימת לפרמטרים שהיא מקבלת, ונניח שמבצעים מיני מחשבון כזה, שכל מה שהוא יודע לעשות זה חיבור בין שני מספרים.
6. בניית המחשבון: מוסיפים את מחלקת התוכנית, מגדירים בה את החבילה המעטפת הרגילה, מגדירים את ה-main ויודעים שמצפים לקבל שני מספרים שמגיעים לארגונטים, ולוקחים מספר שלם ראשון ששווה להמרה למספר שלם של האיבר הראשון במערך, כי האיבר במקום אפס הוא מחרוזת, ולוקחים את השני במקום אחד, ויש לנו עכשיו שני ערכים, מגדירים סכום שהוא הראשון ועוד השני, ולבסוף מציגים בחלונית ההודעה את הסכום שלהם, עם הערך שאינו בשימוש, את הסכום עצמו בתוכן ואת הכותרת שלו, ולבסוף את הקבוע שמציין הודעת מידע, ומשרשרים את זה עם איזו מחרוזת שזה יהיה בטוח מחרוזת.
7. הבעיה של הקריסה: עכשיו רוצים לבדוק את התוכנית, ואם מריצים אותה בצורה כזאת כמובן שמקבלים קריסה, מפני שאין לנו שום ארגונט במקום הראשון, הרי הארגונטים ריקים לגמרי, ובעצם צריכים לשלוח פרמטרים, ואפשר אפילו לבצע בדיקה אם אורך המערך שונה משניים, לא משנה למה, לחזור ולא לבצע שום דבר ב-main, וזה בעצם חוסך לנו את הקריסה הזאת אם לא שלחו לי שום דבר.
8. הרצת המחשבון עם פרמטרים: יוצרים מהתוכנית הזאת קובץ jar ניתן להרצה, עושים ייצוא, ממשיכים, בוחרים את הפרויקט של המחשבון הקטן, מגדירים שהשם שלו יהיה השם המתאים, מסיימים, ניגשים לקובץ והנה יש לנו אותו, ואז מזינים בשורת הפקודה את שם הקובץ עם רווח עשר רווח עשרים, והנה יש לנו את הסכום שלושים, ואם שולחים בצורה אחרת בלי פרמטרים לא קורה שום דבר בגלל הבדיקה, ואם שולחים שלושה מספרים יש יותר מדי, ונותנים לו איזה מאה ומאתיים ורואים שהוא עובד כמו שצריך, שלוש מאות, ויש לנו כאן איזשהו מיני מחשבון שאפשר להפעיל דרך שורת הפקודה.
9. מתי זה הגיוני: אז רק אם התוכנית שלנו בעצם צריכה לעבוד דרך שורת הפקודה זה יהיה הגיוני לבצע דבר כזה ולקבל מבחוץ ארגונטים, בדרך כלל, ולא משהו שאנחנו עושים בתוכנית, אבל יש תוכניות שזה ניתן לביצוע.
10. ההדמיה מתוך סביבת הפיתוח: דבר נוסף, כל פעם שרוצים לבדוק אם התוכנית עובדת או לא היינו צריכים לייצר קובץ jar ניתן להרצה, לצאת החוצה ולהריץ אותו דרך שורת הפקודה, אבל מה קורה אם רוצים לבדוק את זה מתוך סביבת הפיתוח, אז גם כאן יש לנו את האפשרות לעשות את זה, אנחנו יכולים להגיד לסביבה לבצע הדמיה ולשלוח לנו לכאן איזה ערכים שרוצים.
11. הגדרת הארגונטים בהגדרות הרצה: זה מתבצע על ידי הגדרות הרצה, פונים לכרטיסיית הארגונטים וכאן כותבים את הארגונטים שרוצים לשלוח, לדוגמה שישלחו מאה עשרים ומאתיים וארבעים, עושים הרצה, התוכנית רצה, והנה יש לנו שלוש מאות ושישים, וכל פעם שמריצים את זה עכשיו מקבלים את אותם ערכים.
12. שינוי הערכים והבדיקה: עוברים שוב להגדרות ההרצה, לארגונטים, ובואו נשנה את זה לשבע מאות, עושים החלה וסגירה, אנחנו לא חייבים להריץ את זה מההגדרות, ועכשיו אם מריצים רואים שמונה מאות ועשרים, שזה בעצם מה ששלחנו, וזאת הייתה הדמיה איך אפשר להגיד לסביבת הפיתוח, הדמה לנו כאילו שולחים לנו ארגונטים מחוץ לתוכנית.
13. המסקנה הכללית: אז אם כותבים אפליקציה שאמורה לרוץ דרך שורת הפקודה, שאמורים להריץ אותה מבחוץ ולשלוח לה ארגונטים, יש לנו אפשרות לקבל את הארגונטים כאן במיין ארגומנטס.
סיכום:
בשיעור זה הבנו שהפרמטר השנוי במחלוקת של פונקציית הראשית הוא מערך מחרוזות שמקבל ערכים מבחוץ בזמן ההפעלה, ראינו שהרצה רגילה מחזירה מערך ריק, שאפשר לשלוח ערכים בשורת הפקודה עם רווחים ביניהם ומרכאות לערך מרובה מילים, בנינו מחשבון קטן שממיר את שני הערכים למספרים ומחזיר את סכומם עם הגנה מקריסה כשהמערך אינו מלא, וגילינו שאפשר להדמות ארגונטים בהגדרות ההרצה של סביבת הפיתוח בלי לייצר את הקובץ כל פעם.
בשיעור הבא נעסוק בנושא תרגול על קבצי JAR.
SR11171HE