CodeGym /בלוג Java /Random-HE /רמה ישנה 02
John Squirrels
רָמָה
San Francisco

רמה ישנה 02

פורסם בקבוצה

CodeGym – לימוד תכנות ב-Java

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

1 אימון הוא משחק מקוון

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

2 רק הדברים החיוניים ביותר

כדי שהקורס לא יימשך 5 שנים, זרקתי את כל השימושים והשארתי ממנו רק את רוב הדברים הנחוצים. ניתחתי עשרות משרות פנויות בשוק העבודה. כל הנושאים שמתחילים צריכים לדעת כדי לקבל משרת Java Junior Developer כלולים בקורס.

3 ניגשתי ביסודיות לאימון שלך

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

4 אתה לא יכול לסיים את המשחק ולא להפוך למפתח

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

5 הכנה לראיון עבודה ממוקד מטרה

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

6 אתה יכול לפתור משימות ישירות באתר

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

7 בדיקת משימות מיידית (בפחות משנייה)

מכירים סיטואציה, כאשר העברת משימה/עבודה לבדיקה, ונאלצתם לחכות לתוצאות שבוע, כי מי שבודק עסוק? זה בדיוק המקרה ברוב הקורסים הלא מקוונים. ב-CodeGym תקבלו תוצאות של קומפילציה ובדיקה של פתרון המשימות שלכם תוך פחות משנייה, לאחר לחיצה על כפתור «ביצוע/בדוק».

8 CodeGym אוהב את זה כשאתה מבלה בפייסבוק במהלך הלימודים

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

9 כיסוי

בהרצאות ישנן הפניות רבות לאתרי אינטרנט שונים, בהם ניתן לקרוא הסברים של מרצים אחרים. המטרה שלי היא שתבינו את החומר, לא תקשיבו רק לי.

10 תצטרך רק את המוח והמחשב שלך כדי להפוך למפתחים

זה ייקח לך 3 עד 6 חודשים, תלוי כמה זמן אתה מתאמן.

11 תמיכה

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

12 קהילה

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

הגעת לרמה חדשה

שלב 2

רמה ישנה 02 - 4

1 אלי, הבסיס לכל

