SlideShare uma empresa Scribd logo
1 de 9
Baixar para ler offline
‫אובייקטים‬–‫מופעים‬-Instances
‫קבוצות‬ ‫לתתי‬ ‫לרוב‬ ‫משתייכים‬ ‫אלו‬ ‫עצמים‬ .‫בעצמים‬ ‫מלא‬ ‫אותנו‬ ‫הסובב‬ ‫העולם‬‫ש‬‫קבוצות‬ ‫בעצמן‬ ‫מרכיבות‬‫של‬ ‫יותר‬ ‫גדולות‬
‫או‬ ‫יחסים‬ ‫פעמים‬ ‫הרבה‬ ‫יש‬ ‫הקבוצות‬ ‫בין‬ .‫הלאה‬ ‫וכן‬ ‫עצמים‬‫קבוצות‬ ‫אותן‬ ‫של‬ ‫חלוקה‬ ‫לבצע‬ ‫וניתן‬ ,‫עקיפים‬ ‫או‬ ‫ישירים‬ ,‫קשרים‬
.‫חולקות‬ ‫או‬ ‫מקיימות‬ ‫שהן‬ ‫מסוימות‬ ‫תכונות‬ ‫או‬ ,‫אופיין‬ ‫עפ"י‬
,‫מכאן‬‫ל‬ ‫המאפשר‬ ,‫החיים‬ ‫עולם‬ ,‫החיצון‬ ‫לעולם‬ ‫שקיים‬ ‫העמוק‬ ‫הקשר‬ ‫את‬ ‫להבין‬ ‫ניתן‬,‫עצמים‬ ‫כגון‬ ‫מושגים‬ ‫על‬ ‫לדבר‬ ‫נו‬,‫יישום‬
‫הורשה‬‫צורתיות‬ ‫רב‬ ,‫רב‬ ‫קונספטים‬ ‫ועוד‬‫האמתי‬ ‫בעולם‬ ‫קיומם‬ ‫בעצם‬ ‫טמון‬ ‫שמקורם‬ ‫ים‬,‫תחום‬ ‫אותו‬ ‫לתוך‬ ‫בהשאלה‬ ‫נלקחו‬
‫עצמים‬ ‫מונחה‬ ‫תכנות‬ ‫הקרוי‬ ‫המחשב‬ ‫במדעי‬‫מרשימות‬ ‫ויכולות‬ ‫חיים‬ ‫רוח‬ ‫שהכניס‬ ‫דבר‬ ,‫ממנו‬ ‫נפרד‬ ‫בלתי‬ ‫לחלק‬ ‫והפכו‬‫ל‬‫תחום‬
.‫בכלל‬ ‫התכנות‬
‫בעולם‬ ‫גם‬ ‫כך‬ ,‫האמתי‬ ‫בעולם‬ ‫כמו‬‫ה‬‫עצם‬ ‫לכל‬ ‫לשייך‬ ‫ניתן‬ ,‫העצמים‬ ‫מונחה‬ ‫תכנות‬‫(א‬)‫ובייקט‬‫אותו‬ ‫המאפיינות‬ ‫ופעולות‬ ‫תכונות‬
)..."‫"גובה‬ ,"‫אישי‬ '‫"מס‬ ,"‫משפחה‬ ‫"שם‬ ,"‫"שם‬ ‫הן‬ ‫שלו‬ ‫מהתכונות‬ ‫חלק‬ ,‫בצבא‬ ‫חייל‬ ‫לדוגמה‬ ‫(ניקח‬.
,‫בתכנות‬,‫האובייקט‬ ‫להיות‬ ‫יכול‬ ‫החייל‬‫ה‬ ‫התכונות‬‫ן‬‫משתנים‬‫לאמוד‬ ‫שניתן‬‫המתודות‬ ‫הן‬ ‫והפעולות‬ ‫בתוכם‬ ‫המוכל‬ ‫הערך‬ ‫ע"י‬
‫על‬ ‫לביצוע‬ ‫הניתנות‬‫האובייקט‬)..."‫למטרה‬ ‫"קלע‬ ,"‫אישי‬ '‫מס‬ ‫"החזר‬ ‫להיות‬ ‫יכול‬ ‫זה‬ ‫חייל‬ ‫של‬ ‫(במקרה‬.
‫להיות‬ ‫יכול‬ ‫אובייקט‬"‫"שערה‬ ‫כגון‬ ‫פיזי‬‫לנשור‬ ‫כמו‬ ‫ופעולות‬ ‫וחוזק‬ ‫צבע‬ ‫כמו‬ ‫תכונות‬ ‫עם‬‫מצב‬ ‫ובדיקת‬‫בריאותי‬‫או‬ ,‫אבסטרקטי‬
‫כגון‬"‫תספורת‬"‫להתחיל‬ ‫כמו‬ ‫ופעולות‬ ‫ועלות‬ ‫משך‬ ‫כמו‬ ‫תכונות‬ ‫עם‬,‫להסתיים‬‫התקדמות‬ ‫סטטוס‬ ‫להחזיר‬ ‫או‬.
‫ע"י‬ ‫יווצר‬ ‫אובייקט‬instantiation:‫הבא‬ ‫באופן‬ ‫מסוימת‬ ‫ממחלקה‬ )‫מופע‬ ‫(יצירת‬
ClassName objectName = new ClassName(/*parameters for the class's constructor if needed*/);
‫מופע‬ ‫משתני‬–Instance Variables
‫לאובייקט‬ ‫שייך‬ ‫אשר‬ ‫משתנה‬ ‫כל‬‫משתנ‬ ‫נקרא‬‫מופע‬ ‫ה‬,‫כזה‬ ‫משתנה‬‫מבלי‬ ‫האובייקט‬ ‫אותו‬ ‫עבור‬ ‫ייחודי‬ ‫באופן‬ ‫לשינוי‬ ‫ניתן‬
‫אם‬ ‫שגם‬ ‫כך‬ ,‫הסוג‬ ‫מאותו‬ ‫האובייקטים‬ ‫שאר‬ ‫על‬ ‫שישפיע‬‫אובייקטים‬ '‫מס‬‫ובטיפוסם‬ ‫בשמם‬ ‫הזהים‬ ‫במשתנים‬ ‫מחזיקים‬‫שינוי‬ ,
‫זה‬ ‫משתנה‬ ‫של‬‫עבור‬ ‫ורק‬ ‫אך‬ ‫ייעשה‬‫אותו‬ ‫של‬ ‫המשתנה‬‫השינוי‬ ‫נערך‬ ‫בו‬ ‫הספציפי‬ ‫האובייקט‬.
‫נניח‬‫אותם‬ ‫יהיו‬ ‫שלשניהם‬ ‫כך‬ ,‫בדיוק‬ ‫התבנית‬ ‫אותה‬ ‫לפי‬ ‫ייבנה‬ ‫מהם‬ ‫אחד‬ ‫כל‬ ,"‫"מכונית‬ ‫מטיפוס‬ ‫אובייקטים‬ ‫שני‬ ‫ויצרנו‬
‫אחד‬ ‫כל‬ ‫עבור‬ ‫שונה‬ ‫ערך‬ ‫להזין‬ ‫ניתן‬ ‫מהאובייקטים‬ ‫אחד‬ ‫ובכל‬ )"‫ייצור‬ ‫"שנת‬ ,"‫מייצרת‬ ‫"חברה‬ ‫(לדוגמה‬ ‫בדיוק‬ ‫המשתנים‬
.‫ביניהם‬ ‫תלות‬ ‫של‬ ‫קשר‬ ‫מבלי‬ ‫מהמשתנים‬
‫לה‬ ‫יכולה‬ ‫נוספת‬ ‫דוגמה‬‫כאשר‬ ‫למשל‬ ‫יות‬‫על‬ ‫משפיע‬ ‫זה‬ ‫אין‬ ,‫לצביקה‬ ‫שמו‬ ‫את‬ ‫לשנות‬ ‫מחליט‬ ‫ירון‬ ‫בשם‬ ‫אדם‬‫א‬ ‫של‬ ‫שמם‬‫נשים‬
‫עם‬ ‫אחרים‬ ‫אנשים‬ ‫על‬ ‫כולל‬ ‫אחרים‬.‫בלבד‬ ‫האדם‬ ‫אותו‬ ‫על‬ ‫אלא‬ ,‫ירון‬ ‫השם‬‫את‬ ‫שינה‬ ‫ירון‬‫שמו‬.‫האנשים‬ ‫כל‬ ‫של‬ ‫שמם‬ ‫את‬ ‫ולא‬
‫מופע‬ ‫משתנה‬ ‫להגדרת‬ ‫דוגמה‬:
class ClassName {
//Class Variables Section
//Instance Variables Section
private String id;
//Class Methods Section
//Instance Methods Section
}
‫אובייקט‬ ‫של‬ ‫החיים‬ ‫סיום‬–finalization
‫המתודה‬finalize()‫מ‬ ‫מגיעה‬-Object‫ה‬ ‫ע"י‬ ‫מורצת‬ ‫שהיא‬ ‫העובדה‬ ‫מלבד‬ ‫מיוחדת‬ ‫פעולה‬ ‫מבצעת‬ ‫שהיא‬ ‫מבלי‬-JVM‫בתהליך‬
‫לבצע‬ ‫ניתן‬ .'‫וכד‬ ‫משאבים‬ ‫שחרור‬ ,"‫פינות‬ ‫"סגירת‬ ‫לשם‬ ‫מיועדת‬ ‫היא‬ .‫האובייקט‬ ‫של‬ ‫חייו‬ ‫סיום‬overriding‫ע"מ‬ ‫למתודה‬
:‫כך‬ ‫בדיוק‬ ‫להיראות‬ ‫צריכה‬ ‫הגדרתה‬ ,‫זאת‬ ‫לעשות‬ ‫ניתן‬ ‫שיהיה‬ ‫וע"מ‬ ,‫מחדש‬ ‫פעולתה‬ ‫את‬ ‫להגדיר‬
protected void finalize() { /*New logic goes here*/ }
‫מתוך‬ ‫מתודה‬ ‫לאותה‬ ‫קריאה‬ ‫לבצע‬ ‫יש‬ ,‫אחרת‬ ‫למחלקה‬ ‫שמורישה‬ ‫מחלקה‬ ‫ע"י‬ ‫נדרסה‬ ‫המתודה‬ ‫אם‬finalize‫שהוגדרה‬
:‫הבא‬ ‫באופן‬ ‫היורשת‬ ‫במחלקה‬
super.finalize();
,‫זו‬ ‫במתודה‬ ‫לשימוש‬ ‫ההסברים‬ ‫למרות‬‫שה‬ ‫לכך‬ ‫ערובה‬ ‫אין‬-GarbageCollector‫את‬ ‫יפעיל‬finalize()‫בזמן‬‫"לבנות‬ ‫אין‬ ‫ולכן‬"
‫עליה‬‫שת‬‫תפקד‬‫באופן‬‫ודאי‬.
‫מחלקות‬-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
}
‫מחלקה‬ ‫משתני‬-‫סטטיים‬ ‫משתנים‬–Static Variables
,‫קודם‬ ‫הזכרנו‬‫שכל‬ ‫כך‬ ,‫מחלקה‬ ‫להגדיר‬ ‫קבוצה‬ ‫כל‬ ‫ועבור‬ ‫משותף‬ ‫מכנה‬ ‫בעלות‬ ‫לקבוצות‬ ‫לשייך‬ ‫ניתן‬ ‫שונים‬ ‫שאובייקטים‬
‫התכונות‬ ‫אותן‬ ‫כל‬ ‫את‬ ‫בדיוק‬ ,‫השבלונה‬ ‫מאותה‬ ‫נוצר‬ ‫שהוא‬ ‫לעובדה‬ ‫בהתאם‬ ,‫יכיל‬ ,‫מסוימת‬ ‫ממחלקה‬ ‫שייווצר‬ ‫אובייקט‬
‫משתני/מתו‬ ‫כאמור‬ ‫נקראים‬ ‫אלו‬ ‫ומתודות‬ ‫משתנים‬ .‫במחלקה‬ ‫שמוגדרות‬ ‫והפעולות‬.‫מופע‬ ‫דות‬
‫משתני‬ .‫המחלקה‬ ‫עבור‬ ‫אחת‬ ‫פעם‬ ‫אלא‬ ,‫אובייקט‬ ‫כל‬ ‫עבור‬ ‫נוצרים‬ ‫לא‬ ‫אלו‬ ,‫סטטיים‬ ‫משתנים/מתודות‬ ‫גם‬ ‫קיימים‬ ,‫לעומתם‬
‫מעיין‬ ,‫כולה‬ ‫המחלקה‬ ‫את‬ ‫משמשים‬ ‫או‬ ‫המאפיינים‬ ‫נתונים‬ ‫להכיל‬ ‫תפקידם‬ ‫אלו‬ ‫סטטיים‬ ‫מחלקה‬shared resource‫ומתודות‬ ,
‫מסוי‬ ‫אובייקט‬ ‫על‬ ‫פועלות‬ ‫אינן‬ ‫סטטיות‬ ‫מחלקה‬.‫למחלקה‬ ‫גלובליות‬ ‫פעולות‬ ‫מבצעות‬ ‫אלא‬ ,‫מופע‬ ‫מתודות‬ ‫כמו‬ ‫ם‬
‫נמשיך‬ ,‫סטטיים‬ ‫משתנים‬ ‫הם‬ ‫מה‬ ‫להבין‬ ‫מנת‬ ‫על‬ ,‫קבוע‬ ‫עובד‬ ‫טופס‬ ‫לפי‬ ‫עובדים‬ ‫שמקבל‬ ‫המפעל‬ ‫של‬ ‫בדוגמה‬ ‫השתמשנו‬ ‫אם‬
,‫המפעל‬ ‫של‬ ‫הקמתו‬ ‫מרגע‬ :‫קודם‬ ‫הזכרנו‬ ‫שלא‬ ‫פרט‬ ‫ונציין‬ ‫זו‬ ‫דוגמה‬ ‫עם‬‫הע‬ ‫של‬ ‫קבלתו‬ ‫מעת‬ ,"‫עובדים‬ ‫"ספר‬ ‫המפעל‬ ‫מנהל‬‫ובד‬
‫בעמוד‬ ‫אותו‬ ‫פותח‬ ,‫העובדים‬ ‫ספר‬ ‫את‬ ‫מקבל‬ ,)‫הטופס‬ ‫את‬ ‫מילא‬ ‫(טרם‬ ‫במפעל‬ ‫לעבוד‬ ‫שהתחיל‬ ‫טרם‬ ,‫עובד‬ ‫כל‬ ,‫הראשון‬
‫מגיע‬ ‫שמואלי‬ ‫רן‬ ‫בשם‬ ‫ואדם‬ ‫שנניח‬ ‫כך‬ ,)‫משפחה‬ ‫ושם‬ ‫שם‬ ,‫רץ‬ ‫בסדר‬ ‫סידורי‬ '‫(מס‬ ‫הקיים‬ ‫הפורמט‬ ‫לפי‬ ‫שורה‬ ‫ומוסיף‬ ‫האחרון‬
‫השור‬ ‫לדוגמה‬ ‫הן‬ ‫בספר‬ ‫האחרונות‬ ‫והשורות‬ ,‫במפעל‬ ‫לעבוד‬:‫הבאות‬ ‫ות‬
070‫משה‬‫קדמי‬
070‫ליאורה‬‫שרון‬
:‫הבאה‬ ‫השורה‬ ‫תהיה‬ ‫שמואלי‬ ‫רן‬ ‫שיוסיף‬ ‫השורה‬
000‫רן‬‫שמואלי‬
.‫המניין‬ ‫מן‬ ‫לעובד‬ ‫ויהפוך‬ ‫עובד‬ ‫כרטיס‬ ‫ימלא‬ ,‫העובדים‬ ‫בספר‬ ‫שהתבקש‬ ‫הנתונים‬ ‫את‬ ‫שיזין‬ ‫לאחר‬
‫לגבי‬ ‫לנתונים‬ ‫לגשת‬ ‫היה‬ ‫יכול‬ ,‫המניין‬ ‫מן‬ ‫לעובד‬ ‫רן‬ ‫שההפך‬ ‫לפני‬ ‫שעוד‬ ,‫בעובדה‬ ‫נבחין‬,‫כן‬ ‫כמו‬ .‫קבלתו‬ ‫טרם‬ ‫במפעל‬ ‫העובדים‬
.)‫מהאחרון‬ ‫יותר‬ ‫(אחד‬ ‫בעצמו‬ ‫הוא‬ ‫יהיה‬ ‫עובד‬ '‫מס‬ ‫איזה‬ ‫ולהבין‬ ‫במפעל‬ ‫עובדים‬ ‫כרגע‬ ‫עובדים‬ ‫כמה‬ ‫לראות‬ ‫יכול‬
‫העובד‬ '‫מס‬ ‫עם‬ ‫העובדים‬ ‫רשימת‬ :)‫(המחלקה‬ ‫עצמו‬ ‫המפעל‬ ‫של‬ ‫הנתונים‬ ‫בעצם‬ ‫הם‬ .‫מחלקה‬ ‫משתני‬ ‫מתנהגים‬ ,‫האופן‬ ‫ובאותו‬
‫הסטטי‬ ‫המשתנה‬ ‫של‬ ‫(ערכו‬–‫ה‬‫לעובד‬ ‫שייכים‬ ‫אינם‬ ‫הם‬ ,)‫מחרוזות‬ ‫ושתי‬ ‫סידורי‬ '‫מס‬ ‫שמכיל‬ ‫מבנה‬ ‫הוא‬ ‫הסטטי‬ ‫משתנה‬
‫עובדים‬ ‫להיות‬ ‫קבלתם‬ ‫טרם‬ ‫אפילו‬ ‫במפעל‬ ‫העובדים‬ ‫לכל‬ ‫נגישים‬ ‫היו‬ ‫והם‬ )‫ספציפי‬ ‫(לאובייקט‬ ‫ספציפי‬‫יכולה‬ ‫למשתנה‬ ‫(גישה‬
.)‫מסוים‬ ‫מופע‬ ‫דרך‬ ‫לא‬ ‫אפילו‬ ,‫המחלקה‬ ‫דרך‬ ‫ישירות‬ ‫להיעשות‬
‫מתבצעת‬ ‫סטטי‬ ‫משתנה‬ ‫הגדרת‬‫המילה‬ ‫הוספת‬ ‫ע"י‬static,‫עליו‬ ‫ההצהרה‬ ‫בעת‬ ‫המשתנה‬ ‫טיפוס‬ ‫לפני‬:‫הבא‬ ‫באופן‬
class ClassName {
//Class Variables Section
static String id;
//Instance Variables Section
//Class Methods Section
//Instance Methods Section
}
‫למשתנה‬ ‫פניה‬ ‫וכל‬ ,‫מהמחלקה‬ ‫ייווצרו‬ ‫אובייקטים‬ ‫כמה‬ ‫משנה‬ ‫לא‬ ,‫יחיד‬ ‫משתנה‬ ‫עבור‬ ‫בזיכרון‬ ‫מקום‬ ‫והוקצה‬ ‫נוצר‬ ,‫זה‬ ‫באופן‬
.‫בזיכרון‬ ‫המקום‬ ‫לאותו‬ ‫ומכאן‬ ‫הרפרנס‬ ‫לאותו‬ ‫תתבצע‬ ‫אובייקט‬ ‫כל‬ ‫ע"י‬ ‫זה‬‫סטטיים‬ ‫משתנה/מתודה‬ ‫של‬ ‫והיצירה‬ ‫ההקצאה‬
‫יצירת‬ ‫לפני‬ ‫עוד‬ ,‫המחלקה‬ ‫של‬ ‫הטעינה‬ ‫בזמן‬ ‫כבר‬ ‫נעשות‬‫מאותחלים‬ ‫וערכיהם‬ ‫אובייקטים‬:‫דרכים‬ ‫משלוש‬ ‫באחת‬
‫ה‬‫ראשונה‬‫ידני‬ ‫באופן‬ ,-‫מפורש‬,.‫ההצהרה‬ ‫בעת‬ ‫השמה‬ ‫תוך‬
class ClassName {
//Class Variables Section
static int num=5;
//Instance Variables Section
//Class Methods Section
//Instance Methods Section
}
‫השנייה‬,‫בלוק‬ ‫דרך‬‫סטטיים‬ ‫למשתנים‬ ‫אתחול‬.:‫הבאה‬ ‫בצורה‬ ‫שנכתב‬ ‫סטטי‬ ‫בלוק‬ ‫זהו‬
class ClassName {
//Class Variables Section
static int num;
//Instance Variables Section
//Class Methods Section
//Instance Methods Section
Static {//‫סטטי‬ ‫בבלוק‬ ‫שימוש‬ ‫בה‬ ‫שיעשה‬ ‫ע"מ‬ ‫סטטית‬ ‫להיות‬ ‫חייבת‬ ‫פנימית‬ ‫מחלקה‬ .‫המחלקה‬ ‫בקובץ‬ ‫מקום‬ ‫בכל‬ ‫להופיע‬ ‫יכול‬ ‫סטטי‬ ‫בלוק‬
num=10;
}
}
‫השלישית‬.‫נוצרו‬ ‫ממנו‬ ‫הטיפוס‬ ‫של‬ ‫המחדל‬ ‫ברירת‬ ‫לערכי‬ ‫המשתנים‬ ‫יאותחלו‬ ,‫מפורש‬ ‫אתחול‬ ‫בהיעדר‬ ,
class ClassName {
//Class Variables Section
static int num; // ‫ל‬ ‫הזה‬ ‫ובמקרה‬ ‫לטיפוס‬ ‫בהתאם‬ ‫המחדל‬ ‫ברירת‬ ‫לערך‬ ‫יאותחל‬ ,‫סטטי‬ ‫בבלוק‬ ‫אתחול‬ ‫ואין‬ ‫במידה‬-0
//Instance Variables Section
//Class Methods Section
//Instance Methods Section
}
‫להופיע‬ ‫(יכולים‬ ‫האתחול‬ ‫בלוקי‬ ‫גם‬ ,‫סטטיים‬ ‫משתנים/מתודות‬ ‫של‬ ‫היצירה‬ ‫בסדר‬ ‫לקדימות‬ ‫בדומה‬‫יצירת‬ ‫טרם‬ ‫יבוצעו‬ ,)‫כמה‬
‫לזיכרון‬ ‫המחלקה‬ ‫של‬ ‫הטעינה‬ ‫בזמן‬ ,‫האובייקטים‬‫האחרון‬ ‫הערך‬ ,‫שונים‬ ‫אתחול‬ ‫בבלוקי‬ ‫בכמה‬ ‫אותחל‬ ‫משתנה‬ ‫אותו‬ ‫אם‬ ,
‫בו‬ ‫שיישאר‬ ‫זה‬ ‫הוא‬ ,‫שקיבל‬.
:‫דרכים‬ ‫משתי‬ ‫באחת‬ ‫תיעשה‬ ‫מחלקה‬ ‫למשתנה‬ ‫פנייה‬
‫בשם‬ ‫סטטי‬ ‫משתנה‬ ‫והוגדר‬ ‫(בהנחה‬countX‫במחלקה‬ClassName‫אובייק‬ ‫ונוצר‬‫בשם‬ ‫מהמחלקה‬ ‫ט‬objectName)
,‫הראשונה‬‫דרך‬ ‫פניה‬‫כל‬‫מהמחלקה‬ ‫אובייקט‬‫כזה‬ ‫נוצר‬ ‫באם‬ ,:
objectName.countX=10;
‫תוך‬ ,‫השנייה‬‫למחלקה‬ ‫ישירה‬ ‫פנייה‬‫ו‬‫מסוים‬ ‫אובייקט‬ ‫דרך‬ ‫לא‬:
ClassName.countX=10;
‫משתנים‬‫סטטיים‬‫סופיים‬–Final Static Variables
‫השמורה‬ ‫המילה‬ ‫את‬ ‫להוסיף‬ ‫נוכל‬ ,‫לקבוע‬ ‫סטטי‬ ‫משתנה‬ ‫להפוך‬ ‫נרצה‬ ‫אם‬final:‫הבא‬ ‫באופן‬
final static int CONSTVAR=5;
.‫למחלקה‬ ‫קבוע‬ ‫יש‬ ,‫הרגע‬ ‫ומאותו‬ ‫ההצהרה‬ ‫בשורת‬ ‫אתחול‬ ,‫כלומר‬
.‫זה‬ ‫בנושא‬ ‫הקונבנציה‬ ‫זו‬ ,‫גדולות‬ ‫באותיות‬ ‫ייכתבו‬ ‫קבועים‬ ‫של‬ ‫שמות‬ :‫נזכור‬
‫אובייקט‬ ‫כל‬ ‫עבור‬ ‫מחדש‬ ‫פעם‬ ‫כל‬ ‫יווצר‬ ‫הוא‬ ‫אחרת‬ ,)‫לאובייקט‬ ‫מאובייקט‬ ‫משתנה‬ ‫ערכו‬ ‫כן‬ ‫אם‬ ‫(אלא‬ ‫כסטטי‬ ‫קבוע‬ ‫להגדיר‬ ‫רצוי‬
!‫זיכרון‬ ‫משאבי‬ ‫מבחינת‬ ‫בזבזני‬ ‫וזה‬
‫מחלקות‬-‫המשך‬
‫מוגדרות‬ ‫ופעולות‬ ‫תכונות‬ ‫אילו‬ ‫לומר‬ ‫יכולים‬ ‫אנו‬ ,‫מסוים‬ ‫אובייקט‬ ‫על‬ ‫בהביטנו‬ ,‫כן‬ ‫אם‬‫בבואנו‬ ,‫כן‬ ‫ועל‬ ‫נוצר‬ ‫הוא‬ ‫ממנה‬ ‫במחלקה‬
,‫מכן‬ ‫לאחר‬ .‫שלנו‬ ‫בתכנית‬ ‫תפקיד‬ ‫לשחק‬ ‫שהולכים‬ ‫האובייקטים‬ ‫את‬ ‫בראשית‬ ‫לדמיין‬ ‫שננסה‬ ‫רצוי‬ ,‫תכנית‬ ‫של‬ ‫קוד‬ ‫קטע‬ ‫לכתוב‬
‫עלינו‬ ‫יש‬ ‫מחלקות‬ ‫אילו‬ ‫של‬ ‫הבנה‬ ‫לקבל‬ ,‫כך‬ ‫ומתוך‬ ‫עליהם‬ ‫להפעיל‬ ‫שניתן‬ ‫הפעולות‬ ‫ומהן‬ ‫תכונותיהם‬ ‫יהיו‬ ‫מה‬ ‫ולהבין‬ ‫לנסות‬
.‫להגדיר‬
‫לתכונות‬ ‫בנוסף‬(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;
}
}
‫מחלק‬‫ות‬‫אבסטרקטי‬‫ו‬‫ת‬–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();

