Menu
Coddy logo textTech

סיכום — מונה ומחלקת עזר

חלק מהיחידה תכנות מונחה עצמים במסלול ה-Java של Coddy. שיעור 19 מתוך 87.

challenge icon

אתגר

קל

בואו נבנה מערכת מלאה שמשלבת מחלקת 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]
    }
}

כל השיעורים ביחידה תכנות מונחה עצמים

תרגלו בעצמכם: קומפיילר Java אונליין