היי, אמיגו. היום אני רוצה לספר לכם איך בנויה תוכנית ג'אווה טיפוסית . הנקודה היא שכל תוכנת Java מורכבת ממחלקות ואובייקטים . אני כבר יודע מה זה שיעורים. ומה הם חפצים? - באנלוגיה לבניית ספינה קטנה, ראשית, אתה צריך לעשות ציור, ולאחר מכן לתת אותו למספנה. על סמך ציור זה תורכב ספינה. או חמש ספינות. למעשה, כמה שתרצה. עשרות ספינות זהות בנויות על פי ציור אחד, על זה מדובר! - כל הדברים בתכנות ג'אווה זהים לחלוטין. - המתכנת הוא כמו מהנדס עיצוב. ואם מהנדס התכנון צריך לעשות שרטוטים, מתכנת הג'אווה צריך לכתוב שיעורים. לאחר מכן, חלקים נעשים על סמך השרטוטים, ואובייקטים נעשים על סמך מחלקות. - ראשית, אנו כותבים מחלקות (עורכים שרטוטים), ובהמשך בזמן ריצה של התוכנית, ה-Java Virtual Machine יוצר אובייקטים באמצעות מחלקות אלה. בדיוק באותו אופן מייצרים ספינות. יש ציור אחד והרבה ספינות. ישנם כלי שייט שונים בעלי שמות שונים ונושאים מטענים שונים. עם זאת, הם מאוד דומים: לכולם יש את אותו מבנה ויכולים לבצע את אותן משימות. - במקרה של הספינות, הכל ברור. תן לי עוד כמה השוואות כדי להבין בדיוק על מה מדובר? - בטוח. למשל, דבורים... רמה ישנה 02 - 5- אוי לא, חכה רגע, דבורים מזכירות לי משהו רע. תחשוב טוב יותר על תל נמלים. - תל נמלים הוא דוגמה טובה לאינטראקציה בין אובייקטים. באלול הנמלים הפשוט ביותר, ישנם שלושה מחלקות של נמלים: מלכה, חיילים ונמלים פועלות. יש הבדל במספר הנמלים לכל מחלקה. המלכה לבדה בקן; יש עשרות חיילים ומאות נמלים עובדות. אז, אנחנו יכולים לומר, יש שלוש מחלקות ומאות אובייקטים. נמלים מתקשרות ביניהן, עם אותן נמלים ונמלים ממעמדות אחרים לפי כללים נוקשים. - זו דוגמה מושלמת. עבור תוכנית טיפוסית, הכל אותו דבר. אובייקט ראשי יוצר אובייקטים של כל המחלקות האחרות. האובייקטים מתחילים ליצור אינטראקציה זה עם זה ו"העולם החיצוני" של תוכנית. התנהגותם של אובייקטים מקודדת בתוכם. - אני לא כל כך מבין. יותר נכון, לא מבין בכלל. - שני ההסברים הללו הם הצדדים השונים של אותו מטבע. האמת נמצאת איפשהו באמצע. הדוגמה הראשונה (זו עם ציור וספינות) מציגה את היחס בין המחלקה לאובייקטים של מחלקה זו. הדמיון קרוב מאוד. הדוגמה השנייה (זו עם תל הנמלים) מציגה את הקשר בין מחלקות כתובות לאובייקטים שקיימים בזמן הריצה. - האם אתה מתכוון שקודם כל צריך לכתוב מחלקות לכל האובייקטים הקיימים בתוכנית ומה יותר, לתאר את האינטראקציה שלהם? כן, אבל זה קל יותר ממה שזה נראה. ב-Java, כל הדברים בזמן ריצה של התוכנית הם אובייקטים, וכאשר אתה כותב את התוכנית, אתה צריך לתאר דרכים שונות של אינטראקציה עם אובייקט. אובייקטים פשוט קוראים לשיטות אחד של השני ומעבירים להם את הנתונים הדרושים. - זה לא ברור, אבל כמעט ברור. - אבל איך אתה יודע לאילו שיטות לקרוא ואיזה נתונים אתה צריך להעביר לשיטות? - לכל מחלקה יש את התיאור שלה כדי לציין בשביל מה נוצרה המחלקה. לכל שיטה יש גם את התיאור שלה מה היא עושה ואיזה נתונים יש לשלוח אליה. כדי להשתמש בכיתה, אתה צריך לדעת באופן כללי מה הוא עושה. חוץ מזה, אתה צריך לדעת בדיוק מה עושה כל שיטה במחלקה הזו. אבל אתה לא צריך לדעת איך זה נעשה . זה סוג של קסם. - האמפ. נשמע כך.   - הנה, תסתכל על קוד כיתתי שמעתיק קובץ: רמה ישנה 02 - 6- זה לא כל כך קל, אבל אני כבר מבין את התמונה. - בסדר גמור. נתראה מאוחר יותר, תנין!

2 רישא, משתנים וטיפוסים פרימיטיביים

