Εξήγησαν οι Getters and Setter στη Java

Οι λήπτες και οι ρυθμιστές χρησιμοποιούνται για την προστασία των δεδομένων σας, ειδικά κατά τη δημιουργία τάξεων.

Για κάθε μεταβλητή παρουσίας, μια μέθοδος λήψης επιστρέφει την τιμή της ενώ μια μέθοδο ρύθμισης ορίζει ή ενημερώνει την τιμή της. Λαμβάνοντας υπόψη αυτό, οι δέκτες και οι ρυθμιστές είναι επίσης γνωστοί ως βοηθητικοί φορείς και μεταλλάκτες , αντίστοιχα.

Κατά σύμβαση, οι getters ξεκινούν με τη λέξη "get" και τους setters με τη λέξη "set", ακολουθούμενο από ένα όνομα μεταβλητής. Και στις δύο περιπτώσεις το πρώτο γράμμα του ονόματος της μεταβλητής είναι κεφαλαίο:

public class Vehicle { private String color; // Getter public String getColor() { return color; } // Setter public void setColor(String c) { this.color = c; } }

Η μέθοδος λήψης επιστρέφει την τιμή του χαρακτηριστικού. Η μέθοδος ρύθμισης παίρνει μια παράμετρο και την εκχωρεί στο χαρακτηριστικό.

Μόλις οριστεί ο λήπτης και ο ρυθμιστής, το χρησιμοποιούμε στο κύριο μας:

public static void main(String[] args) { Vehicle v1 = new Vehicle(); v1.setColor("Red"); System.out.println(v1.getColor()); } // Outputs "Red"

Οι λήπτες και οι ρυθμιστές επιτρέπουν τον έλεγχο των τιμών. Μπορείτε να επικυρώσετε τη δεδομένη τιμή στο ρυθμιστικό πριν ορίσετε πραγματικά την τιμή.

Γιατί να χρησιμοποιώ κουτάλια και ρυθμιστές;

Οι λήπτες και οι ρυθμιστές σάς επιτρέπουν να ελέγχετε τον τρόπο πρόσβασης και ενημέρωσης σημαντικών μεταβλητών στον κώδικά σας. Για παράδειγμα, εξετάστε αυτήν τη μέθοδο ρύθμισης:

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; }