בתכנות מונחה עצמים, אנקפסולציה היא מושג בסיסי המתייחס לתרגול של הסתרת פרטי היישום של אובייקט ומתן ממשק לגישה למאפיינים והתנהגויותיו. שיטות אקססור ומוטטור הן שני מושגים חשובים הקשורים לאנקפסולציה בג'אווה.
אביזר
שיטות עזר, הידועות גם כשיטות getter, הן שיטות המאפשרות לך לאחזר את הערך של משתני המופע הפרטי של אובייקט. שיטות אלו מספקות גישת קריאה בלבד למצב האובייקט. על ידי שימוש בשיטות עזר, אתה יכול להבטיח שמצב האובייקט לא ישתנה בטעות או בזדון על ידי קוד חיצוני.
מוטטור
שיטות מוטטור, הידועות גם כשיטות קבע, הן שיטות המאפשרות לך לשנות את הערך של משתני המופע הפרטי של אובייקט. שיטות אלו מספקות גישת כתיבה בלבד למצב האובייקט. על ידי שימוש בשיטות מוטטור, אתה יכול להבטיח שמצב האובייקט ישתנה רק באמצעות ממשק מבוקר.
בואו נסתכל על דוגמה כדי להבין את הרעיון של שיטות עזר ומוטטור בג'אווה. נניח שיש לנו מחלקה בשם Person שיש לה שלושה משתני מופע פרטי: שם, גיל ואימייל. אנו רוצים לספק גישה למשתנים אלה באמצעות שיטות אקססור ומוטטור.
public class Person { private String name; private int age; private String email; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } }
בדוגמה זו, הגדרנו שלוש שיטות עזר: getName(), getAge(), ו-getEmail(), ושלוש שיטות מוטטור: setName(), setAge() ו-setEmail(). שיטות ה-Accessor מחזירות את הערך של משתנה המופע המתאים, בעוד ששיטות המוטטור קובעות את הערך של משתנה המופע המתאים.
אמנת שמות
מוסכמות השמות עבור שיטות עזר ומוטטור חשובה ב-Java. יש לתת שמות לשיטות עזר המתחילות ב-'get' ואחריו שם המשתנה, כשהאות הראשונה היא באות רישיות. יש לתת שמות לשיטות מוטטורים שמתחילים ב-'set' ואחריו את שם המשתנה, כשהאות הראשונה היא באות רישיות. מוסכמות שמות זו מבהירה מה עושה כל שיטה והופכת את הקוד לקריאה ולתחזוקה יותר.
שיטות אקססור ומוטטור הן חלק חיוני באנקפסולציה בג'אווה. הם מאפשרים לך לשלוט בגישה למצב של אובייקט, ומבטיחים שהגישה אליו משתנה רק דרך ממשק מבוקר. על ידי ביצוע מוסכמות השמות עבור שיטות עזר ומוטטור, נוכל להפוך את הקוד שלך לקריא וניתן יותר לתחזוקה.
הנה תוכנית לדוגמה שמדגימה את השימוש בשיטות עזר ומוטטור ב-Java:
Person.java
import java.util.Scanner; public class Person { private String name; private int age; private String email; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Person person = new Person(); System.out.print('Enter name: '); String name = scanner.nextLine(); person.setName(name); System.out.print('Enter age: '); int age = scanner.nextInt(); person.setAge(age); scanner.nextLine(); // Consume the newline character left by nextInt() System.out.print('Enter email: '); String email = scanner.nextLine(); person.setEmail(email); System.out.println(' Name: ' + person.getName()); System.out.println('Age: ' + person.getAge()); System.out.println('Email: ' + person.getEmail()); } }
תְפוּקָה:
Name: Manoj Age: 21 Email: [email protected]
בדוגמה זו, השיטה הראשית יוצרת מופע חדש של המחלקה Person ומשתמשת בשיטות המוטטור (setName, setAge ו-setEmail) כדי להגדיר את הערכים של משתני המופע הפרטי של האובייקט. לאחר מכן, נעשה שימוש בשיטות העזר (getName, getAge ו-getEmail) כדי לאחזר את הערכים של משתני המופע ולהציג אותם במסוף.
היתרון של שימוש באקססור ומוטטור
היתרון בשימוש בשיטות אקססור ומוטטור הוא שהן מאפשרות לנו להוסיף אימות והיגיון עיבוד אחר לתהליך קבלת והגדרת מצב של אובייקט. לדוגמה, תוכל להוסיף בדיקת אימות לשיטת 'setAge(int age)' כדי לוודא שערך הגיל נמצא בטווח מסוים, או להוסיף לוגיקת עיצוב לשיטה 'getName()' כדי להשתמש באות רישיות באות הראשונה של שם של אדם.