גטרים וקובעים משמשים להגנה על הנתונים שלך, במיוחד בעת יצירת שיעורים.
עבור כל משתנה מופע, שיטת getter מחזירה את הערך שלה בעוד שיטת setter מגדירה או מעדכנת את הערך שלה. לאור זאת, עסקנים וגם קובעים ידוע גם בשם כלי גישה ו mutators , בהתאמה.
לפי מוסכמות, גטרס מתחילים במילה "get" וקובעים במילה "set", ואחריהם שם משתנה. בשני המקרים האות הראשונה של שם המשתנה באותיות רישיות:
public class Vehicle { private String color; // Getter public String getColor() { return color; } // Setter public void setColor(String c) { this.color = c; } }
שיטת הגטר מחזירה את ערך התכונה. שיטת ה- setter לוקחת פרמטר ומקצה אותו לתכונה.
לאחר שהגדר והגדיר הוגדרו, אנו משתמשים בו בעיקרנו:
public static void main(String[] args) { Vehicle v1 = new Vehicle(); v1.setColor("Red"); System.out.println(v1.getColor()); } // Outputs "Red"
גטרים וקובעים מאפשרים שליטה בערכים. אתה יכול לאמת את הערך הנתון במגדיר לפני שתגדיר את הערך בפועל.
למה להשתמש בגטרים וקובעים?
Getters and setter מאפשרים לך לשלוט באיזו מידה הגישה למשתנים חשובים מתעדכנת בקוד שלך. לדוגמה, שקול את שיטת הקובע הזו:
public void setNumber(int number) { if (number 10) { throw new IllegalArgumentException(); } this.number = num; }
על ידי שימוש setNumber
בשיטה, אתה יכול להיות בטוח שהערך של number
תמיד בין 1 ל 10. זה הרבה יותר טוב מאשר לעדכן את number
המשתנה ישירות:
obj.number = 13;
אם אתה מעדכן number
ישירות, ייתכן שתגרום לתופעות לוואי לא מכוונות במקום אחר בקוד שלך. כאן, הגדרה number
ל 13 מפרה את האילוץ 1 עד 10 שאנו רוצים לקבוע.
יצירת number
משתנה פרטי ושימוש setNumber
בשיטה ימנעו זאת.
מצד שני, הדרך היחידה לקרוא את הערך number
היא באמצעות שיטת גטר:
public int getNumber() { return this.number; }