
הטקסט המלא של הדקות הראשונות בהרצאה «Variable Lifetime» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
קיימים שני מונחים מאוד מאוד חשובים בעולם הפונקציות ובהבנה של הפונקציות. המונח הראשון נקרא Lifetime והמונח השני נקרא Scope.
אנחנו הולכים בסרטון הזה לראות מה זה אומר Lifetime ובסרטון הבא מה זה אומר Scope. Lifetime זה פשוט ממתי עד מתי משהו חי. בדרך כלל כשמדברים על Lifetime מדברים על Variable Lifetime וזה מה שאנחנו הולכים לראות עכשיו.
מה זה אומר בדיוק Variable Lifetime? בואו נבנה כאן איזושהי פונקציה, נקרא לה f1 ובתוך הפונקציה נבנה int n. נגדיר ש-n שווה 1, 2, 3, נטיס את n בצורה כזאת ונקרא לפונקציה f1 שלוש פעמים.
אם אנחנו נריץ את זה אנחנו נראה ששלוש פעמים מוצג לנו n. מה זה אומר Lifetime? Lifetime זה אורך חיים. Variable Lifetime זה אורך חיים של משתנים והנקודה היא מהו אורך החיים של משתנה שמוגדר בתוך פונקציה.
n מוגדר בתוך פונקציה. אורך החיים של משתנה שמוגדר בתוך פונקציה הוא כאורך חיי פעילות הפונקציה. מה זה אומר? הפונקציה הרי נכתבה בתוך הפרוגרם והפונקציה כפונקציה, כקוד, חיה במשך כל התוכנית, אבל היא מתחילה לפעול רק כשאנחנו קוראים לה.
זאת אומרת שרק כשאנחנו קוראים לה הקוד שלה מתחיל לעבוד ורק אז Java יוצרת את המשתנה הזה בזיכרון. אז אורך החיים של המשתנה n הוא לא כאורך חיי התוכנית אלא כאורך חיי הפונקציה.
זאת אומרת, מתי הפונקציה מתחילה לפעול ומתי היא מסתיימת זה אורך חיי המשתנה n. מתי היא מתחילה לפעול? כאן קראתי לה בפעם הראשונה ולכן היא מתחילה להתבצע בדיוק בנקודה הזאת Java יוצרת את כל המשתנים שנמצאים בתוך הפונקציה.
משתנה שנמצא בתוך הפונקציה נקרא משתנה לוקאלי, כלומר מקומי, כי הוא מקומי רק לפונקציה הזאת. אז ברגע שהפונקציה f1 מתחילה להתבצע n נוצר בזיכרון, הוא מקבל את המספר 123, אנחנו עובדים איתו, וברגע שהפונקציה מסתיימת הוא נהרס.
זאת אומרת שפה רק בפקודה הזאת n נוצר פעם אחת ונהרס, בנקודה הזאת הוא נוצר ונהרס, כמובן הוא חי במשך כל הפעילות של הפונקציה, ובנקודה הזאת הוא שוב פעם נוצר, ובסיום הפונקציה הוא שוב פעם נהרס.
הדבר הזה תקף גם אם אנחנו משתמשים במשתנה שהפונקציה מקבלת לסוגריים, לדוגמה ארגומנט, בואו נציג גם את n ובואו נציג גם את x, נגדיר פה אפילו x שווה ונשרשר אליו את x במקום בשתי שורות, ואנחנו כמובן צריכים לשלוח את המשתנים לפונקציה.
בואו נשלח כאן 10, כאן 20 וכאן 30, נריץ ונראה שבכל הרצה יש לנו n ויש לנו x. אבל מתי הם נוצרים ומתי הם נהרסים? בפקודה הזאת x נוצר ו-n נוצר, הם חיים למשך פעילות הפונקציה, שזה יכול להיות ממש על פי השנייה, ואז הם נהרסים.
הזאת, שוב פעם x נוצר, יש לו ערך אחר ו-n נוצר, שוב פעם הכנסנו ל-1, 2, 3 הם חיים ונהרסים בסיום הפונקציה גם בפקודה השלישית, שוב פעם