לפניכם הגדרה לטיפוס עיפרון דו-צבעי — Pencil: color1 — צבע ראשון, מטיפוס מחרוזת String; color2 — צבע שני, מטיפוס מחרוזת String; size — אורך העיפרון, מטיפוס מספר שלם int. במחלקה Pencil קיימות פעולה בונה המקבלת פרמטרים לאתחול כל התכונות, פעולות מאחזרות (get) ופעולות קובעות (set) לכל התכונות של המחלקה. המחלקה Pack מייצגת חבילת עפרונות דו-צבעיים. תכונות המחלקה: allPencils — מערך עפרונות (מערך עצמים מטיפוס Pencil), גודל המערך מוגדר בפעולה הבונה; colors — מערך צבעים מטיפוס מחרוזת String, המערך יכול להשתנות מחבילה לחבילה ומתקבל כפרמטר בפעולה הבונה; currNum — מספר העפרונות בחבילה; max, min — שני מספרים שלמים המציינים אורך מקסימלי ואורך מינימלי של העיפרון בחבילה. נתונה הפעולה הבונה של המחלקה Pack:
לפניכם הגדרה לטיפוס עיפרון דו-צבעי — Pencil: color1 — צבע ראשון, מטיפוס מחרוזת String; color2 — צבע שני, מטיפוס מחרוזת String; size — אורך העיפרון, מטיפוס מספר שלם int. במחלקה Pencil קיימות פעולה בונה המקבלת פרמטרים לאתחול כל התכונות, פעולות מאחזרות (get) ופעולות קובעות (set) לכל התכונות של המחלקה. המחלקה Pack מייצגת חבילת עפרונות דו-צבעיים. תכונות המחלקה: allPencils — מערך עפרונות (מערך עצמים מטיפוס Pencil), גודל המערך מוגדר בפעולה הבונה; colors — מערך צבעים מטיפוס מחרוזת String, המערך יכול להשתנות מחבילה לחבילה ומתקבל כפרמטר בפעולה הבונה; currNum — מספר העפרונות בחבילה; max, min — שני מספרים שלמים המציינים אורך מקסימלי ואורך מינימלי של העיפרון בחבילה. נתונה הפעולה הבונה של המחלקה Pack:
public Pack(int num, String[] colors, int min, int max)
{
this.allPencils = new Pencil[num];
this.colors = colors;
this.currNum = 0;
this.min = min;
this.max = max;
}
עיפרון דו-צבעי מתאים לחבילה אם האורך שלו נמצא בטווח של [min, max] וצבעיו שונים זה מזה ומתאימים לצבעים של החבילה.
כתבו פעולה המקבלת כפרמטר עיפרון (עצם מטיפוס Pencil) ומחזירה true אם הצבעים של other זהים לצבעים של העצם שמפעיל את הפעולה (this), ולא — הפעולה תחזיר false.
public boolean isSameColors(Pencil other)
כתבו פעולה המקבלת כפרמטר עיפרון (עצם מטיפוס Pencil) ומחזירה true אם הוא מתאים לחבילה, ולא — הפעולה תחזיר false. כתבו גם פעולה המקבלת עיפרון (עצם מטיפוס Pencil) ומוסיפה אותו לחבילה: אפשר להוסיף עיפרון לחבילה אם הוא מתאים לחבילה ובחבילה יש מקום. אם אי אפשר להוסיף את העיפרון p לחבילה, הפעולה תחזיר false, ולא — היא תעדכן את תכונות החבילה ותחזיר true.
public boolean isFit(Pencil p) public boolean add(Pencil p)
כתבו פעולה public int countColor(String color). הפעולה תחזיר מספר עפרונות שאחד מהצבעים שלהם הוא color.
כתבו פעולה המחזירה מערך צבעים שחסרים בחבילה. כותרת הפעולה: public String[] missing(). אם אין צבעים חסרים (כלומר לכל צבע במערך colors יש לפחות עיפרון אחד בחבילה שבו יש צבע זה) יש להחזיר מערך בגודל 0.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.