היי אתה, עבודה חינם. אני מתכוון, "היי, אמיגו". אני רוצה להכיר לך את המבנה הפנימי של משתנים. אתה כבר יודע שלכל משתנה יש פיסת זיכרון הקשורה אליו, שבה המשתנה מאחסן את הערך שלו. - כן. אמרת את זה בפעם הקודמת. - בסדר גמור. טוב שאתה זוכר את זה. ואז אני אמשיך. - שיעורים . כאשר אנו מתארים מחלקה חדשה בתוכנית, משמעות הדבר היא שאנו מכריזים על סוג מורכב חדש , שהנתונים יהיו סוגים מורכבים אחרים או טיפוסים פרימיטיביים. רמה ישנה 02 - 7- זה עדיין ברור לפלא. - מאחר וסוגים גדולים (מורכבים) מורכבים מהרבה קטנים (פרימיטיביים), האובייקטים שלהם משתמשים בזיכרון רב. יותר ממה שעושים משתני הסוג הפרימיטיביים הרגילים. לפעמים הרבה יותר. הקצאת משתנים מסוגים מורכבים ארכה זמן רב והצריכה העתקה של כמויות גדולות של זיכרון. זו הסיבה שמשתני סוג מורכבים מאחסנים לא את האובייקט עצמו, אלא רק הפניה לאובייקט (כלומר כתובת של ארבעה בתים). זה מספיק כדי לגשת לנתוני האובייקט. JVM לוקחת על עצמה את כל הקשיים הקשורים לכך. - אני לא מבין. - כבר דנו בכך שהמשתנה הוא כמו קופסה. כדי לאחסן בו 13, אתה יכול לכתוב את המספר על דף נייר ולשים אותו בקופסה. - עכשיו דמיינו שאתם צריכים לאחסן בקופסה (משתנה) משהו קצת יותר גדול. למשל, כלב, מכונית או השכן שלך ג'ו. כדי לפשט, אתה יכול לעשות דבר קל: לשים את תמונת הכלב במקום הכלב, את לוחית המספר של המכונית במקום המכונית, ואת מספר הטלפון של ג'ו כתוב על דף נייר במקום ג'ו עצמו. - עכשיו אנחנו לוקחים פיסת נייר וכותבים עליה את מספר הטלפון של ג'ו. זה כמו הפניה לאובייקט. אם נוציא מהקופסה גיליון כתוב עליו מספר של ג'ו, ניצור עותקים ונכניס כמה קופסאות, הפניות לג'ו יגדלו, אבל יכול להיות רק ג'ו אחד. - היתרון של אחסון נתונים כזה הוא שיכולות להיות הפניות רבות ורק אובייקט אחד . - זה מרגש. אגב, כמעט הבנתי. ענה רק על שאלה נוספת: מה קורה אם אני מקצה משתנה מסוג מורכב למשתנה מסוג מורכב אחר? - אז שני המשתנים האלה יכילו את אותה כתובת. ולפיכך, אם תשנה את הנתונים המאוחסנים במשתנה מסוג מורכב אחד, הנתונים של השני ישתנו גם הם . כי אתה יודע , באמת יש רק אובייקט אחד שהמשתנים מאחסנים הפניות אליו. עם זאת, עשויים להיות הרבה מאוד משתנים המאחסנים הפניות לאובייקט. - ומה מאוחסן במשתני טיפוס מורכבים (סוג הפניה/מחלקה) בזמן שאין הפניות לאובייקט? האם באמת יכול להיות דבר כזה? כן, אמיגו. הוצאת לי את המילים מהפה. זה יכול להיות. אם אין הפניה לאובייקט במשתנה סוג הפניה (מורכב), הוא מאחסן את null , "הפניה אפסית" מיוחדת. למעשה, הוא פשוט מאחסן את הכתובת של אובייקט השווה ל-0. אבל Java Virtual Machine אף פעם לא יוצרת אובייקטים עם כתובת אפס, ולכן היא תמיד יודעת שאם משתנה ההתייחסות הוא 0, אז אין שם אובייקט. רמה ישנה 02 - 8האם אני מבין נכון? המשתנים מתחלקים לשני סוגים - פרימיטיבי והתייחסות. משתנה מסוג פרימיטיבי מאחסן ערך בעוד שמשתנה מסוג הפניה מאחסן הפניה לאובייקט. טיפוסים פרימיטיביים הם int, char, בוליאני ועוד כמה. השאר הם משתני התייחסות, הם נוצרים באמצעות מחלקות. - נכון, ילד.

3 אלי, מה הם חפצים