Mais conteúdo relacionado

Mais de מורן אלקובי

Mais de מורן אלקובי (20)

ג'אווה - תכנות מונחה עצמים - מצייני גישה/רמות חשיפה
ג'אווה - תכנות מונחה עצמים - מצייני גישה/רמות חשיפהג'אווה - תכנות מונחה עצמים - מצייני גישה/רמות חשיפה
ג'אווה - תכנות מונחה עצמים - מצייני גישה/רמות חשיפה
 
ג'אווה - תכנות מונחה עצמים - מתודות - שליפה והכנסה, סטטיות, סופיות ומתודות שע...
ג'אווה - תכנות מונחה עצמים - מתודות - שליפה והכנסה, סטטיות, סופיות ומתודות שע...ג'אווה - תכנות מונחה עצמים - מתודות - שליפה והכנסה, סטטיות, סופיות ומתודות שע...
ג'אווה - תכנות מונחה עצמים - מתודות - שליפה והכנסה, סטטיות, סופיות ומתודות שע...
 
MySQL - מילון השאילתא
MySQL - מילון השאילתאMySQL - מילון השאילתא
MySQL - מילון השאילתא
 
SQL - שפת הגדרת הנתונים
SQL - שפת הגדרת הנתוניםSQL - שפת הגדרת הנתונים
SQL - שפת הגדרת הנתונים
 
