PracticU

Static Class

בלי כתוביותעם כתוביות
PracticU › קורס פיתוח משחקים יוניטי - Unity - שפת #C › Static Class
מילון מושגים:
מחלקה - תבנית בתכנות מונחה עצמים שמגדירה אילו נתונים ופעולות יהיו לאובייקטים שנוצרים ממנה.
אובייקט - יחידה בתכנות מונחה עצמים שמאגדת נתונים (תכונות) ופעולות (מתודות). נוצר בדרך כלל ממחלקה המשמשת כתבנית.
משתנה - שם שמפנה למקום בזיכרון שבו נשמר ערך שיכול להשתנות במהלך ריצת התוכנית, כמו מספר, טקסט או אובייקט.
פונקציה - קטע קוד בעל שם שמבצע משימה מוגדרת, מקבל ערכי קלט (פרמטרים) ויכול להחזיר תוצאה. מאפשרת לארגן קוד ולהשתמש בו שוב.
דיבאג - תהליך של איתור, הבנה ותיקון תקלות בקוד, לעיתים בעזרת כלי שמאפשר לעצור ולעקוב אחר ריצת התוכנית.
לוג - רישום מתועד של אירועים ופעולות שמתרחשים במערכת או בתוכנה, המשמש למעקב ולאיתור תקלות.

Static Class
השיעור מסביר איך ניגשים לחברי אובייקט, ומה ההבדל בינם לבין מחלקה סטטית, שאין ממנה אובייקטים.
גישה לחברי אובייקט
1. יצירת אובייקט: TestStuff ts = new TestStuff(); יוצר אובייקט מהמחלקה ושומר אותו במשתנה מסוג המחלקה.
2. גישה לחברים: לחברים של האובייקט ניגשים דרך שם המשתנה ונקודה, למשל ts.dummyPublicInt או ts.CalculateSum(5, 5).
מחלקה סטטית
1. הגדרה: מחלקה שמוגדרת כ-static לא משמשת ליצירת אובייקטים. היא מכילה כלים ופונקציות עזר שלא שייכים לאובייקט מסוים.
2. גישה לחברים סטטיים: דרך שם המחלקה ולא דרך אובייקט, למשל TestStatic.PI. חבר סטטי מוגדר עם public static.
3. דוגמאות מוכרות: Mathf מכיל פונקציות מתמטיות, למשל Abs שמחזירה ערך מוחלט. Debug מכיל Log, LogWarning ו-LogError, שמופיעים בחלון ה-Console. Input עוסק בקלט מהמשתמש.
שימו לב
ב-Unity אי אפשר להגדיר מחלקה שיורשת מ-MonoBehaviour כסטטית. הדיבאג נותן יותר מידע מאשר הדפסה רגילה, וגם Debug.Break עוצר את הריצה כדי לבדוק מה קורה.
אחרי השיעור מבינים את ההבדל בין אובייקט למחלקה סטטית, ואיך ניגשים לכל אחד מהם.
השיעור הבא בקורס: חיפוש בגוגל - קורס פיתוח משחקים יוניטי - Unity

פרקי ההרצאה: Static Class

  1. 00:00

    יצירת אובייקט וגישה לחבריו

  2. 01:44

    מחלקה סטטית: מה היא ומתי משתמשים בה

  3. 02:41

    יצירת מחלקה סטטית בתוך Unity

  4. 03:22

    קבוע סטטי כמו Pi וגישה אליו

  5. 04:30

    פונקציות סטטיות וגישה דרך שם המחלקה

  6. 05:11

    הערך המוחלט עם Mathf.Abs

  7. 06:15

    מחלקת Debug והדפסה ללוג

תמלול ההרצאה: Static Class

הטקסט המלא של הדקות הראשונות בהרצאה «Static Class» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    הנושא שנלמד היום הוא תתי קלאסס אבל לפני זה אני רק רוצה לחדד משהו קטן אז ככה יצרנו בעצם שני קלאססים טסט סטאף וטסט אינהריטנס שיורש ממנו עכשיו זה שהוא יורש ממנו כרגע לא מעניין אותי מה שאני רוצה להראות כרגע זה איך אני יוצר אובייקט מקלאס אז אני יכול כמו שאני מגדיר int of load אני יכול להגדיר טסט סטאף ts והגדרתי בעצם את המשתנה ts שהוא מסוג טסט סטאף כמו שtmp int כאן הוא int בשביל לייצר אובייקט כזה אני צריך לעשות

  2. 01:00

    new ויצרתי אובייקט ועכשיו למה עשיתי את זה בשביל להסביר שכאשר אני רוצה לגשת לmember variables או member functions של אותו אובייקט מה שאני צריך לעשות זה שם של המשתנה האובייקט ואז אם אתם יכולים אם אתם שימו לב יש לי פה את מה שהגדרתי כפאבליק למשל דמי פאבליק אינט או היה לי שם קלקולייט סאם למשל של 5 ו5 ככה אני למעשה קורא לפונקציות

  3. 01:35

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

  4. 02:10

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

  5. 02:24

    סטטי קלאס זה קלאס שאני לא יוצר ממנו אובייקטים הוא רוב הפעמים ישמש אותי לכל מיני Utilities כל מיני כלים ופונקציות שאני לא צריך שיהיו שייכות לאובייקט מסוים למשל אני לא אכנס לדוגמה כרגע כי אני רוצה קודם כל להראות איך אנחנו בעצם משתמשים בזה אז אני אייצר פה כרגע לא רגע אני אייצר פה C-Sharp Script נקרא לו

  6. 03:01

    test static ובשביל להגדיר קלאס כסטטיק אני פשוט מוסיף פה את המילה סטטיק וכבר אני מקבל שגיאה מכיוון שמונוביהייבייר לא יכול להיות סטטי וגם פה אני מקבל שגיאות שאני לא אכנס אליהן.

  7. 03:22

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

  8. 03:49

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

  9. 04:30

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

  10. 04:44

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

  11. 05:14

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

  12. 05:54

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

לקורס המלא: קורס פיתוח משחקים ביוניטי

ההרצאה הקודמת: עקרונות תכנות מונחה עצמים - Unity OOP

ההרצאה הבאה: חיפוש בגוגל - קורס פיתוח משחקים יוניטי - Unity

הרצאות קשורות מקורסים אחרים

  • מחלקה מסוג Static Class
  • The R Class
  • Use Static Method
  • ניתוב סטטי - Static Route

קורסים נוספים במסלול

  • קורס יסודות התכנות - שפת C# .NET - קורס תכנות למתחילים - דוט-נט / סי-שארפ - חומר לימוד של מדעי המחשב