מילת המפתח this
חלק מהיחידה תכנות מונחה עצמים במסלול ה-Java של Coddy. שיעור 4 מתוך 87.
מילת המפתח this מתייחסת למופע הנוכחי של מחלקה. היא מבדילה בין שדות לפרמטרים בעלי אותו שם.
ללא this, הפרמטר מסתיר את השדה
public class Person {
private String name;
public Person(String name) {
name = name; // מקצה את הפרמטר לעצמו!
}
}שימוש ב־this כדי להקצות ערכים בצורה נכונה
public class Person {
private String name;
public Person(String name) {
this.name = name; // מקצה את הפרמטר לשדה
}
public String getName() {
return this.name;
}
}שימוש ב-this במתודות
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getDescription() {
return this.name + " is " + this.age + " years old";
}
}מילת המפתח this תמיד מצביעה על האובייקט הנוכחי. היא חיונית כאשר שמות הפרמטרים זהים לשמות השדות, ומונעת בלבול ובאגים.
אתגר
בינוניהשלימו את המחלקה Person באמצעות מילת המפתח this כדי להבחין בין שדות לפרמטרים:
- בנאי שמשתמש ב-
thisכדי להציב את הפרמטרים בשדות - מתודות Getter שמשתמשות ב-
thisכדי לגשת לשדות - מתודת
getDescription()שמחזירה"<name>, age <age>, from <city>"
נסו בעצמכם
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
int age = Integer.parseInt(scanner.nextLine());
String city = scanner.nextLine();
Person person = new Person(name, age, city);
System.out.println("Name: " + person.getName());
System.out.println("Age: " + person.getAge());
System.out.println("City: " + person.getCity());
System.out.println(person.getDescription());
}
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה תכנות מונחה עצמים
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 אונליין