Modifier dalam Java

Modifier dalam OOP (Object Oriented Programming), seperti halnya gerbang untuk akses ke dalam apa yang ia modifierkan. Gimana ya bahasanya hmmm. kalau secara gamblangnya yang saya dapat di Tutorialspoint adalah sebagai berikut : Modifiers are keywords that you add to those definitions to change their meanings. Makin bingung kan ?. Ya sudah simak saja penjelasan dibawah semoga membuat anda tercerahkan.

Definisi ( Apasih ) Modifier (itu ?) :
  • Modifier digunakan untuk mengatur hak akses antar/inter class dan member class. Modifier terdiri dari private, protected, public, dan internal. Ada istilah nonmodifier, kondisi ini memungkinkan class dapat mengakses class lainnya yang berada dalam satu package tetapi tidak berlaku pada sub class.(modul praktikum OOP TI Unpad 2016).
  • Modifiers are keywords that you add to those definitions to change their meanings (Tutorialspoint).
  • Sebuah gerbang akses kedalam apa yang di modifierkannya (saya sendiri hehe).
Jenis-jenis Modifier :
hmmm, sebenarnya saya kurang tau yang benar tabel 1 atau 2. Mungkin nanti saya akan tanyakan ke beberapa sumber hehe:
Tabel 1 : Modifier

Tabel 2 : Modifier
Nah, gitu mari kita contohkan saja:
idenya kita buat 2 class (satu class parent, satu class child):

class Induk {
 int umur;
 public Induk(){
  this.umur=45;
 }
 public String toString(){ //modifier public;
  return ("Umur : "+this.umur);
 }
}

class Anak extends Induk{
 String nama; 
 public Anak(String nama){
  this.nama = nama;
 }
 public void cetak(){ 
  System.out.println("Ini class Anak \nNamanya : "+this.umur+"\nUmur indukan : "+super.umur);
 }
}

public class Modifier{
 public static void main(String[] args) {
  Anak hehe = new Anak("Wahaha");
  hehe.cetak();
  hehe.toString();
 }
}
nah modifier public sendiri bisa diakses oleh class childnya. lihat di method toString(). Berikut hasilnya :
nah, bagaimana kalau kita biat method yang modifiernya private :

class Induk {
 int umur; //Modifier => non-modifier
 public Induk(){
  this.umur=45;
 }
 public String toString(){
  return ("Umur : "+this.umur);
 }

 private String cetakInduk(){
  return "ini induk seharusnya ngga boleh kecetak";
 }
}

class Anak extends Induk{
 String nama; 
 public Anak(String nama){
  this.nama = nama;
 }
 public void cetak(){
  System.out.println("Ini class Anak \nNamanya : "+this.umur+"\nUmur indukan : "+super.umur);
 }
}

public class Modifier{
 public static void main(String[] args) {
  Anak hehe = new Anak("Wahaha");
  hehe.cetak();
  hehe.toString();
  System.out.println();hehe.cetakInduk();
 }
}
maka, akan muncul pesan error sedemikian :
isi errornya :
Modifier.java:30: error: cannot find symbol
                hehe.cetakInduk();
                    ^
  symbol:   method cetakInduk()
  location: variable hehe of type Anak
1 error
bagaimana kalau protected :

class Induk {
 int umur; //Modifier => non-modifier
 public Induk(){
  this.umur=45;
 }
 public String toString(){
  return ("Umur : "+this.umur);
 }

 protected String cetakInduk(){
  return "ini induk seharusnya ngga boleh kecetak";
 }
}

class Anak extends Induk{
 String nama; 
 public Anak(String nama){
  this.nama = nama;
 }
 public void cetak(){
  System.out.println("Ini class Anak \nNamanya : "+this.umur+"\nUmur indukan : "+super.umur);
 }
}

public class Modifier{
 public static void main(String[] args) {
  Anak hehe = new Anak("Wahaha");
  hehe.cetak();
  hehe.toString();
  System.out.println(hehe.cetakInduk());
 }
}
dan hasilnya bisa dikompile dan dijalankan, berikut hasilnya :
percobaan, terakhir bagaimana kalau non-modifier :

class Induk {
 int umur;
 public Induk(){
  this.umur=45;
 }
 public String toString(){
  return ("Umur : "+this.umur);
 }

 String cetakInduk(){
  return "ini induk seharusnya ngga boleh kecetak";
 }
}

class Anak extends Induk{
 String nama; 
 public Anak(String nama){
  this.nama = nama;
 }
 public void cetak(){
  System.out.println("Ini class Anak \nNamanya : "+this.nama+"\nUmur indukan : "+super.umur);
 }
}

public class Modifier{
 public static void main(String[] args) {
  Anak hehe = new Anak("Wahaha");
  hehe.cetak();
  hehe.toString();
  System.out.println(hehe.cetakInduk());
 }
}

dan, ternyata masih bisa dikompile dan dijalankan, hasil :
kesimpulan, bahwa akses untuk subclass bisa dalam bentuk protected dan public. terimakasih

Posting Komentar untuk "Modifier dalam Java"