רמה ישנה 02 - 9- הנה שוב המורה האהוב עליך. מכיוון שאנחנו מתקדמים מהר, אני אגיד לכם מה הם חפצים ואיך מתמודדים איתם. - כדי ליצור אובייקט כלשהו, ​​עליך לכתוב את שם סוג האובייקט (מחלקה) ואת מילת המפתח new לפניו. נניח שיש לנו מחלקה Cat, אז: רמה ישנה 02 - 10- מה קורה אם אתה רק יוצר אובייקט ולא מקצה אותו [ההפניה שלו] לשום משתנה? - אם תעשה זאת, Java Virtual Machine תיצור את האובייקט ותכריז עליו מיד כזבל (אובייקט שאינו בשימוש). לאחר זמן מה, הוא ימחק את האובייקט במהלך איסוף האשפה. - איך אני יכול להרוס את החפץ אם אני כבר לא צריך אותו? - אתה לא יכול. ברגע שאין משתנה לאחסון הפניה לאובייקט, האובייקט יסומן כזבל ו-JVM ישמיד אותו במהלך איסוף האשפה הבא. כל עוד יש התייחסות אחת לאובייקט, היא תיחשב פעילה ולא תהרוס. כאשר אתה רוצה להרוס במהירות את האובייקט, הגדר את כל ההפניות שלו ל-null, כלומר, הקצה ערך null לכל המשתנים שמתייחסים לאותו אובייקט. - הבנת. זה נראה לא קשה בכלל אחרי הרצאות קודמות. - אוקיי, אז הנה כמה משימות בשבילך כדי לשפר את הכישורים שלך. אלה נמצאים גם ב-System.out. אבל בהמשך יהיו קשים יותר. ואתה יכול להראות לנו מאיזו פלדה אתה עשוי.
משימות
1 כתוב תוכנית שמציגה: "שלב אחר שלב והדבר נעשה."
2 כתוב תוכנית שמציגה 7 פעמים: "זה די כיף לעשות את הבלתי אפשרי".
3 כתוב תוכנית שמציגה: "תמיד תשאף ללמוד משהו שימושי.".

4 רישא, נראות משתנים.

היי, התלמיד האהוב עליי. כעת אספר לכם על הנראות של משתנים . - למה, יש גם משתנים בלתי נראים? - לא, משתנים גלויים במקומות של הקוד שבהם ניתן לגשת למשתנה זה. ניתן לגשת למשתנים מסוימים מכל מקום בתוכנית, למשתנים אחרים רק בתוך המחלקה שלהם, ולחלק מהמשתנים ניתן לגשת רק בשיטה אחת. - לדוגמה, אתה לא יכול להתייחס למשתנה לפני שהוא מוצהר. - זה ברור. - הנה כמה דוגמאות: רמה ישנה 02 - 111 משתנה שהוכרז בשיטה קיים / גלוי מתחילת ההכרזה ועד סוף השיטה. 2 משתנה המוצהר בבלוק קוד קיים עד סוף בלוק קוד זה. 3 משתנים - ארגומנטים של מתודה - קיימים בכל מקום בטווח השיטה. 4 משתני מחלקה / אובייקטים קיימים במהלך כל חיי האובייקט שלהם. מגיני גישה מיוחדים, ציבוריים ופרטיים שולטים בנוסף בנראות שלהם. 5 משתני מחלקה סטטיים קיימים בזמן הריצה של התוכנית. משנה הגישה גם קובעים את הנראות שלהם. - אני אוהב תמונות, הכל בא במקום. כל הכבוד לך, אמיגו. תמיד ידעתי שאתה בחור חכם. - אני אספר לך גם על משנה גישה . אל תפחד כל כך, זה לא מדע טילים. אלו המילים ציבוריות ופרטיות שאתה רואה . - אני לא מפחד, פשוט קר כאן. - כן בטח. אתה יכול לשלוט בגישה (נראות) של שיטות ומשתנים במחלקה שלך מהמחלקות האחרות. עבור כל שיטה או משתנה, אתה יכול לציין רק משנה גישה אחד. 1 Modifier public ניתן לגשת למשתנה, שיטה או מחלקה המסומנים עם ציבור משנה מכל מקום בתוכנית. זו הדרגה הגבוהה ביותר של פתיחות, ללא הגבלה. 2 Modifier private ניתן לגשת למשתנה או שיטה שסומנו עם Modifier Private רק מהמחלקה שבה הוא הוכרז. עבור כל המחלקות האחרות, מתודה או משתנה מסומנים אינם נראים, כאילו אינם קיימים. זוהי הדרגה הגבוהה ביותר של סגירות (נראה מאותו מעמד בלבד). 3 ברירת מחדל של שינוי אם כל שינוי אינו מסמן משתנה או שיטה, זה נחשב לברירת מחדל של משנה. משתנים או שיטות עם אותו משנה (כלומר, בלי בכלל) גלויים לכל המחלקות של החבילה שבהן הם מוצהרים. רק באותה חבילה. השינוי הזה נקרא לפעמים חבילה כדי לרמוז שגישה למשתנים ושיטות אפשרית עבור החבילה כולה, שהמחלקה שלהם שייכת ללשונית הסבר: רמה ישנה 02 - 12

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