SQL - מודל הנתונים
SQL - מודל הנתוניםSQL - מודל הנתונים
SQL - מודל הנתונים
 
SQL - אלגברה של יחסים
SQL - אלגברה של יחסיםSQL - אלגברה של יחסים
SQL - אלגברה של יחסים
 
SQL - מודל ישויות קשרים
SQL - מודל ישויות קשריםSQL - מודל ישויות קשרים
SQL - מודל ישויות קשרים
 
MySQL - מרכיבי השאילתא
MySQL - מרכיבי השאילתאMySQL - מרכיבי השאילתא
MySQL - מרכיבי השאילתא
 
בדרך לפולימורפיזם - Using Virtual/Pure Virtual
בדרך לפולימורפיזם - Using Virtual/Pure Virtualבדרך לפולימורפיזם - Using Virtual/Pure Virtual
בדרך לפולימורפיזם - Using Virtual/Pure Virtual
 
בדרך לפולימורפיזם - העמסת ועקיפת פונקציות
בדרך לפולימורפיזם - העמסת ועקיפת פונקציותבדרך לפולימורפיזם - העמסת ועקיפת פונקציות
בדרך לפולימורפיזם - העמסת ועקיפת פונקציות
 
הורשה והיררכיה של מחלקות
הורשה והיררכיה של מחלקותהורשה והיררכיה של מחלקות
הורשה והיררכיה של מחלקות
 
