חזרה – מחשבון פשוט
חלק מהיחידה תכנות מונחה עצמים במסלול ה-Java של Coddy. שיעור 9 מתוך 87.
אתגר
קשהבנו מחלקת Calculator שלמה שמשתמשת בכל המושגים שנלמדו:
- שדות: שדות פרטיים עבור
name(מחרוזת),memory(double),operationCount(int) - בנאים: בנאי עם פרמטרים ובנאי ברירת מחדל המשתמש בשרשור באמצעות
this() - מילת המפתח this: השתמשו ב-
thisכדי לאתחל שדות ולגשת אליהם בתוך מתודות - מתודות Getter:
getName(),getMemory(),getOperationCount() - מתודות:
add,subtract,multiply,divide,power
מתודת add שומרת את התוצאה שלה ב-memory. כל המתודות מגדילות את operationCount. מתודת divide מחזירה 0 במקרה של חלוקה באפס. מתודת power משתמשת ב-Math.pow().
נסו בעצמכם
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
double num1 = Double.parseDouble(scanner.nextLine());
double num2 = Double.parseDouble(scanner.nextLine());
Calculator calc = new Calculator(name);
System.out.println("Calculator: " + calc.getName());
System.out.println("Memory: " + calc.getMemory());
System.out.println("Add: " + calc.add(num1, num2));
System.out.println("Subtract: " + calc.subtract(num1, num2));
System.out.println("Multiply: " + calc.multiply(num1, num2));
System.out.println("Divide: " + calc.divide(num1, num2));
System.out.println("Divide by zero: " + calc.divide(num1, 0));
System.out.println("Memory: " + calc.getMemory());
System.out.println("Power: " + calc.power(num1, num2));
System.out.println("Operations: " + calc.getOperationCount());
}
}כל השיעורים ביחידה תכנות מונחה עצמים
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 אונליין