- היי חבר. אם צריך, אני שומר עבורך עותק של החוזה. רישה לא מודעת למרבה הצער. היית צריך לראות את הסכומים בחוזה שלי. חה חה. כל הכבוד, דייגו. אני חושב שאתה מלמד אותי דברים שימושיים אמיתיים. בטח, אמיגו. אין רווח בלי כאב. אבל עדיין מישהו סובל מהכאב ללא רווח. - מוטב שנפנה את היד ללמוד. עכשיו אני אראה לך איך ליצור חבורה של משתנים בדרכים שונות: רמה ישנה 02 - 13- וואו, דייגו! אתה כל כך חכם. - חה חה! תודה, אמיגו. אני חושב שכבר פספסת את המשימות שלי. אז הנה כמה מהם. בני האדם האלה, החייזרים לא יודעים כלום על חיי הרובו שלנו. מי מלבדי ילמד אותך את זה?
משימות
1 כתוב תוכנית שמציגה 3 פעמים: "אנשים רבים חיים רק כי זה לא חוקי לירות בהם.".
2 כתוב תוכנית שמציגה: "אם אני רוצה את דעתך, אבקש ממך למלא את הטפסים הדרושים".
3 כתוב תוכנית שמציגה 20 פעמים: "מעולם לא אמרתי את רוב הדברים שאמרתי."

6 אלי, עובר בהפניה. משתני התייחסות

היי, אמיגו, זה שוב אני, אלי. מצטער שאני תמיד אומר את זה, אבל זה בדיוק הדרך שבה הדברים נעשים על פני כדור הארץ במאה ה-31. אני אסביר לך את התכונות של משתני התייחסות וכיצד להעביר ארגומנטים התייחסותיים לפונקציות (שיטות). - אני מוכן. - ובכן, משתני התייחסות הם משתנים מכל הסוגים מלבד פרימיטיביים. משתנים אלה מכילים רק את הכתובת של האובייקט (הפניה לאובייקט). - משתנים מסוגים פרימיטיביים מאחסנים ערך וסוג, ומשתני מחלקה מאחסנים הפניות לאובייקטים של אותה מחלקה, well, או null. האם אני צודק? - בהחלט. - אז מהי הפניה? - חפץ והפניה שלו מקושרים, נניח, כמו אדם ומספר הטלפון שלו. מספר טלפון הוא לא גבר, אבל אפשר להשתמש בו כדי להתקשר לגבר כדי לבקש ממנו משהו, להדריך או לפקד עליו. הפניה משמשת גם לאינטראקציה עם אובייקט. כל האובייקטים מקיימים אינטראקציה זה עם זה באמצעות הפניות. - זה כאילו אנשים מתקשרים אחד עם השני בטלפון? - זה נכון. כאשר אתה מקצה אובייקט פרימיטיבי, הערך שלו מועתק (משוכפל). כאשר אתה מקצה משתנה התייחסות, רק כתובת האובייקט (מספר הטלפון) מועתקת, ולא האובייקט עצמו. - אוקיי, הבנתי. - הפניה מציעה יתרון נוסף: ניתן להעביר הפניה לאובייקט לכל שיטה, ושיטה זו תוכל לשנות (לשנות) את האובייקט שלנו באמצעות הפניה שלו על ידי קריאה לשיטות שלו וגישה לנתונים בתוך האובייקט. רמה ישנה 02 - 14- הערכים של משתנים a & b מוחלפים בתוך שיטת ההחלפה . כאשר אתה קורא לשיטת ההחלפה , המשתנים a & b מקבלים עותקים של הערכים m & n . לכן, הערכים של משתנים m & n נשארים זהים כאשר אתה משנה את הערכים של a & b . זה נראה בבירור בקוד של העמודה הימנית. - למען האמת, לא הבנתי כלום מזה. אפשר עוד כמה דוגמאות? - במקרה של סוג ההפניה, אתה יכול לעשות זאת: רמה ישנה 02 - 15- למשתנים a ו-b מוקצים הפניות לאמה ולאליס, בהתאמה, ערכי a ו-b משתנים בתוך האובייקטים emma ואליס. - אז אפשר להכריז על מחלקות גם בתוך מחלקות אחרות? וואו! - לגבי השאר, לא ברור. - לא הכל בו זמנית.

