Getter dan setter digunakan untuk melindungi data Anda, terutama saat membuat kelas.
Untuk setiap variabel instance, metode pengambil mengembalikan nilainya sementara metode penyetel menetapkan atau memperbarui nilainya. Mengingat ini, getter dan setter juga dikenal sebagai accesor dan mutator , masing-masing.
Menurut konvensi, getter memulai dengan kata "get" dan setter dengan kata "set", diikuti dengan nama variabel. Dalam kedua kasus, huruf pertama dari nama variabel dikapitalisasi:
public class Vehicle { private String color; // Getter public String getColor() { return color; } // Setter public void setColor(String c) { this.color = c; } }
Metode pengambil mengembalikan nilai atribut. Metode penyetel mengambil parameter dan menugaskannya ke atribut.
Setelah pengambil dan penyetel telah ditentukan, kami menggunakannya di utama kami:
public static void main(String[] args) { Vehicle v1 = new Vehicle(); v1.setColor("Red"); System.out.println(v1.getColor()); } // Outputs "Red"
Getters dan setter memungkinkan kontrol atas nilai. Anda dapat memvalidasi nilai yang diberikan di penyetel sebelum benar-benar menyetel nilai.
Mengapa menggunakan getter dan setter?
Getters dan setter memungkinkan Anda untuk mengontrol bagaimana variabel penting diakses dan diperbarui dalam kode Anda. Misalnya, pertimbangkan metode penyetel ini:
public void setNumber(int number) { if (number 10) { throw new IllegalArgumentException(); } this.number = num; }
Dengan menggunakan setNumber
metode ini, Anda dapat memastikan nilai number
selalu antara 1 dan 10. Ini jauh lebih baik daripada memperbarui number
variabel secara langsung:
obj.number = 13;
Jika Anda memperbarui number
secara langsung, kemungkinan Anda akan menyebabkan efek samping yang tidak diinginkan di tempat lain dalam kode Anda. Di sini, menyetel number
ke 13 melanggar batasan 1 hingga 10 yang ingin kami buat.
Membuat number
variabel privat dan menggunakan setNumber
metode ini akan mencegah hal ini terjadi.
Di sisi lain, satu-satunya cara untuk membaca nilai number
adalah dengan menggunakan metode pengambil:
public int getNumber() { return this.number; }