סיכום — מונה ומחלקת עזר
חלק מהיחידה תכנות מונחה עצמים במסלול ה-Java של Coddy. שיעור 19 מתוך 87.
אתגר
קלבואו נבנה מערכת מלאה שמשלבת מחלקת Counter למעקב אחר מופעים עם מחלקת עזר MathUtils — ונאחד את כל מה שלמדת על משתנים סטטיים, מתודות סטטיות, בלוקים סטטיים וקבועים.
תיצור שלושה קבצים כדי לארגן את הקוד שלך:
Counter.java: צור מחלקה שעוקבת אחר מספר המופעים שנוצרו:- משתנה סטטי פרטי לספירת מספר המופעים הכולל
- משתנה מופע פרטי
idששומר את המזהה הייחודי של כל מונה - בנאי שמגדיל את המספר הכולל ומקצה את המספר הנוכחי כמזהה של המופע הזה
- מתודה
getId()שמחזירה את המזהה הייחודי של המונה הזה - מתודה סטטית
getTotalCount()שמחזירה כמה אובייקטים מסוג Counter נוצרו
MathUtils.java: צור מחלקת עזר שיש בה רק איברים סטטיים (ולעולם לא יוצרים ממנה מופעים):- קבוע ציבורי
PIעם הערך3.14159 - קבוע ציבורי
HALFעם הערך0.5 - מתודה סטטית
square(int n)שמחזירה את n בריבוע - מתודה סטטית
cube(int n)שמחזירה את n בחזקת שלוש - מתודה סטטית
circleArea(double radius)שמחזירה את PI * radius * radius
- קבוע ציבורי
Main.java: הדגם את שתי המחלקות פועלות יחד. תקבל שתי קלטים: מספר עבור פעולות מתמטיות ומספר של כמה אובייקטים מסוג Counter ליצור. הדפס את הדברים הבאים:Square: [value]Cube: [value]Circle area (radius=[number]): [value](השטח בפורמט של 2 ספרות אחרי הנקודה העשרונית)- עבור כל Counter שנוצר, הדפס:
Counter [id] created - לבסוף:
Total counters: [count]
תקבל שתי קלטים: מספר (int) עבור החישובים המתמטיים, ומספר (int) של כמה אובייקטים מסוג Counter ליצור.
זכור לגשת לאיברים סטטיים באמצעות שם המחלקה (כמו MathUtils.PI ו-Counter.getTotalCount()), והשתמש ב-String.format("%.2f", value) כדי לעצב ערכים עשרוניים.
נסו בעצמכם
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int number = scanner.nextInt();
int count = scanner.nextInt();
// TODO: השתמשו במתודות הסטטיות של MathUtils כדי לחשב ולהדפיס:
// - ריבוע: [value]
// - חזקה שלישית: [value]
// - Circle area (radius=[number]): [value] (מעוצב ל-2 ספרות אחרי הנקודה העשרונית)
// TODO: צרו 'count' אובייקטים מסוג Counter
// עבור כל Counter שנוצר, הדפיסו: Counter [id] created
// TODO: הדפיסו את המספר הכולל של המונים שנוצרו
// Total counters: [count]
}
}
כל השיעורים ביחידה תכנות מונחה עצמים
1יסודות התכנות מונחה העצמים
קבצים חיצונייםמבוא לתכנות מונחה עצמיםמחלקות לעומת אובייקטיםמילת המפתח thisמתודותשדות (מאפיינים)מתודת הבנאיהעמסת בנאיםחזרה – מחשבון פשוט4ירושה
ירושה בסיסית (extends)מילת המפתח superדריסת מתודות (@Override)שרשור בנאיםהמחלקה Objectירושה יחידה ורב־רמתיתלמה אין ירושה מרובה של מחלקותסיכום – היררכיית עובדים7מתודות מיוחדות ומחלקת Object
מתודת toString()equals() ו-hashCode()מתודת clone()compareTo() ו-Comparableהממשק Comparatorסיכום – מיון מותאם אישית2מצייני גישה ואנקפסולציה
סקירה של רמות הגישהמתודות Getter ו-Setterהסתרת מידעמילת המפתח finalסיכום – מנהל חשבון בנק5פולימורפיזם
יסודות העמסת מתודותדריסת מתודות (בזמן ריצה)המרה כלפי מעלה וכלפי מטההאופרטור instanceofמחלקות ומתודות מופשטותסיכום – מחשבון צורות8מושגי OOP מתקדמים
הרכבה מול ירושהאגרגציה מול הרכבהמחלקות פנימיות, מקוננות ואנונימיותEnums ומתודות של EnumRecords (Java 16+)מחלקות חתומות (Java 17+)3מאפייני מחלקה וחברים סטטיים
משתני מופע לעומת משתנים סטטייםמתודות סטטיותבלוקים סטטייםקבועים (static final)סיכום — מונה ומחלקת עזר6ממשקים ומחלקות מופשטות
מבוא לממשקיםמימוש ממשקיםמימוש של כמה ממשקיםמתודות ברירת מחדל וסטטיות בממשקמחלקות מופשטות לעומת ממשקיםממשקים פונקציונלייםסיכום – מערכת תשלומיםתרגלו בעצמכם: קומפיילר Java אונליין