7 Elly, Call Function, Return value

- ובכן, אז בואו נסתובב. נדבר על איך עובדת שיחת השיטה, ואז תנסה שוב להציץ בהרצאה הקודמת, בסדר? - עסקה! - ובכן, אז אני אספר לך על קריאת הפונקציה/שיטה והערכים שהוחזרו. - פקודות מקובצות לפונקציות, כך שתוכל להפעיל אותן בבלוק אחד, כפקודה אחת מורכבת. לשם כך, עליך לכתוב את שם הפונקציה (שיטה) ולאחר מכן בסוגריים לאחר השם לציין ערכים ופרמטרים. רמה ישנה 02 - 16- בדוגמה לעיל, כתבנו פונקציה המציגה את המחרוזת שעברה 4 פעמים. ואז קראנו לפונקציה print4 בשורה 6. - כשזה מגיע לביצוע של שורה 6, התוכנית תקפוץ לשורה 9, ולמשתנה s יוקצה ערך "I like to move it, move it." - לאחר מכן יבוצעו שורות 11-14, ולבסוף, הפונקציה תושלם והתוכנית תמשיך עם שורה 7. - Gotcha. - אתה יכול לא רק להעביר ארגומנטים (פרמטרים) לפונקציה, אלא גם להחזיר את התוצאה (הערך) של פעולת הפונקציה. זה נעשה באמצעות מילת המפתח החזר. כך זה נראה: רמה ישנה 02 - 17- אני חושב שאני תופס את זה. זה אותו קוד משמאל ומימין. בצד שמאל, זה פשוט מוצג כפונקציה נפרדת. - הפונקציה מחשבת ערך ומעבירה אותו למי שקראו לו באמצעות פקודת return. לפחות אני חושב. - בעיקרון, זה נכון. - ומהו סוג הריק? - פונקציות מסוימות פשוט עושות משהו, אבל לא מחשבות ומחזירות ערכים כלשהם, כמו השיטה הראשית שלנו (). עבור הפונקציות האלה נוצר סוג תוצאה מיוחד void (סוג ריק). - למה אנחנו יכולים פשוט לא לציין כלום, אם פונקציה לא מחזירה כלום? - רק תחשוב על איך כל משתנה מוצהר: סוג ושם. פונקציה מוצהרת עם סוג, שם וסוגריים. שם הפונקציה ואחריו הסוגריים הוא קריאת פונקציה! - אז היה קל יותר להמציא "סוג ריק" מאשר לחלק פונקציות לשתי קטגוריות אלה שמחזירות ערך ולא מחזירות ערך? - בדיוק! אתה חושב מהר, ילד שלי. - ואיך אני יכול להחזיר סוג ריק? - אתה לא יכול. כך זה עובד: כאשר ה-JVM מבצע פקודת return , הוא מחשב את הערך של הביטוי מימין למילה return, מאחסן את הערך הזה באזור זיכרון מיוחד ויוצא מיד מהפונקציה . הוא משתמש בערך השמור כתוצאה מקריאה לפונקציה במקום שבו נקראה הפונקציה. אתה יכול לראות את זה בדוגמה לעיל. - האם אתה מתכוון למקום שבו int m = min(a,b) הופך ל- m = m2 ? - כן. לאחר הקריאה לפונקציה הכל ממשיך לעבוד כאילו במקום הפונקציה התוצאה שלו כתובה באותו מקום. קרא את המשפט הזה שוב והסתכל על הקוד של הדוגמה האחרונה. - זה פשוט נראה קל, אבל זה קשה במציאות. יש לי רק קצת, זה הכל. - זה בסדר. בניסיון הראשון אתה יכול להבין רק את מה שאתה כבר יודע. ככל שנכנסת יותר לתחום חדש עבורך, כך זה יותר לא ברור. והתוצאה תהיה אפילו יותר מדהימה. ככל שהזמן עובר, הכל מתבהר. - ובכן, אם כן, אז בואו נמשיך.

