blog / java · April 7, 2017

Belajar Java Dasar(Visibilitas Protected)

Sebelumnya kita telah membahas tentang visibilitas private dan public, kali ini kita akan membahas tentang visibilitas protected. Attribut, metode atau kelas yang ditandai dengan visibilitas protected hanya dapat diakses oleh kelas itu sendiri dan turunannya. Misal pada kelas sebelumnya kita telah membuat kelas Orang dan Pegawai, yang dapat kita lihat pada link berikut.

Pada kelas Orang, visibilitas untuk attribut nama dan alamat adalah private, artinya hanya kelas orang tersebut yang dapat mengakses atribut tersebut, walaupun kelas pegawai merupakan turunan dari kelas Orang, tetap saja kelas Pegawai tidak dapat mengakses attribut nama dan alamat dari kelas Orang.

public class Pegawai extends Orang{ 
   private String nip; 
   public void ubahNip(String nip){ 
      this.nip = nip; 
   } 
   public String ambilNip(){ 
      return nip; 
   } 
   public void contoh(){ 
      String ambilNama = nama; 
   }
}

Jika kita menggunakan kode diatas untuk mengakses attribut nama dari kelas Orang, maka pasti akan terjadi error. Namun jika kita mengubah visibilitas nama menjadi protected maka attribut nama dapat diakses oleh turunannya yaitu kelas Pegawai.

public class Orang{ 
   protected  String nama; 
   protected  String alamat; 
   public void ubahNama(String nama){ 
       this.nama = nama; 
   } 
   public String ambilNama(){ 
      return nama; 
   } 
   public void ubahAlamat(String alamat){ 
      this.alamat = alamat; 
   }
   public String ambilAlamat(){
      return alamat; 
   }
}
public class Pegawai extends Orang{ 
   private String nip; 
   public void ubahNip(String nip){ 
      this.nip = nip; 
   } 
   public String ambilNip(){ 
      return nip;
   } 
   public void contoh(){ 
      String ambilNama = nama; 
   }
}

Jadi dengan mengetahui cara penggunaan protected ini kita dapat menyimpulkan, bahwa visibilitas protected, digunakan kalau suatu kelas,method atau variabel ingin digunakan hanya oleh kelas-kelas yang satu paket atau dengan beda paket tetapi turunan dari kelas tersebut.