תכנות מונחה עצמים - מחלקות
תכנות מונחה עצמים - מחלקותתכנות מונחה עצמים - מחלקות
תכנות מונחה עצמים - מחלקות
 
טורי חזקה
טורי חזקהטורי חזקה
טורי חזקה
 
כלים מתמטיים - הוכחות משפטים
כלים מתמטיים - הוכחות משפטיםכלים מתמטיים - הוכחות משפטים
כלים מתמטיים - הוכחות משפטים
 
DLL מדריך לעבודה עם
DLL מדריך לעבודה עםDLL מדריך לעבודה עם
DLL מדריך לעבודה עם
 
עבודה עם קבצים בשפת סי
עבודה עם קבצים בשפת סיעבודה עם קבצים בשפת סי
עבודה עם קבצים בשפת סי
 
מצגת בלוגיקה למדעי המחשב
מצגת בלוגיקה למדעי המחשבמצגת בלוגיקה למדעי המחשב
מצגת בלוגיקה למדעי המחשב
 
מצגת לוגיקה מלאה חלק 3 מתוך 3
מצגת לוגיקה מלאה חלק 3 מתוך 3מצגת לוגיקה מלאה חלק 3 מתוך 3
מצגת לוגיקה מלאה חלק 3 מתוך 3
 
מצגת לוגיקה מלאה חלק 2 מתוך 3
מצגת לוגיקה מלאה חלק 2 מתוך 3מצגת לוגיקה מלאה חלק 2 מתוך 3
מצגת לוגיקה מלאה חלק 2 מתוך 3
 
מצגת לוגיקה מלאה חלק 1 מתוך 3
מצגת לוגיקה מלאה חלק 1 מתוך 3מצגת לוגיקה מלאה חלק 1 מתוך 3
מצגת לוגיקה מלאה חלק 1 מתוך 3
 

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

  • 1.
  • 2. ‫אובייקטים‬–‫מופעים‬-Instances ‫קבוצות‬ ‫לתתי‬ ‫לרוב‬ ‫משתייכים‬ ‫אלו‬ ‫עצמים‬ .‫בעצמים‬ ‫מלא‬ ‫אותנו‬ ‫הסובב‬ ‫העולם‬‫ש‬‫קבוצות‬ ‫בעצמן‬ ‫מרכיבות‬‫של‬ ‫יותר‬ ‫גדולות‬ ‫או‬ ‫יחסים‬ ‫פעמים‬ ‫הרבה‬ ‫יש‬ ‫הקבוצות‬ ‫בין‬ .‫הלאה‬ ‫וכן‬ ‫עצמים‬‫קבוצות‬ ‫אותן‬ ‫של‬ ‫חלוקה‬ ‫לבצע‬ ‫וניתן‬ ,‫עקיפים‬ ‫או‬ ‫ישירים‬ ,‫קשרים‬ .‫חולקות‬ ‫או‬ ‫מקיימות‬ ‫שהן‬ ‫מסוימות‬ ‫תכונות‬ ‫או‬ ,‫אופיין‬ ‫עפ"י‬ ,‫מכאן‬‫ל‬ ‫המאפשר‬ ,‫החיים‬ ‫עולם‬ ,‫החיצון‬ ‫לעולם‬ ‫שקיים‬ ‫העמוק‬ ‫הקשר‬ ‫את‬ ‫להבין‬ ‫ניתן‬,‫עצמים‬ ‫כגון‬ ‫מושגים‬ ‫על‬ ‫לדבר‬ ‫נו‬,‫יישום‬ ‫הורשה‬‫צורתיות‬ ‫רב‬ ,‫רב‬ ‫קונספטים‬ ‫ועוד‬‫האמתי‬ ‫בעולם‬ ‫קיומם‬ ‫בעצם‬ ‫טמון‬ ‫שמקורם‬ ‫ים‬,‫תחום‬ ‫אותו‬ ‫לתוך‬ ‫בהשאלה‬ ‫נלקחו‬ ‫עצמים‬ ‫מונחה‬ ‫תכנות‬ ‫הקרוי‬ ‫המחשב‬ ‫במדעי‬‫מרשימות‬ ‫ויכולות‬ ‫חיים‬ ‫רוח‬ ‫שהכניס‬ ‫דבר‬ ,‫ממנו‬ ‫נפרד‬ ‫בלתי‬ ‫לחלק‬ ‫והפכו‬‫ל‬‫תחום‬ .‫בכלל‬ ‫התכנות‬ ‫בעולם‬ ‫גם‬ ‫כך‬ ,‫האמתי‬ ‫בעולם‬ ‫כמו‬‫ה‬‫עצם‬ ‫לכל‬ ‫לשייך‬ ‫ניתן‬ ,‫העצמים‬ ‫מונחה‬ ‫תכנות‬‫(א‬)‫ובייקט‬‫אותו‬ ‫המאפיינות‬ ‫ופעולות‬ ‫תכונות‬ )..."‫"גובה‬ ,"‫אישי‬ '‫"מס‬ ,"‫משפחה‬ ‫"שם‬ ,"‫"שם‬ ‫הן‬ ‫שלו‬ ‫מהתכונות‬ ‫חלק‬ ,‫בצבא‬ ‫חייל‬ ‫לדוגמה‬ ‫(ניקח‬. ,‫בתכנות‬,‫האובייקט‬ ‫להיות‬ ‫יכול‬ ‫החייל‬‫ה‬ ‫התכונות‬‫ן‬‫משתנים‬‫לאמוד‬ ‫שניתן‬‫המתודות‬ ‫הן‬ ‫והפעולות‬ ‫בתוכם‬ ‫המוכל‬ ‫הערך‬ ‫ע"י‬ ‫על‬ ‫לביצוע‬ ‫הניתנות‬‫האובייקט‬)..."‫למטרה‬ ‫"קלע‬ ,"‫אישי‬ '‫מס‬ ‫"החזר‬ ‫להיות‬ ‫יכול‬ ‫זה‬ ‫חייל‬ ‫של‬ ‫(במקרה‬. ‫להיות‬ ‫יכול‬ ‫אובייקט‬"‫"שערה‬ ‫כגון‬ ‫פיזי‬‫לנשור‬ ‫כמו‬ ‫ופעולות‬ ‫וחוזק‬ ‫צבע‬ ‫כמו‬ ‫תכונות‬ ‫עם‬‫מצב‬ ‫ובדיקת‬‫בריאותי‬‫או‬ ,‫אבסטרקטי‬ ‫כגון‬"‫תספורת‬"‫להתחיל‬ ‫כמו‬ ‫ופעולות‬ ‫ועלות‬ ‫משך‬ ‫כמו‬ ‫תכונות‬ ‫עם‬,‫להסתיים‬‫התקדמות‬ ‫סטטוס‬ ‫להחזיר‬ ‫או‬. ‫ע"י‬ ‫יווצר‬ ‫אובייקט‬instantiation:‫הבא‬ ‫באופן‬ ‫מסוימת‬ ‫ממחלקה‬ )‫מופע‬ ‫(יצירת‬ ClassName objectName = new ClassName(/*parameters for the class's constructor if needed*/); ‫מופע‬ ‫משתני‬–Instance Variables ‫לאובייקט‬ ‫שייך‬ ‫אשר‬ ‫משתנה‬ ‫כל‬‫משתנ‬ ‫נקרא‬‫מופע‬ ‫ה‬,‫כזה‬ ‫משתנה‬‫מבלי‬ ‫האובייקט‬ ‫אותו‬ ‫עבור‬ ‫ייחודי‬ ‫באופן‬ ‫לשינוי‬ ‫ניתן‬ ‫אם‬ ‫שגם‬ ‫כך‬ ,‫הסוג‬ ‫מאותו‬ ‫האובייקטים‬ ‫שאר‬ ‫על‬ ‫שישפיע‬‫אובייקטים‬ '‫מס‬‫ובטיפוסם‬ ‫בשמם‬ ‫הזהים‬ ‫במשתנים‬ ‫מחזיקים‬‫שינוי‬ , ‫זה‬ ‫משתנה‬ ‫של‬‫עבור‬ ‫ורק‬ ‫אך‬ ‫ייעשה‬‫אותו‬ ‫של‬ ‫המשתנה‬‫השינוי‬ ‫נערך‬ ‫בו‬ ‫הספציפי‬ ‫האובייקט‬. ‫נניח‬‫אותם‬ ‫יהיו‬ ‫שלשניהם‬ ‫כך‬ ,‫בדיוק‬ ‫התבנית‬ ‫אותה‬ ‫לפי‬ ‫ייבנה‬ ‫מהם‬ ‫אחד‬ ‫כל‬ ,"‫"מכונית‬ ‫מטיפוס‬ ‫אובייקטים‬ ‫שני‬ ‫ויצרנו‬ ‫אחד‬ ‫כל‬ ‫עבור‬ ‫שונה‬ ‫ערך‬ ‫להזין‬ ‫ניתן‬ ‫מהאובייקטים‬ ‫אחד‬ ‫ובכל‬ )"‫ייצור‬ ‫"שנת‬ ,"‫מייצרת‬ ‫"חברה‬ ‫(לדוגמה‬ ‫בדיוק‬ ‫המשתנים‬ .‫ביניהם‬ ‫תלות‬ ‫של‬ ‫קשר‬ ‫מבלי‬ ‫מהמשתנים‬ ‫לה‬ ‫יכולה‬ ‫נוספת‬ ‫דוגמה‬‫כאשר‬ ‫למשל‬ ‫יות‬‫על‬ ‫משפיע‬ ‫זה‬ ‫אין‬ ,‫לצביקה‬ ‫שמו‬ ‫את‬ ‫לשנות‬ ‫מחליט‬ ‫ירון‬ ‫בשם‬ ‫אדם‬‫א‬ ‫של‬ ‫שמם‬‫נשים‬ ‫עם‬ ‫אחרים‬ ‫אנשים‬ ‫על‬ ‫כולל‬ ‫אחרים‬.‫בלבד‬ ‫האדם‬ ‫אותו‬ ‫על‬ ‫אלא‬ ,‫ירון‬ ‫השם‬‫את‬ ‫שינה‬ ‫ירון‬‫שמו‬.‫האנשים‬ ‫כל‬ ‫של‬ ‫שמם‬ ‫את‬ ‫ולא‬ ‫מופע‬ ‫משתנה‬ ‫להגדרת‬ ‫דוגמה‬: class ClassName { //Class Variables Section //Instance Variables Section private String id; //Class Methods Section //Instance Methods Section }
  • 3. ‫אובייקט‬ ‫של‬ ‫החיים‬ ‫סיום‬–finalization ‫המתודה‬finalize()‫מ‬ ‫מגיעה‬-Object‫ה‬ ‫ע"י‬ ‫מורצת‬ ‫שהיא‬ ‫העובדה‬ ‫מלבד‬ ‫מיוחדת‬ ‫פעולה‬ ‫מבצעת‬ ‫שהיא‬ ‫מבלי‬-JVM‫בתהליך‬ ‫לבצע‬ ‫ניתן‬ .'‫וכד‬ ‫משאבים‬ ‫שחרור‬ ,"‫פינות‬ ‫"סגירת‬ ‫לשם‬ ‫מיועדת‬ ‫היא‬ .‫האובייקט‬ ‫של‬ ‫חייו‬ ‫סיום‬overriding‫ע"מ‬ ‫למתודה‬ :‫כך‬ ‫בדיוק‬ ‫להיראות‬ ‫צריכה‬ ‫הגדרתה‬ ,‫זאת‬ ‫לעשות‬ ‫ניתן‬ ‫שיהיה‬ ‫וע"מ‬ ,‫מחדש‬ ‫פעולתה‬ ‫את‬ ‫להגדיר‬ protected void finalize() { /*New logic goes here*/ } ‫מתוך‬ ‫מתודה‬ ‫לאותה‬ ‫קריאה‬ ‫לבצע‬ ‫יש‬ ,‫אחרת‬ ‫למחלקה‬ ‫שמורישה‬ ‫מחלקה‬ ‫ע"י‬ ‫נדרסה‬ ‫המתודה‬ ‫אם‬finalize‫שהוגדרה‬ :‫הבא‬ ‫באופן‬ ‫היורשת‬ ‫במחלקה‬ super.finalize(); ,‫זו‬ ‫במתודה‬ ‫לשימוש‬ ‫ההסברים‬ ‫למרות‬‫שה‬ ‫לכך‬ ‫ערובה‬ ‫אין‬-GarbageCollector‫את‬ ‫יפעיל‬finalize()‫בזמן‬‫"לבנות‬ ‫אין‬ ‫ולכן‬" ‫עליה‬‫שת‬‫תפקד‬‫באופן‬‫ודאי‬.
  • 4. ‫מחלקות‬-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 }
  • 5. ‫מחלקה‬ ‫משתני‬-‫סטטיים‬ ‫משתנים‬–Static Variables ,‫קודם‬ ‫הזכרנו‬‫שכל‬ ‫כך‬ ,‫מחלקה‬ ‫להגדיר‬ ‫קבוצה‬ ‫כל‬ ‫ועבור‬ ‫משותף‬ ‫מכנה‬ ‫בעלות‬ ‫לקבוצות‬ ‫לשייך‬ ‫ניתן‬ ‫שונים‬ ‫שאובייקטים‬ ‫התכונות‬ ‫אותן‬ ‫כל‬ ‫את‬ ‫בדיוק‬ ,‫השבלונה‬ ‫מאותה‬ ‫נוצר‬ ‫שהוא‬ ‫לעובדה‬ ‫בהתאם‬ ,‫יכיל‬ ,‫מסוימת‬ ‫ממחלקה‬ ‫שייווצר‬ ‫אובייקט‬ ‫משתני/מתו‬ ‫כאמור‬ ‫נקראים‬ ‫אלו‬ ‫ומתודות‬ ‫משתנים‬ .‫במחלקה‬ ‫שמוגדרות‬ ‫והפעולות‬.‫מופע‬ ‫דות‬ ‫משתני‬ .‫המחלקה‬ ‫עבור‬ ‫אחת‬ ‫פעם‬ ‫אלא‬ ,‫אובייקט‬ ‫כל‬ ‫עבור‬ ‫נוצרים‬ ‫לא‬ ‫אלו‬ ,‫סטטיים‬ ‫משתנים/מתודות‬ ‫גם‬ ‫קיימים‬ ,‫לעומתם‬ ‫מעיין‬ ,‫כולה‬ ‫המחלקה‬ ‫את‬ ‫משמשים‬ ‫או‬ ‫המאפיינים‬ ‫נתונים‬ ‫להכיל‬ ‫תפקידם‬ ‫אלו‬ ‫סטטיים‬ ‫מחלקה‬shared resource‫ומתודות‬ , ‫מסוי‬ ‫אובייקט‬ ‫על‬ ‫פועלות‬ ‫אינן‬ ‫סטטיות‬ ‫מחלקה‬.‫למחלקה‬ ‫גלובליות‬ ‫פעולות‬ ‫מבצעות‬ ‫אלא‬ ,‫מופע‬ ‫מתודות‬ ‫כמו‬ ‫ם‬ ‫נמשיך‬ ,‫סטטיים‬ ‫משתנים‬ ‫הם‬ ‫מה‬ ‫להבין‬ ‫מנת‬ ‫על‬ ,‫קבוע‬ ‫עובד‬ ‫טופס‬ ‫לפי‬ ‫עובדים‬ ‫שמקבל‬ ‫המפעל‬ ‫של‬ ‫בדוגמה‬ ‫השתמשנו‬ ‫אם‬ ,‫המפעל‬ ‫של‬ ‫הקמתו‬ ‫מרגע‬ :‫קודם‬ ‫הזכרנו‬ ‫שלא‬ ‫פרט‬ ‫ונציין‬ ‫זו‬ ‫דוגמה‬ ‫עם‬‫הע‬ ‫של‬ ‫קבלתו‬ ‫מעת‬ ,"‫עובדים‬ ‫"ספר‬ ‫המפעל‬ ‫מנהל‬‫ובד‬ ‫בעמוד‬ ‫אותו‬ ‫פותח‬ ,‫העובדים‬ ‫ספר‬ ‫את‬ ‫מקבל‬ ,)‫הטופס‬ ‫את‬ ‫מילא‬ ‫(טרם‬ ‫במפעל‬ ‫לעבוד‬ ‫שהתחיל‬ ‫טרם‬ ,‫עובד‬ ‫כל‬ ,‫הראשון‬ ‫מגיע‬ ‫שמואלי‬ ‫רן‬ ‫בשם‬ ‫ואדם‬ ‫שנניח‬ ‫כך‬ ,)‫משפחה‬ ‫ושם‬ ‫שם‬ ,‫רץ‬ ‫בסדר‬ ‫סידורי‬ '‫(מס‬ ‫הקיים‬ ‫הפורמט‬ ‫לפי‬ ‫שורה‬ ‫ומוסיף‬ ‫האחרון‬ ‫השור‬ ‫לדוגמה‬ ‫הן‬ ‫בספר‬ ‫האחרונות‬ ‫והשורות‬ ,‫במפעל‬ ‫לעבוד‬:‫הבאות‬ ‫ות‬ 070‫משה‬‫קדמי‬ 070‫ליאורה‬‫שרון‬ :‫הבאה‬ ‫השורה‬ ‫תהיה‬ ‫שמואלי‬ ‫רן‬ ‫שיוסיף‬ ‫השורה‬ 000‫רן‬‫שמואלי‬ .‫המניין‬ ‫מן‬ ‫לעובד‬ ‫ויהפוך‬ ‫עובד‬ ‫כרטיס‬ ‫ימלא‬ ,‫העובדים‬ ‫בספר‬ ‫שהתבקש‬ ‫הנתונים‬ ‫את‬ ‫שיזין‬ ‫לאחר‬ ‫לגבי‬ ‫לנתונים‬ ‫לגשת‬ ‫היה‬ ‫יכול‬ ,‫המניין‬ ‫מן‬ ‫לעובד‬ ‫רן‬ ‫שההפך‬ ‫לפני‬ ‫שעוד‬ ,‫בעובדה‬ ‫נבחין‬,‫כן‬ ‫כמו‬ .‫קבלתו‬ ‫טרם‬ ‫במפעל‬ ‫העובדים‬ .)‫מהאחרון‬ ‫יותר‬ ‫(אחד‬ ‫בעצמו‬ ‫הוא‬ ‫יהיה‬ ‫עובד‬ '‫מס‬ ‫איזה‬ ‫ולהבין‬ ‫במפעל‬ ‫עובדים‬ ‫כרגע‬ ‫עובדים‬ ‫כמה‬ ‫לראות‬ ‫יכול‬ ‫העובד‬ '‫מס‬ ‫עם‬ ‫העובדים‬ ‫רשימת‬ :)‫(המחלקה‬ ‫עצמו‬ ‫המפעל‬ ‫של‬ ‫הנתונים‬ ‫בעצם‬ ‫הם‬ .‫מחלקה‬ ‫משתני‬ ‫מתנהגים‬ ,‫האופן‬ ‫ובאותו‬ ‫הסטטי‬ ‫המשתנה‬ ‫של‬ ‫(ערכו‬–‫ה‬‫לעובד‬ ‫שייכים‬ ‫אינם‬ ‫הם‬ ,)‫מחרוזות‬ ‫ושתי‬ ‫סידורי‬ '‫מס‬ ‫שמכיל‬ ‫מבנה‬ ‫הוא‬ ‫הסטטי‬ ‫משתנה‬ ‫עובדים‬ ‫להיות‬ ‫קבלתם‬ ‫טרם‬ ‫אפילו‬ ‫במפעל‬ ‫העובדים‬ ‫לכל‬ ‫נגישים‬ ‫היו‬ ‫והם‬ )‫ספציפי‬ ‫(לאובייקט‬ ‫ספציפי‬‫יכולה‬ ‫למשתנה‬ ‫(גישה‬ .)‫מסוים‬ ‫מופע‬ ‫דרך‬ ‫לא‬ ‫אפילו‬ ,‫המחלקה‬ ‫דרך‬ ‫ישירות‬ ‫להיעשות‬ ‫מתבצעת‬ ‫סטטי‬ ‫משתנה‬ ‫הגדרת‬‫המילה‬ ‫הוספת‬ ‫ע"י‬static,‫עליו‬ ‫ההצהרה‬ ‫בעת‬ ‫המשתנה‬ ‫טיפוס‬ ‫לפני‬:‫הבא‬ ‫באופן‬ class ClassName { //Class Variables Section static String id; //Instance Variables Section //Class Methods Section //Instance Methods Section }
  • 6. ‫למשתנה‬ ‫פניה‬ ‫וכל‬ ,‫מהמחלקה‬ ‫ייווצרו‬ ‫אובייקטים‬ ‫כמה‬ ‫משנה‬ ‫לא‬ ,‫יחיד‬ ‫משתנה‬ ‫עבור‬ ‫בזיכרון‬ ‫מקום‬ ‫והוקצה‬ ‫נוצר‬ ,‫זה‬ ‫באופן‬ .‫בזיכרון‬ ‫המקום‬ ‫לאותו‬ ‫ומכאן‬ ‫הרפרנס‬ ‫לאותו‬ ‫תתבצע‬ ‫אובייקט‬ ‫כל‬ ‫ע"י‬ ‫זה‬‫סטטיים‬ ‫משתנה/מתודה‬ ‫של‬ ‫והיצירה‬ ‫ההקצאה‬ ‫יצירת‬ ‫לפני‬ ‫עוד‬ ,‫המחלקה‬ ‫של‬ ‫הטעינה‬ ‫בזמן‬ ‫כבר‬ ‫נעשות‬‫מאותחלים‬ ‫וערכיהם‬ ‫אובייקטים‬:‫דרכים‬ ‫משלוש‬ ‫באחת‬ ‫ה‬‫ראשונה‬‫ידני‬ ‫באופן‬ ,-‫מפורש‬,.‫ההצהרה‬ ‫בעת‬ ‫השמה‬ ‫תוך‬ class ClassName { //Class Variables Section static int num=5; //Instance Variables Section //Class Methods Section //Instance Methods Section } ‫השנייה‬,‫בלוק‬ ‫דרך‬‫סטטיים‬ ‫למשתנים‬ ‫אתחול‬.:‫הבאה‬ ‫בצורה‬ ‫שנכתב‬ ‫סטטי‬ ‫בלוק‬ ‫זהו‬ class ClassName { //Class Variables Section static int num; //Instance Variables Section //Class Methods Section //Instance Methods Section Static {//‫סטטי‬ ‫בבלוק‬ ‫שימוש‬ ‫בה‬ ‫שיעשה‬ ‫ע"מ‬ ‫סטטית‬ ‫להיות‬ ‫חייבת‬ ‫פנימית‬ ‫מחלקה‬ .‫המחלקה‬ ‫בקובץ‬ ‫מקום‬ ‫בכל‬ ‫להופיע‬ ‫יכול‬ ‫סטטי‬ ‫בלוק‬ num=10; } } ‫השלישית‬.‫נוצרו‬ ‫ממנו‬ ‫הטיפוס‬ ‫של‬ ‫המחדל‬ ‫ברירת‬ ‫לערכי‬ ‫המשתנים‬ ‫יאותחלו‬ ,‫מפורש‬ ‫אתחול‬ ‫בהיעדר‬ , class ClassName { //Class Variables Section static int num; // ‫ל‬ ‫הזה‬ ‫ובמקרה‬ ‫לטיפוס‬ ‫בהתאם‬ ‫המחדל‬ ‫ברירת‬ ‫לערך‬ ‫יאותחל‬ ,‫סטטי‬ ‫בבלוק‬ ‫אתחול‬ ‫ואין‬ ‫במידה‬-0 //Instance Variables Section //Class Methods Section //Instance Methods Section } ‫להופיע‬ ‫(יכולים‬ ‫האתחול‬ ‫בלוקי‬ ‫גם‬ ,‫סטטיים‬ ‫משתנים/מתודות‬ ‫של‬ ‫היצירה‬ ‫בסדר‬ ‫לקדימות‬ ‫בדומה‬‫יצירת‬ ‫טרם‬ ‫יבוצעו‬ ,)‫כמה‬ ‫לזיכרון‬ ‫המחלקה‬ ‫של‬ ‫הטעינה‬ ‫בזמן‬ ,‫האובייקטים‬‫האחרון‬ ‫הערך‬ ,‫שונים‬ ‫אתחול‬ ‫בבלוקי‬ ‫בכמה‬ ‫אותחל‬ ‫משתנה‬ ‫אותו‬ ‫אם‬ , ‫בו‬ ‫שיישאר‬ ‫זה‬ ‫הוא‬ ,‫שקיבל‬. :‫דרכים‬ ‫משתי‬ ‫באחת‬ ‫תיעשה‬ ‫מחלקה‬ ‫למשתנה‬ ‫פנייה‬ ‫בשם‬ ‫סטטי‬ ‫משתנה‬ ‫והוגדר‬ ‫(בהנחה‬countX‫במחלקה‬ClassName‫אובייק‬ ‫ונוצר‬‫בשם‬ ‫מהמחלקה‬ ‫ט‬objectName) ,‫הראשונה‬‫דרך‬ ‫פניה‬‫כל‬‫מהמחלקה‬ ‫אובייקט‬‫כזה‬ ‫נוצר‬ ‫באם‬ ,: objectName.countX=10; ‫תוך‬ ,‫השנייה‬‫למחלקה‬ ‫ישירה‬ ‫פנייה‬‫ו‬‫מסוים‬ ‫אובייקט‬ ‫דרך‬ ‫לא‬: ClassName.countX=10;
  • 7. ‫משתנים‬‫סטטיים‬‫סופיים‬–Final Static Variables ‫השמורה‬ ‫המילה‬ ‫את‬ ‫להוסיף‬ ‫נוכל‬ ,‫לקבוע‬ ‫סטטי‬ ‫משתנה‬ ‫להפוך‬ ‫נרצה‬ ‫אם‬final:‫הבא‬ ‫באופן‬ final static int CONSTVAR=5; .‫למחלקה‬ ‫קבוע‬ ‫יש‬ ,‫הרגע‬ ‫ומאותו‬ ‫ההצהרה‬ ‫בשורת‬ ‫אתחול‬ ,‫כלומר‬ .‫זה‬ ‫בנושא‬ ‫הקונבנציה‬ ‫זו‬ ,‫גדולות‬ ‫באותיות‬ ‫ייכתבו‬ ‫קבועים‬ ‫של‬ ‫שמות‬ :‫נזכור‬ ‫אובייקט‬ ‫כל‬ ‫עבור‬ ‫מחדש‬ ‫פעם‬ ‫כל‬ ‫יווצר‬ ‫הוא‬ ‫אחרת‬ ,)‫לאובייקט‬ ‫מאובייקט‬ ‫משתנה‬ ‫ערכו‬ ‫כן‬ ‫אם‬ ‫(אלא‬ ‫כסטטי‬ ‫קבוע‬ ‫להגדיר‬ ‫רצוי‬ !‫זיכרון‬ ‫משאבי‬ ‫מבחינת‬ ‫בזבזני‬ ‫וזה‬
  • 8. ‫מחלקות‬-‫המשך‬ ‫מוגדרות‬ ‫ופעולות‬ ‫תכונות‬ ‫אילו‬ ‫לומר‬ ‫יכולים‬ ‫אנו‬ ,‫מסוים‬ ‫אובייקט‬ ‫על‬ ‫בהביטנו‬ ,‫כן‬ ‫אם‬‫בבואנו‬ ,‫כן‬ ‫ועל‬ ‫נוצר‬ ‫הוא‬ ‫ממנה‬ ‫במחלקה‬ ,‫מכן‬ ‫לאחר‬ .‫שלנו‬ ‫בתכנית‬ ‫תפקיד‬ ‫לשחק‬ ‫שהולכים‬ ‫האובייקטים‬ ‫את‬ ‫בראשית‬ ‫לדמיין‬ ‫שננסה‬ ‫רצוי‬ ,‫תכנית‬ ‫של‬ ‫קוד‬ ‫קטע‬ ‫לכתוב‬ ‫עלינו‬ ‫יש‬ ‫מחלקות‬ ‫אילו‬ ‫של‬ ‫הבנה‬ ‫לקבל‬ ,‫כך‬ ‫ומתוך‬ ‫עליהם‬ ‫להפעיל‬ ‫שניתן‬ ‫הפעולות‬ ‫ומהן‬ ‫תכונותיהם‬ ‫יהיו‬ ‫מה‬ ‫ולהבין‬ ‫לנסות‬ .‫להגדיר‬ ‫לתכונות‬ ‫בנוסף‬(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; } }
  • 9. ‫מחלק‬‫ות‬‫אבסטרקטי‬‫ו‬‫ת‬–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();