8 דייגו

היי, אמיגו. הנה כמה משימות בשבילך. עכשיו אתה מסוגל לעשות משהו יותר מאשר System.out. עשה כמיטב יכולתך! אני מאמין בך!
משימות
1 מינימום שני מספרים
כתוב פונקציה שמחזירה מינימום שני מספרים.
2 מקסימום שני מספרים
כתוב פונקציה שמחזירה מקסימום שני מספרים.
3 מינימום שלושה מספרים
כתוב פונקציה שמחזירה מינימום שלושה מספרים.
4 מינימום של ארבעה מספרים
כתוב פונקציה שמחזירה מינימום של ארבעה מספרים.
הפונקציה min(a,b,c,d) צריכה להשתמש (לקרוא) לפונקציה min(a,b)
5 שכפול מחרוזת
כתוב פונקציה שמציגה פי שלוש מהמחרוזת שעברה. כל מחרוזת צריכה להיות על שורה חדשה.
6 תצוגת טקסט
כתוב פונקציה המציגה את המחרוזת (המילה) שעברה שלוש פעמים באותה שורה.
מילים חייבות להיות מופרדות ברווח ואינן חייבות להתמזג לאחד.

9 דייגו, שם הכיתה המלא

רמה ישנה 02 - 18היי, אמיגו, אני רוצה לספר לך על שמות הכיתה המלאים. - אתה כבר יודע שהשיעורים נמצאים בחבילות. אז, שם מחלקה מלא הוא שם המכסה את כל החבילות המופרדות בנקודות, ושם מחלקה. דוגמאות: רמה ישנה 02 - 19 - כדי להשתמש במחלקה בקוד משלך עליך לציין את שמה המלא. עם זאת, ניתן להשתמש בשם קצר - שם כיתה בלבד. כדי לעשות זאת אתה צריך "לייבא" את המחלקה הזו על ידי ציון השם שלה והוספת המילה import לפני שאתה מכריז על מחלקה. מחלקות של חבילת java.lang (String, Integer,...) מיובאים כברירת מחדל. אתה לא צריך לציין אותם. דוגמה: רמה ישנה 02 - 20- דוגמה לשימוש בשמות קצרים: רמה ישנה 02 - 21- הבנתי. - בסדר גמור.

10 פרופסור, הרצאה על שיעורים וחפצים

רמה ישנה 02 - 22היי, אמיגו. מקווה שהבנת את כל מה שאלי ורישה אמרו לך היום. ליתר ביטחון, כפי שהבטחתי, הנה קישורים לחומר נוסף: 1 ההערות שלי 2 חשיבה ב-Java. הספר המדהים הזה שכבר סיפרתי לך עליו. זה יהיה נהדר אם תקרא אותו. אני מקווה שתפנה זמן להציץ בו. - אהמ. בוודאי שאני אעשה!

11 חוליו

היי, אמיגו! מקווה שאתה למנוחה קשה ומייגעת?

הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION