Dalam bahasa pemogram java mendukung 4 visibilitas yakni: private, public, protected, tanpa visibilitas. Saat ini akan dibahas tentang visibilitas private dan public, untuk visibilitas protected akan dibahas setelah artikel mengenai pewarisan dan untuk untuk tanpa visibilitas akan dibahas pada artikel mengenai package. Namun sebelum itu berikut keterangan dari ke empat visibilitas tersebut:
Visibilitas | Keterangan |
private | Hanya dapat diakses oleh kelas itu sendiri |
public | Dapat diakses oleh seluruh kelas |
protected | Hanya dapat diakses oleh kelas itu sendiri, dan kelas turunannya |
Tanpa Visibilitas | Hanya dapat diakses oleh kelas-kelas yang berada pada satu paket |
Visibilitas private merupakan visibilitas yang dapat digunakan pada attribute, metode ataupun kelas. Gunanya visibilitas private adalah untuk menyembunyikan atribut, metode atau kelas. Attribut, metode atau kelas yang menggunakan visibilitas hanya dapat diakses oleh objek itu sendiri.
Contoh attribut yang menggunakan visibilitas private.’
class Manusia{
private String nama;
String alamat;
void ubahData(String nama, String alamat){
this.nama = nama;
this.alamat = alamat;
}
void ubahNama(String nama){
this.nama = nama;
}
}
Pada kode diatas, attribut nama menjadi private sehingga hanya kelas Manusia itu sendiri, yang bisa mengakses attribut nama, sehingga saat kelas lain mengakses attribut tersebut, maka akan terjadi error.
public class HelloWorld{
public static void main (String []args){
Manusia manusia = new Manusia();
manusia.ubahData(“Kutu Gondrong”,”Dolok Sanggul”);
System.out.println(manusia.nama);
System.out.println(manusia.alamat);
}
}
Pada kode diatas, maka akan terjadi error ketika kelas HelloWorld mengakses atribut nama objek manusia, dikarenakan attribut tersebut bersifat private.
Visibilitas public merupakan visibilitas yang dapat diterapkan pada attribut, metod dan kelas. Dengan visibilitas public , maka atribut, metode dan kelas yang memiliki sifat public tersebut dapat diakses oleh kelas manapun dan dari package manapun.
Contoh, pada kode sebelumnya, kita akan menambahkan sebuah metode public yang bernama ambilNama() yang mengembalikan nama mahasiswa.
class Manusia{
private String nama;
String alamat;
public String ambilNama(){
return nama;
}
void ubahData(String nama, String alamat){
this.nama = nama;
this.alamat = alamat;
}
void ubahNama(String nama){
this.nama = nama;
}
}
Dengan demikian untuk mengakses attribut nama, sekarang kita dapat menggunakan metode ambilNama().
public class HelloWorld{
public static void main (String []args){
Manusia manusia = new Manusia();
manusia.ubahData(“Kutu Gondrong”,”Dolok Sanggul”);
System.out.println(manusia.nama);
System.out.println(manusia.alamat);
}
}