Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ג'אווה - תכנות מונחה עצמים - מחלקות ואובייקטים

חלק מסדרת הרצאות בנושא "תכנות מונחה עצמים בסביבת ג'אווה", והפעם: מחלקות ואובייקטים / כיתות ומופעים.

  • Be the first to comment

ג'אווה - תכנות מונחה עצמים - מחלקות ואובייקטים

  1. 1. ‫אובייקטים‬–‫מופעים‬-Instances‫קבוצות‬ ‫לתתי‬ ‫לרוב‬ ‫משתייכים‬ ‫אלו‬ ‫עצמים‬ .‫בעצמים‬ ‫מלא‬ ‫אותנו‬ ‫הסובב‬ ‫העולם‬‫ש‬‫קבוצות‬ ‫בעצמן‬ ‫מרכיבות‬‫של‬ ‫יותר‬ ‫גדולות‬‫או‬ ‫יחסים‬ ‫פעמים‬ ‫הרבה‬ ‫יש‬ ‫הקבוצות‬ ‫בין‬ .‫הלאה‬ ‫וכן‬ ‫עצמים‬‫קבוצות‬ ‫אותן‬ ‫של‬ ‫חלוקה‬ ‫לבצע‬ ‫וניתן‬ ,‫עקיפים‬ ‫או‬ ‫ישירים‬ ,‫קשרים‬.‫חולקות‬ ‫או‬ ‫מקיימות‬ ‫שהן‬ ‫מסוימות‬ ‫תכונות‬ ‫או‬ ,‫אופיין‬ ‫עפ"י‬,‫מכאן‬‫ל‬ ‫המאפשר‬ ,‫החיים‬ ‫עולם‬ ,‫החיצון‬ ‫לעולם‬ ‫שקיים‬ ‫העמוק‬ ‫הקשר‬ ‫את‬ ‫להבין‬ ‫ניתן‬,‫עצמים‬ ‫כגון‬ ‫מושגים‬ ‫על‬ ‫לדבר‬ ‫נו‬,‫יישום‬‫הורשה‬‫צורתיות‬ ‫רב‬ ,‫רב‬ ‫קונספטים‬ ‫ועוד‬‫האמתי‬ ‫בעולם‬ ‫קיומם‬ ‫בעצם‬ ‫טמון‬ ‫שמקורם‬ ‫ים‬,‫תחום‬ ‫אותו‬ ‫לתוך‬ ‫בהשאלה‬ ‫נלקחו‬‫עצמים‬ ‫מונחה‬ ‫תכנות‬ ‫הקרוי‬ ‫המחשב‬ ‫במדעי‬‫מרשימות‬ ‫ויכולות‬ ‫חיים‬ ‫רוח‬ ‫שהכניס‬ ‫דבר‬ ,‫ממנו‬ ‫נפרד‬ ‫בלתי‬ ‫לחלק‬ ‫והפכו‬‫ל‬‫תחום‬.‫בכלל‬ ‫התכנות‬‫בעולם‬ ‫גם‬ ‫כך‬ ,‫האמתי‬ ‫בעולם‬ ‫כמו‬‫ה‬‫עצם‬ ‫לכל‬ ‫לשייך‬ ‫ניתן‬ ,‫העצמים‬ ‫מונחה‬ ‫תכנות‬‫(א‬)‫ובייקט‬‫אותו‬ ‫המאפיינות‬ ‫ופעולות‬ ‫תכונות‬)..."‫"גובה‬ ,"‫אישי‬ ‫"מס‬ ,"‫משפחה‬ ‫"שם‬ ,"‫"שם‬ ‫הן‬ ‫שלו‬ ‫מהתכונות‬ ‫חלק‬ ,‫בצבא‬ ‫חייל‬ ‫לדוגמה‬ ‫(ניקח‬.,‫בתכנות‬,‫האובייקט‬ ‫להיות‬ ‫יכול‬ ‫החייל‬‫ה‬ ‫התכונות‬‫ן‬‫משתנים‬‫לאמוד‬ ‫שניתן‬‫המתודות‬ ‫הן‬ ‫והפעולות‬ ‫בתוכם‬ ‫המוכל‬ ‫הערך‬ ‫ע"י‬‫על‬ ‫לביצוע‬ ‫הניתנות‬‫האובייקט‬)..."‫למטרה‬ ‫"קלע‬ ,"‫אישי‬ ‫מס‬ ‫"החזר‬ ‫להיות‬ ‫יכול‬ ‫זה‬ ‫חייל‬ ‫של‬ ‫(במקרה‬.‫להיות‬ ‫יכול‬ ‫אובייקט‬"‫"שערה‬ ‫כגון‬ ‫פיזי‬‫לנשור‬ ‫כמו‬ ‫ופעולות‬ ‫וחוזק‬ ‫צבע‬ ‫כמו‬ ‫תכונות‬ ‫עם‬‫מצב‬ ‫ובדיקת‬‫בריאותי‬‫או‬ ,‫אבסטרקטי‬‫כגון‬"‫תספורת‬"‫להתחיל‬ ‫כמו‬ ‫ופעולות‬ ‫ועלות‬ ‫משך‬ ‫כמו‬ ‫תכונות‬ ‫עם‬,‫להסתיים‬‫התקדמות‬ ‫סטטוס‬ ‫להחזיר‬ ‫או‬.‫ע"י‬ ‫יווצר‬ ‫אובייקט‬instantiation:‫הבא‬ ‫באופן‬ ‫מסוימת‬ ‫ממחלקה‬ )‫מופע‬ ‫(יצירת‬ClassName objectName = new ClassName(/*parameters for the classs constructor if needed*/);‫מופע‬ ‫משתני‬–Instance Variables‫לאובייקט‬ ‫שייך‬ ‫אשר‬ ‫משתנה‬ ‫כל‬‫משתנ‬ ‫נקרא‬‫מופע‬ ‫ה‬,‫כזה‬ ‫משתנה‬‫מבלי‬ ‫האובייקט‬ ‫אותו‬ ‫עבור‬ ‫ייחודי‬ ‫באופן‬ ‫לשינוי‬ ‫ניתן‬‫אם‬ ‫שגם‬ ‫כך‬ ,‫הסוג‬ ‫מאותו‬ ‫האובייקטים‬ ‫שאר‬ ‫על‬ ‫שישפיע‬‫אובייקטים‬ ‫מס‬‫ובטיפוסם‬ ‫בשמם‬ ‫הזהים‬ ‫במשתנים‬ ‫מחזיקים‬‫שינוי‬ ,‫זה‬ ‫משתנה‬ ‫של‬‫עבור‬ ‫ורק‬ ‫אך‬ ‫ייעשה‬‫אותו‬ ‫של‬ ‫המשתנה‬‫השינוי‬ ‫נערך‬ ‫בו‬ ‫הספציפי‬ ‫האובייקט‬.‫נניח‬‫אותם‬ ‫יהיו‬ ‫שלשניהם‬ ‫כך‬ ,‫בדיוק‬ ‫התבנית‬ ‫אותה‬ ‫לפי‬ ‫ייבנה‬ ‫מהם‬ ‫אחד‬ ‫כל‬ ,"‫"מכונית‬ ‫מטיפוס‬ ‫אובייקטים‬ ‫שני‬ ‫ויצרנו‬‫אחד‬ ‫כל‬ ‫עבור‬ ‫שונה‬ ‫ערך‬ ‫להזין‬ ‫ניתן‬ ‫מהאובייקטים‬ ‫אחד‬ ‫ובכל‬ )"‫ייצור‬ ‫"שנת‬ ,"‫מייצרת‬ ‫"חברה‬ ‫(לדוגמה‬ ‫בדיוק‬ ‫המשתנים‬.‫ביניהם‬ ‫תלות‬ ‫של‬ ‫קשר‬ ‫מבלי‬ ‫מהמשתנים‬‫לה‬ ‫יכולה‬ ‫נוספת‬ ‫דוגמה‬‫כאשר‬ ‫למשל‬ ‫יות‬‫על‬ ‫משפיע‬ ‫זה‬ ‫אין‬ ,‫לצביקה‬ ‫שמו‬ ‫את‬ ‫לשנות‬ ‫מחליט‬ ‫ירון‬ ‫בשם‬ ‫אדם‬‫א‬ ‫של‬ ‫שמם‬‫נשים‬‫עם‬ ‫אחרים‬ ‫אנשים‬ ‫על‬ ‫כולל‬ ‫אחרים‬.‫בלבד‬ ‫האדם‬ ‫אותו‬ ‫על‬ ‫אלא‬ ,‫ירון‬ ‫השם‬‫את‬ ‫שינה‬ ‫ירון‬‫שמו‬.‫האנשים‬ ‫כל‬ ‫של‬ ‫שמם‬ ‫את‬ ‫ולא‬‫מופע‬ ‫משתנה‬ ‫להגדרת‬ ‫דוגמה‬:class ClassName {//Class Variables Section//Instance Variables Sectionprivate String id;//Class Methods Section//Instance Methods Section}
  2. 2. ‫אובייקט‬ ‫של‬ ‫החיים‬ ‫סיום‬–finalization‫המתודה‬finalize()‫מ‬ ‫מגיעה‬-Object‫ה‬ ‫ע"י‬ ‫מורצת‬ ‫שהיא‬ ‫העובדה‬ ‫מלבד‬ ‫מיוחדת‬ ‫פעולה‬ ‫מבצעת‬ ‫שהיא‬ ‫מבלי‬-JVM‫בתהליך‬‫לבצע‬ ‫ניתן‬ .‫וכד‬ ‫משאבים‬ ‫שחרור‬ ,"‫פינות‬ ‫"סגירת‬ ‫לשם‬ ‫מיועדת‬ ‫היא‬ .‫האובייקט‬ ‫של‬ ‫חייו‬ ‫סיום‬overriding‫ע"מ‬ ‫למתודה‬:‫כך‬ ‫בדיוק‬ ‫להיראות‬ ‫צריכה‬ ‫הגדרתה‬ ,‫זאת‬ ‫לעשות‬ ‫ניתן‬ ‫שיהיה‬ ‫וע"מ‬ ,‫מחדש‬ ‫פעולתה‬ ‫את‬ ‫להגדיר‬protected void finalize() { /*New logic goes here*/ }‫מתוך‬ ‫מתודה‬ ‫לאותה‬ ‫קריאה‬ ‫לבצע‬ ‫יש‬ ,‫אחרת‬ ‫למחלקה‬ ‫שמורישה‬ ‫מחלקה‬ ‫ע"י‬ ‫נדרסה‬ ‫המתודה‬ ‫אם‬finalize‫שהוגדרה‬:‫הבא‬ ‫באופן‬ ‫היורשת‬ ‫במחלקה‬super.finalize();,‫זו‬ ‫במתודה‬ ‫לשימוש‬ ‫ההסברים‬ ‫למרות‬‫שה‬ ‫לכך‬ ‫ערובה‬ ‫אין‬-GarbageCollector‫את‬ ‫יפעיל‬finalize()‫בזמן‬‫"לבנות‬ ‫אין‬ ‫ולכן‬"‫עליה‬‫שת‬‫תפקד‬‫באופן‬‫ודאי‬.
  3. 3. ‫מחלקות‬-Classes.‫מסוימת‬ ‫למחלקה‬ ‫להשתייך‬ ‫חייבת‬ ‫בתוכנית‬ ‫קוד‬ ‫שורת‬ ‫וכל‬ ‫מחלקות‬ ‫של‬ ‫ממקבץ‬ ‫בנויה‬ ‫בגאווה‬ ‫תכנית‬ ‫כל‬‫לתאר‬ ‫ניתן‬‫מחלקה‬‫כ‬"‫שבלונה‬".‫אובייקטים‬ ‫נוצרים‬ ‫ממנה‬‫קיימים‬ ‫בו‬ ,"‫עובד‬ ‫"טופס‬ ‫לדוגמה‬ ‫ניקח‬ ,‫מחלקה‬ ‫מהי‬ ‫להמחיש‬ ‫ע"מ‬‫השדות‬:‫עובד‬ ‫"מס‬XXX)‫המפעל‬ ‫ע"י‬ ‫מראש‬ ‫(ממולא‬ ":‫"שם‬":‫"משפחה‬":.‫"ת.ז‬":‫"כתובת‬"‫הטופס‬ ‫את‬ ‫משכפלים‬ ‫לעובד‬ ‫להפוך‬ ‫שמבקש‬ ‫אדם‬ ‫כל‬ ‫ועבור‬ )‫מאסטר‬ ‫(עותק‬ ‫כזה‬ ‫אחד‬ ‫טופס‬ ‫רק‬ ‫שיש‬ ‫ונניח‬‫אחת‬ ‫פעם‬‫כדי‬.‫פרטיו‬ ‫את‬ ‫למלא‬ ‫שיוכל‬‫לא‬ ‫רק‬‫חר‬‫מילוי‬‫הטופס‬‫המשוכפל‬‫ה‬ ‫אדם‬ ‫אותו‬ ,‫מסוים‬ ‫אדם‬ ‫בידי‬‫ופך‬.‫לעובד‬‫העובד‬ ‫טופס‬‫הנ"ל‬‫בשם‬ ‫למחלקה‬ ‫שקול‬Worker‫המשתנים‬ ‫בה‬ ‫מוצהרים‬ ‫אשר‬name, lastName, id, address.,‫כאמור‬‫בטופס‬ ‫הפרטים‬ ‫את‬ ‫וממלא‬ ‫אדם‬ ‫מגיע‬ ‫כאשר‬,‫המשוכפל‬‫במפעל‬ ‫לעובד‬ ‫הופך‬ ‫הוא‬.‫אשר‬ ‫לאובייקט‬ ‫שקול‬ ‫אדם‬ ‫אותו‬‫מהמחלקה‬ ‫נוצר‬Worker.‫אוביי‬‫ע"י‬ ‫בפועל‬ ‫יווצר‬ ‫כזה‬ ‫קט‬:‫הבאה‬ ‫השורה‬ ‫כגון‬ ‫קוד‬ ‫שורת‬Worker manager=new Worker("John","Doe","098256558","22 Habonim St., Kfar Yam, Israel");‫ניתן‬ ,)‫(המחלקה‬ ‫הטופס‬ ‫את‬ ‫בידנו‬ ‫שיש‬ ‫מרגע‬‫לקבל‬( ‫עובדים‬ ‫ועוד‬ ‫עוד‬‫ועוד‬ ‫עוד‬ ‫ליצור‬‫כל‬ ‫את‬ ‫שמאפיין‬ ‫ומה‬ )‫אובייקטים‬‫העובדים‬‫הוא‬ ,‫הללו‬,‫משפחתם‬ ‫שם‬ ,‫שמם‬ ‫את‬ ‫המפעל‬ ‫שומר‬ ‫כולם‬ ‫לגבי‬ :‫המפעל‬ ‫מבחינת‬ ‫המאפיינים‬ ‫אותם‬ ‫את‬ ‫יש‬ ‫שלכולם‬( ‫וכתובת‬ .‫ת.ז‬‫א‬ ‫מכילים‬‫ואות‬ ‫המשתנים‬ ‫אותם‬ ‫ת‬)‫המתודות‬ ‫ן‬‫ש‬ ‫כמובן‬ ,‫(ערכי‬ ‫שונים‬ ‫שמות‬ ‫כגון‬ ,‫שונים‬ ‫נתונים‬ ‫העובדים‬ ‫לכל‬‫משתנים‬‫לאובייקט‬ ‫אובייקט‬ ‫בין‬ ‫שונים‬‫וטיפוסי‬ ‫שמות‬ ‫אותם‬ ‫אך‬ ,‫משתנים‬).‫יכולות‬ ,‫זאת‬ ‫עם‬ .‫המחלקה‬ ‫שם‬ ‫כמו‬ ‫בדיוק‬ ‫השם‬ ‫באותו‬ ‫הוא‬ ‫הקובץ‬ ‫שם‬ ‫כאשר‬ ,‫משלה‬ ‫בקובץ‬ ‫תישמר‬ ‫מחלקה‬ ‫כל‬ ,‫לרוב‬‫הגישה‬ ‫מציין‬ ‫בעלת‬ ‫להיות‬ ‫יכולה‬ ‫בקובץ‬ ‫המחלקות‬ ‫אחת‬ ‫שרק‬ ‫לזכור‬ ‫יש‬ ‫אך‬ ,‫הקוד‬ ‫קובץ‬ ‫באותו‬ ‫מחלקות‬ ‫מס‬ ‫להופיע‬public.‫לפיה‬ ‫נקבע‬ ‫הקובץ‬ ‫ששם‬ ‫זו‬ ‫היא‬ ‫מחלקה‬ ‫ואותה‬‫מחלקה‬:‫הבא‬ ‫באופן‬ ‫תוגדר‬public/*(or none for package-friendly)*/ class ClassName {//Class Variables Section//Instance Variables Section//Class Methods Section//Instance Methods Section}
  4. 4. ‫מחלקה‬ ‫משתני‬-‫סטטיים‬ ‫משתנים‬–Static Variables,‫קודם‬ ‫הזכרנו‬‫שכל‬ ‫כך‬ ,‫מחלקה‬ ‫להגדיר‬ ‫קבוצה‬ ‫כל‬ ‫ועבור‬ ‫משותף‬ ‫מכנה‬ ‫בעלות‬ ‫לקבוצות‬ ‫לשייך‬ ‫ניתן‬ ‫שונים‬ ‫שאובייקטים‬‫התכונות‬ ‫אותן‬ ‫כל‬ ‫את‬ ‫בדיוק‬ ,‫השבלונה‬ ‫מאותה‬ ‫נוצר‬ ‫שהוא‬ ‫לעובדה‬ ‫בהתאם‬ ,‫יכיל‬ ,‫מסוימת‬ ‫ממחלקה‬ ‫שייווצר‬ ‫אובייקט‬‫משתני/מתו‬ ‫כאמור‬ ‫נקראים‬ ‫אלו‬ ‫ומתודות‬ ‫משתנים‬ .‫במחלקה‬ ‫שמוגדרות‬ ‫והפעולות‬.‫מופע‬ ‫דות‬‫משתני‬ .‫המחלקה‬ ‫עבור‬ ‫אחת‬ ‫פעם‬ ‫אלא‬ ,‫אובייקט‬ ‫כל‬ ‫עבור‬ ‫נוצרים‬ ‫לא‬ ‫אלו‬ ,‫סטטיים‬ ‫משתנים/מתודות‬ ‫גם‬ ‫קיימים‬ ,‫לעומתם‬‫מעיין‬ ,‫כולה‬ ‫המחלקה‬ ‫את‬ ‫משמשים‬ ‫או‬ ‫המאפיינים‬ ‫נתונים‬ ‫להכיל‬ ‫תפקידם‬ ‫אלו‬ ‫סטטיים‬ ‫מחלקה‬shared resource‫ומתודות‬ ,‫מסוי‬ ‫אובייקט‬ ‫על‬ ‫פועלות‬ ‫אינן‬ ‫סטטיות‬ ‫מחלקה‬.‫למחלקה‬ ‫גלובליות‬ ‫פעולות‬ ‫מבצעות‬ ‫אלא‬ ,‫מופע‬ ‫מתודות‬ ‫כמו‬ ‫ם‬‫נמשיך‬ ,‫סטטיים‬ ‫משתנים‬ ‫הם‬ ‫מה‬ ‫להבין‬ ‫מנת‬ ‫על‬ ,‫קבוע‬ ‫עובד‬ ‫טופס‬ ‫לפי‬ ‫עובדים‬ ‫שמקבל‬ ‫המפעל‬ ‫של‬ ‫בדוגמה‬ ‫השתמשנו‬ ‫אם‬,‫המפעל‬ ‫של‬ ‫הקמתו‬ ‫מרגע‬ :‫קודם‬ ‫הזכרנו‬ ‫שלא‬ ‫פרט‬ ‫ונציין‬ ‫זו‬ ‫דוגמה‬ ‫עם‬‫הע‬ ‫של‬ ‫קבלתו‬ ‫מעת‬ ,"‫עובדים‬ ‫"ספר‬ ‫המפעל‬ ‫מנהל‬‫ובד‬‫בעמוד‬ ‫אותו‬ ‫פותח‬ ,‫העובדים‬ ‫ספר‬ ‫את‬ ‫מקבל‬ ,)‫הטופס‬ ‫את‬ ‫מילא‬ ‫(טרם‬ ‫במפעל‬ ‫לעבוד‬ ‫שהתחיל‬ ‫טרם‬ ,‫עובד‬ ‫כל‬ ,‫הראשון‬‫מגיע‬ ‫שמואלי‬ ‫רן‬ ‫בשם‬ ‫ואדם‬ ‫שנניח‬ ‫כך‬ ,)‫משפחה‬ ‫ושם‬ ‫שם‬ ,‫רץ‬ ‫בסדר‬ ‫סידורי‬ ‫(מס‬ ‫הקיים‬ ‫הפורמט‬ ‫לפי‬ ‫שורה‬ ‫ומוסיף‬ ‫האחרון‬‫השור‬ ‫לדוגמה‬ ‫הן‬ ‫בספר‬ ‫האחרונות‬ ‫והשורות‬ ,‫במפעל‬ ‫לעבוד‬:‫הבאות‬ ‫ות‬070‫משה‬‫קדמי‬070‫ליאורה‬‫שרון‬:‫הבאה‬ ‫השורה‬ ‫תהיה‬ ‫שמואלי‬ ‫רן‬ ‫שיוסיף‬ ‫השורה‬000‫רן‬‫שמואלי‬.‫המניין‬ ‫מן‬ ‫לעובד‬ ‫ויהפוך‬ ‫עובד‬ ‫כרטיס‬ ‫ימלא‬ ,‫העובדים‬ ‫בספר‬ ‫שהתבקש‬ ‫הנתונים‬ ‫את‬ ‫שיזין‬ ‫לאחר‬‫לגבי‬ ‫לנתונים‬ ‫לגשת‬ ‫היה‬ ‫יכול‬ ,‫המניין‬ ‫מן‬ ‫לעובד‬ ‫רן‬ ‫שההפך‬ ‫לפני‬ ‫שעוד‬ ,‫בעובדה‬ ‫נבחין‬,‫כן‬ ‫כמו‬ .‫קבלתו‬ ‫טרם‬ ‫במפעל‬ ‫העובדים‬.)‫מהאחרון‬ ‫יותר‬ ‫(אחד‬ ‫בעצמו‬ ‫הוא‬ ‫יהיה‬ ‫עובד‬ ‫מס‬ ‫איזה‬ ‫ולהבין‬ ‫במפעל‬ ‫עובדים‬ ‫כרגע‬ ‫עובדים‬ ‫כמה‬ ‫לראות‬ ‫יכול‬‫העובד‬ ‫מס‬ ‫עם‬ ‫העובדים‬ ‫רשימת‬ :)‫(המחלקה‬ ‫עצמו‬ ‫המפעל‬ ‫של‬ ‫הנתונים‬ ‫בעצם‬ ‫הם‬ .‫מחלקה‬ ‫משתני‬ ‫מתנהגים‬ ,‫האופן‬ ‫ובאותו‬‫הסטטי‬ ‫המשתנה‬ ‫של‬ ‫(ערכו‬–‫ה‬‫לעובד‬ ‫שייכים‬ ‫אינם‬ ‫הם‬ ,)‫מחרוזות‬ ‫ושתי‬ ‫סידורי‬ ‫מס‬ ‫שמכיל‬ ‫מבנה‬ ‫הוא‬ ‫הסטטי‬ ‫משתנה‬‫עובדים‬ ‫להיות‬ ‫קבלתם‬ ‫טרם‬ ‫אפילו‬ ‫במפעל‬ ‫העובדים‬ ‫לכל‬ ‫נגישים‬ ‫היו‬ ‫והם‬ )‫ספציפי‬ ‫(לאובייקט‬ ‫ספציפי‬‫יכולה‬ ‫למשתנה‬ ‫(גישה‬.)‫מסוים‬ ‫מופע‬ ‫דרך‬ ‫לא‬ ‫אפילו‬ ,‫המחלקה‬ ‫דרך‬ ‫ישירות‬ ‫להיעשות‬‫מתבצעת‬ ‫סטטי‬ ‫משתנה‬ ‫הגדרת‬‫המילה‬ ‫הוספת‬ ‫ע"י‬static,‫עליו‬ ‫ההצהרה‬ ‫בעת‬ ‫המשתנה‬ ‫טיפוס‬ ‫לפני‬:‫הבא‬ ‫באופן‬class ClassName {//Class Variables Sectionstatic String id;//Instance Variables Section//Class Methods Section//Instance Methods Section}
  5. 5. ‫למשתנה‬ ‫פניה‬ ‫וכל‬ ,‫מהמחלקה‬ ‫ייווצרו‬ ‫אובייקטים‬ ‫כמה‬ ‫משנה‬ ‫לא‬ ,‫יחיד‬ ‫משתנה‬ ‫עבור‬ ‫בזיכרון‬ ‫מקום‬ ‫והוקצה‬ ‫נוצר‬ ,‫זה‬ ‫באופן‬.‫בזיכרון‬ ‫המקום‬ ‫לאותו‬ ‫ומכאן‬ ‫הרפרנס‬ ‫לאותו‬ ‫תתבצע‬ ‫אובייקט‬ ‫כל‬ ‫ע"י‬ ‫זה‬‫סטטיים‬ ‫משתנה/מתודה‬ ‫של‬ ‫והיצירה‬ ‫ההקצאה‬‫יצירת‬ ‫לפני‬ ‫עוד‬ ,‫המחלקה‬ ‫של‬ ‫הטעינה‬ ‫בזמן‬ ‫כבר‬ ‫נעשות‬‫מאותחלים‬ ‫וערכיהם‬ ‫אובייקטים‬:‫דרכים‬ ‫משלוש‬ ‫באחת‬‫ה‬‫ראשונה‬‫ידני‬ ‫באופן‬ ,-‫מפורש‬,.‫ההצהרה‬ ‫בעת‬ ‫השמה‬ ‫תוך‬class ClassName {//Class Variables Sectionstatic int num=5;//Instance Variables Section//Class Methods Section//Instance Methods Section}‫השנייה‬,‫בלוק‬ ‫דרך‬‫סטטיים‬ ‫למשתנים‬ ‫אתחול‬.:‫הבאה‬ ‫בצורה‬ ‫שנכתב‬ ‫סטטי‬ ‫בלוק‬ ‫זהו‬class ClassName {//Class Variables Sectionstatic int num;//Instance Variables Section//Class Methods Section//Instance Methods SectionStatic {//‫סטטי‬ ‫בבלוק‬ ‫שימוש‬ ‫בה‬ ‫שיעשה‬ ‫ע"מ‬ ‫סטטית‬ ‫להיות‬ ‫חייבת‬ ‫פנימית‬ ‫מחלקה‬ .‫המחלקה‬ ‫בקובץ‬ ‫מקום‬ ‫בכל‬ ‫להופיע‬ ‫יכול‬ ‫סטטי‬ ‫בלוק‬num=10;}}‫השלישית‬.‫נוצרו‬ ‫ממנו‬ ‫הטיפוס‬ ‫של‬ ‫המחדל‬ ‫ברירת‬ ‫לערכי‬ ‫המשתנים‬ ‫יאותחלו‬ ,‫מפורש‬ ‫אתחול‬ ‫בהיעדר‬ ,class ClassName {//Class Variables Sectionstatic int num; // ‫ל‬ ‫הזה‬ ‫ובמקרה‬ ‫לטיפוס‬ ‫בהתאם‬ ‫המחדל‬ ‫ברירת‬ ‫לערך‬ ‫יאותחל‬ ,‫סטטי‬ ‫בבלוק‬ ‫אתחול‬ ‫ואין‬ ‫במידה‬-0//Instance Variables Section//Class Methods Section//Instance Methods Section}‫להופיע‬ ‫(יכולים‬ ‫האתחול‬ ‫בלוקי‬ ‫גם‬ ,‫סטטיים‬ ‫משתנים/מתודות‬ ‫של‬ ‫היצירה‬ ‫בסדר‬ ‫לקדימות‬ ‫בדומה‬‫יצירת‬ ‫טרם‬ ‫יבוצעו‬ ,)‫כמה‬‫לזיכרון‬ ‫המחלקה‬ ‫של‬ ‫הטעינה‬ ‫בזמן‬ ,‫האובייקטים‬‫האחרון‬ ‫הערך‬ ,‫שונים‬ ‫אתחול‬ ‫בבלוקי‬ ‫בכמה‬ ‫אותחל‬ ‫משתנה‬ ‫אותו‬ ‫אם‬ ,‫בו‬ ‫שיישאר‬ ‫זה‬ ‫הוא‬ ,‫שקיבל‬.:‫דרכים‬ ‫משתי‬ ‫באחת‬ ‫תיעשה‬ ‫מחלקה‬ ‫למשתנה‬ ‫פנייה‬‫בשם‬ ‫סטטי‬ ‫משתנה‬ ‫והוגדר‬ ‫(בהנחה‬countX‫במחלקה‬ClassName‫אובייק‬ ‫ונוצר‬‫בשם‬ ‫מהמחלקה‬ ‫ט‬objectName),‫הראשונה‬‫דרך‬ ‫פניה‬‫כל‬‫מהמחלקה‬ ‫אובייקט‬‫כזה‬ ‫נוצר‬ ‫באם‬ ,:objectName.countX=10;‫תוך‬ ,‫השנייה‬‫למחלקה‬ ‫ישירה‬ ‫פנייה‬‫ו‬‫מסוים‬ ‫אובייקט‬ ‫דרך‬ ‫לא‬:ClassName.countX=10;
  6. 6. ‫משתנים‬‫סטטיים‬‫סופיים‬–Final Static Variables‫השמורה‬ ‫המילה‬ ‫את‬ ‫להוסיף‬ ‫נוכל‬ ,‫לקבוע‬ ‫סטטי‬ ‫משתנה‬ ‫להפוך‬ ‫נרצה‬ ‫אם‬final:‫הבא‬ ‫באופן‬final static int CONSTVAR=5;.‫למחלקה‬ ‫קבוע‬ ‫יש‬ ,‫הרגע‬ ‫ומאותו‬ ‫ההצהרה‬ ‫בשורת‬ ‫אתחול‬ ,‫כלומר‬.‫זה‬ ‫בנושא‬ ‫הקונבנציה‬ ‫זו‬ ,‫גדולות‬ ‫באותיות‬ ‫ייכתבו‬ ‫קבועים‬ ‫של‬ ‫שמות‬ :‫נזכור‬‫אובייקט‬ ‫כל‬ ‫עבור‬ ‫מחדש‬ ‫פעם‬ ‫כל‬ ‫יווצר‬ ‫הוא‬ ‫אחרת‬ ,)‫לאובייקט‬ ‫מאובייקט‬ ‫משתנה‬ ‫ערכו‬ ‫כן‬ ‫אם‬ ‫(אלא‬ ‫כסטטי‬ ‫קבוע‬ ‫להגדיר‬ ‫רצוי‬!‫זיכרון‬ ‫משאבי‬ ‫מבחינת‬ ‫בזבזני‬ ‫וזה‬
  7. 7. ‫מחלקות‬-‫המשך‬‫מוגדרות‬ ‫ופעולות‬ ‫תכונות‬ ‫אילו‬ ‫לומר‬ ‫יכולים‬ ‫אנו‬ ,‫מסוים‬ ‫אובייקט‬ ‫על‬ ‫בהביטנו‬ ,‫כן‬ ‫אם‬‫בבואנו‬ ,‫כן‬ ‫ועל‬ ‫נוצר‬ ‫הוא‬ ‫ממנה‬ ‫במחלקה‬,‫מכן‬ ‫לאחר‬ .‫שלנו‬ ‫בתכנית‬ ‫תפקיד‬ ‫לשחק‬ ‫שהולכים‬ ‫האובייקטים‬ ‫את‬ ‫בראשית‬ ‫לדמיין‬ ‫שננסה‬ ‫רצוי‬ ,‫תכנית‬ ‫של‬ ‫קוד‬ ‫קטע‬ ‫לכתוב‬‫עלינו‬ ‫יש‬ ‫מחלקות‬ ‫אילו‬ ‫של‬ ‫הבנה‬ ‫לקבל‬ ,‫כך‬ ‫ומתוך‬ ‫עליהם‬ ‫להפעיל‬ ‫שניתן‬ ‫הפעולות‬ ‫ומהן‬ ‫תכונותיהם‬ ‫יהיו‬ ‫מה‬ ‫ולהבין‬ ‫לנסות‬.‫להגדיר‬‫לתכונות‬ ‫בנוסף‬(data members)‫ופעולות‬(function members)‫שלנו‬ ‫בתכנית‬ ‫אובייקטים‬ ‫בין‬ ‫יהיו‬ ‫קשרים‬ ‫אילו‬ ‫לדמיין‬ ‫נרצה‬ ,,,‫כן‬ ‫כמו‬‫אובייקטים‬ ‫אולי‬ ‫מכילים‬ ‫אובייקטים‬ ‫אילו‬‫מהיותם‬ ‫כחלק‬ ‫אחרים‬‫הקשרים‬ ‫אותם‬ ‫הם‬ ‫אלו‬ ‫קשרים‬ ...‫שלם‬ ‫אובייקט‬‫האובייקט‬ ‫לבין‬ ‫המחלקה‬ ‫הגדרת‬ ‫בין‬ ‫ליניארי‬ ‫יחס‬ ‫יש‬ ,‫כלומר‬ ,‫עצמן‬ ‫המחלקות‬ ‫בין‬ ‫הקיימים‬‫שייווצר‬.‫ממנה‬‫כל‬‫ממחלקה‬ ‫נוצר‬ ‫אובייקט‬‫מ‬ ‫כתוצאה‬‫ביצוע‬instantiation‫מ‬‫ה‬ ‫אותה‬‫מחלקה‬‫השמורה‬ ‫במילה‬ ‫שימוש‬ ‫ע"י‬new‫המחלקה‬ ‫ושם‬‫הבא‬ ‫באופן‬‫ו‬ ‫(מחרוזות‬‫גם‬ ‫ליצור‬ ‫ניתן‬ ‫מערכים‬‫ישירה‬ ‫השמה‬ ‫ע"י‬):new ClassName();‫ה‬ ‫בתהליך‬-instantiation‫האופרטור‬ ‫מקצה‬new‫בבנאי‬ ‫כך‬ ‫הוגדר‬ ‫באם‬ ‫אותו‬ ‫מאתחל‬ ,‫החדש‬ ‫האובייקט‬ ‫עבור‬ ‫זיכרון‬‫המחלקה‬‫אליו‬ ‫שישלחו‬ ‫לפרמטרים‬ ‫ובהתאם‬‫ולסיום‬‫מ‬‫חזיר‬reference‫לאובייקט‬‫במשתנה‬ ‫שיוכל‬ ‫הערך‬ ‫וזהו‬.‫לנו‬ ‫אין‬‫אפילו‬ ‫או‬ ‫שליטה‬‫גישה‬‫אחרות‬ ‫לשפות‬ ‫בניגוד‬ ,‫בזיכרון‬ ‫הפיזיות‬ ‫הכתובות‬ ‫למרחב‬‫את‬ ‫מהווה‬ ‫אינו‬ ‫שהמשתנה‬ ‫ומכאן‬‫אליו‬ ‫רפרנס‬ ‫אלא‬ ,‫עצמו‬ ‫האובייקט‬.‫ב‬ ‫שימוש‬ ‫שנבצע‬ ‫שבמקרה‬ ‫כמובן‬-new‫אז‬ ,)‫(הרפרנס‬ ‫החזרה‬ ‫ערך‬ ‫את‬ ‫לשמור‬ ‫מבלי‬‫ה‬ ‫ע"י‬ ‫ישוחרר‬ ,‫כך‬ ‫ובשל‬ ‫גישה‬ ‫חסר‬ ‫יהיה‬ ‫שנוצר‬ ‫האובייקט‬-garbage collector.‫שימוש‬ ‫מכלל‬ ‫שיצא‬ ‫למשאב‬ ‫כיאה‬this‫קורה‬ ‫זה‬ .‫הנוכחי‬ ‫האובייקט‬ ‫של‬ ‫הרפרנס‬ ‫על‬ ‫לדבר‬ ‫לעתים‬ ‫צורך‬ ‫לנו‬ ‫יש‬ ,‫המחלקה‬ ‫של‬ ‫ההגדרה‬ ‫בתחום‬ ‫נמצאים‬ ‫אנו‬ ‫כאשר‬‫כלשהי‬ ‫למתודה‬ ‫הנוכחי‬ ‫לאובייקט‬ ‫הרפרנס‬ ‫את‬ ‫לשלוח‬ ‫מעוניינים‬ ‫אנו‬ ‫כאשר‬‫אחרת‬ ‫מתודה‬ ‫של‬ ‫פעולתה‬ ‫מתוך‬‫אנו‬ ‫כאשר‬ ‫או‬ ,‫נמצאים‬.‫המופע‬ ‫של‬ ‫משתנה‬ ‫ושם‬ ‫המתודה‬ ‫של‬ ‫מקומי‬ ‫משתנה‬ ‫שם‬ ‫בין‬ ‫שמות‬ ‫כפילות‬ ‫ונוצרת‬ ‫מתודה‬ ‫של‬ ‫הגדרתה‬ ‫בתחום‬‫השמורה‬ ‫המילה‬ ‫באמצעות‬ ‫הנוכחי‬ ‫לאובייקט‬ ‫הרפרנס‬ ‫את‬ ‫נציין‬ ‫אנו‬ ,‫הללו‬ ‫המקרים‬ ‫בשני‬this‫נשלח‬ ‫פשוט‬ ,‫הראשון‬ ‫במקרה‬ .‫את‬this‫הנוכחי‬ ‫לאובייקט‬ ‫כרפרנס‬‫את‬ ‫נציין‬ ‫השני‬ ‫ובמקרה‬this‫לפני‬‫ביניהם‬ ‫מפרידה‬ ‫נקודה‬ ‫כאשר‬ ‫המשתנה‬ ‫שם‬‫אליו‬ ‫פונים‬ ‫שאנו‬ ‫זה‬ ‫הוא‬ ‫מהמשתנים‬ ‫מי‬ ‫לגבי‬ ‫כאינדיקציה‬‫כ‬ ,‫לומר‬:this.varName‫בעוד‬ ,‫המופע‬ ‫במשתנה‬ ‫שמדובר‬ ‫יציין‬varName.‫המקומי‬ ‫במשתנה‬ ‫שמדובר‬ ‫יציין‬public class ClassName {int test;public void setTest (int test) {this.test=test;}}
  8. 8. ‫מחלק‬‫ות‬‫אבסטרקטי‬‫ו‬‫ת‬–Abstract Classes.‫מופע‬ ‫ממנה‬ ‫לייצר‬ ‫ניתן‬ ‫שלא‬ ‫מחלקה‬ ‫היא‬ ,‫אבסטרקטית‬ ‫מחלקה‬ ,‫לממשק‬ ‫בדומה‬‫להופיע‬ ‫יכולים‬ ‫אבסטרקטית‬ ‫במחלקה‬ ,‫מממשק‬ ‫בשונה‬‫מימושים‬‫מפורשים‬.‫כאבסטרקטיות‬ ‫הוגדרו‬ ‫שאינן‬ ‫מתודות‬ ‫של‬‫קווים‬ ‫רק‬ ‫מהווה‬ ‫לא‬ ‫זה‬ ‫מסוג‬ ‫ששבלונה‬ ‫רק‬ ,‫שבלונות‬ ‫ליצירת‬ ‫שבלונה‬ ‫מעיין‬ ,‫שוב‬ ,‫כללית‬ ‫תבנית‬ ‫להגדיר‬ ‫ניתן‬ ,‫זה‬ ‫באופן‬‫כלליים‬‫והצהרות‬‫ה‬ ‫במחלקות‬ ‫להיות‬ ‫שצריכים‬ ‫והמשתנים‬ ‫המתודות‬ ‫עבור‬‫מממשו‬‫ת‬‫של‬ ‫במקרה‬ ‫שנעשה‬ ‫(כפי‬‫ה‬)‫ממשק‬‫אלא‬ ,,‫שכאן‬‫הגדרת‬ ‫אופן‬ ‫את‬ ‫גם‬ ‫מהווה‬ ‫היא‬ ,‫מהמתודות‬ ‫חלק‬ ‫עבור‬‫ן‬-‫מימושן‬‫היורשות‬ ‫במחלקות‬.‫לא‬ ,‫(כלומר‬ ‫ממנה‬ ‫ירושה‬ ‫באמצעות‬ ‫ייעשה‬ ‫אבסטרקטית‬ ‫במחלקה‬ ‫השימוש‬ ,‫בממשק‬ ‫ולא‬ ‫במחלקה‬ ‫מדובר‬ ‫זאת‬ ‫ובכל‬ ‫היות‬‫ממחלקות‬ ‫לרשת‬ ‫ניתן‬‫נוספות‬‫לממש‬ ‫חובה‬ ‫חלה‬ ,‫מופע‬ ‫ממנה‬ ‫לייצר‬ ‫שרוצים‬ ‫מחלקה‬ ‫זו‬ ‫אם‬ ,‫היורשת‬ ‫ובמחלקה‬ ,)‫במקביל‬-‫לדרוס‬‫ש‬ ‫המתודות‬ ‫כל‬ ‫את‬‫מהמחל‬ ‫הגיעו‬‫ו‬ ‫המורישה‬ ‫האבסטרקטית‬ ‫קה‬‫הו‬‫צהרו‬‫בה‬‫כ‬‫מתודות‬‫אבסטר‬‫המחלקה‬ ,‫אחרת‬ ,‫קטיות‬‫היורשת‬‫מוגדרת‬ ‫להיות‬ ‫חייבת‬‫כאבסטרקטית‬.‫היא‬ ‫גם‬:‫כך‬ ‫תיראה‬ ‫אבסטרקטית‬ ‫מחלקה‬ ‫של‬ ‫הגדרתה‬ ‫שורת‬public abstract class AbstractClass {public abstract void abstractMethod(); // ‫מתודה‬ ,‫ובתוכה‬:‫כך‬ ‫תיראה‬ ‫אבסטרקטית‬}‫אבסטרקטיות‬ ‫מתודות‬ ‫בה‬ ‫אין‬ ,‫כלומר‬ .‫מלא‬ ‫באופן‬ ‫ממומשות‬ ‫בה‬ ‫המתודות‬ ‫שכל‬ ‫כזו‬ ‫להיות‬ ‫גם‬ ‫יכולה‬ ‫אבסטרקטית‬ ‫מחלקה‬‫לייצר‬ ‫ניתן‬ ‫אך‬ ,‫המחלקה‬ ‫של‬ ‫מופע‬ ‫לייצר‬ ‫ניתן‬ ‫שלא‬ ‫בכך‬ ‫תהיה‬ ‫כאן‬ ‫והמגבלה‬ ‫כלל‬‫ממחלקה‬ ‫שתירש‬ ,‫ריקה‬ ‫אפילו‬ ,‫מחלקה‬‫נ‬ ‫כבר‬ ‫שלה‬ ‫ומופע‬ ‫זו‬ ‫אבסטרקטית‬.‫לייצר‬ ‫יהיה‬ ‫יתן‬‫סופיות‬ ‫מחלקות‬–Final Classes‫ולממש‬ ‫אחרת‬ ‫ממחלקה‬ ‫לרשת‬ ‫תוכל‬ ‫זו‬ ‫מחלקה‬ .‫הגדרתה‬ ‫את‬ ‫ולהרחיב‬ ‫ממנה‬ ‫לרשת‬ ‫ניתן‬ ‫יהיה‬ ‫שלא‬ ‫כך‬ ‫מחלקה‬ ‫להגדיר‬ ‫ניתן‬."‫הירושה‬ ‫שושלת‬ ‫"סוף‬ ‫תהיה‬ ‫היא‬ ‫אך‬ ,‫ממשק‬:‫הבא‬ ‫באופן‬ ‫הגדרה‬ ‫לבצע‬ ‫יש‬ ‫לסופית‬ ‫מחלקה‬ ‫להפוך‬ ‫ע"מ‬public final class ClassName {}‫מראש‬ ‫מוגדרות‬ ‫מחלקות‬–defined Classes-Pre‫שהוא‬ ‫משמעותו‬ ,‫שכזו‬ ‫מחלקה‬ ‫מסוג‬ ‫שמשתנה‬ ‫כך‬ ,‫כמחלקות‬ ‫בגאווה‬ ‫עבורנו‬ ‫הוגדרו‬ ‫כבר‬ ,‫ושימושיים‬ ‫מוכרים‬ ‫נתונים‬ ‫מבני‬,‫ערימה‬ :‫לדוגמה‬ ,‫מסוים‬ ‫במבנה‬ ‫אחרים‬ ‫באובייקטים‬ ‫להחזיק‬ ‫מיועד‬.‫וכד‬ ‫מקושרת‬ ‫רשימה‬ ,‫וקטור‬‫ע"מ‬:‫מהחבילה‬ ‫כולם‬ ‫את‬ ‫או‬ ‫הרצוי‬ ‫המבנה‬ ‫את‬ ‫לייבא‬ ‫יש‬ ,‫ואחרים‬ ‫אלו‬ ‫במבנים‬ ‫להשתמש‬import java.util.*;‫מהמבנים‬ ‫אובייקטים‬ ‫ליצור‬ ‫יהיה‬ ‫ניתן‬ ,‫הייבוא‬ ‫לאחר‬,‫לדוגמה‬ ,‫הקיימים‬:‫הבא‬ ‫באופן‬Stack s=new Stack();Vector v=new Vector();LinkedList ll=new LinkedList();

    Be the first to comment

    Login to see the comments

  • jery111

    Jul. 16, 2016

חלק מסדרת הרצאות בנושא "תכנות מונחה עצמים בסביבת ג'אווה", והפעם: מחלקות ואובייקטים / כיתות ומופעים.

Views

Total views

3,470

On Slideshare

0

From embeds

0

Number of embeds

66

Actions

Downloads

33

Shares

0

Comments

0

Likes

1

×