Memahami Modifiers Dan Kontrol Kanal Pada Java
Apa itu modifiers dalam pemrograman Java? Modifiers ialah keyword istimewa yang sanggup memodifikasi definisi (dan perilaku) dari class, metode atau variabel. Beberapa diantaranya mungkin sering anda temui dalam arahan Java, berikut ini ialah modifier:
Untuk menggunakannya setiap modifiers tersebut, anda sanggup meletakkkannya sebelum definisi dari class method atau variabel ibarat teladan di bawah ini:
a) public class Jambu extend Buah {......}
b) private boolean matang;
c) static final double BERAT = 1.25;
d) protected static final int JUMLAH = 10;
e) public static void main (String args []) {
................
}
Penempatan modifier ini biasanya mengikuti urutan:
<Akses> static abstract synchronized volatile simpulan native, dimana <Akses> ini sanggup saja berupa public protected atau private, namun dilarang lebih dari satu akses.
Kali ini hanya akan dibahas mengenai acces modifiers yaitu public, protected, default dan private.
Jika anda tidak memakai modifier apapun, maka ini ialah default, dimana modifier ini hanya sanggup diakses di dalam package yang sama.
public hampir sama dengan default, keduanya mengizinkan method dan variabel untuk sanggup diakses oleh class lain di dalam package yang sama. Perbedaan akan muncul dikala anda menciptakan package-package dari class.
Ketika anda akan memakai class di luar package dimana class tersebut berada melalui statement import, maka hal ini tidak akan sanggup dilakukan sebelum class dalam package itu dideklarasikan sebagai public.
Perhatikan teladan di bawah ini:
class Buah dideklarasikan public dan berada pada package com.bahasaJava.
Kemudian class TestBuah berada di dalam package test ibarat di bawah ini.
Perhatikan bahwa class Buah harus dideklarasikan secara public (line 3) biar sanggup dipakai oleh class TestBuah yang berada pada package berbeda, sebab jikalau tidak demikian, maka class Buah dianggap mempunyai acces modifier default yang hanya sanggup diakses pada package yang sama, dan akan terjadi error yang menyatakan bahwa class Buah "not visible".
Method private sanggup dipanggil oleh method lainnya di dalam class yang sama namun tidak sanggup dipanggil oleh class lainnya. Sebagai pelengkap baik method atau variabel private tidak sanggup di wariskan atau inherited kepada subclass-nya.
Perhatikan teladan di bawah ini, di mana class Buah dan class Test Buah berada pada package yang sama yaitu com.bahasaJava. Method tampilkanPesan() mempunyai acces modifier default dan dikala method ini akan diakses oleh class berbeda yaitu class TestBuah maka akan terjadi error yang menyatakan bahwa method itu "not visible".
Sebagai catatan:
Perhatikan teladan sederhana berikut ini:
class Buah berada pada package com.bahasaJava dan mempunyai acces modifier protected untuk method tampilkanPesan();
class Apel berada pada package test dan inherit dari class Buah (menggunakan keyword extends), di sini objek dari class Apel memakai method tampilkanPesan dari class Buah.
- Modifier untuk mengontrol saluran terhadap class method atau variabel disebut juga acces modifiers diantaranya yaitu public, protected, default dan private.
- Modifier non-acces static untuk menciptakan method dan variabel dari class.
- Modifier non-acces abstract untuk menciptakan class dan method abstract.
- Modifier non-acces final untuk menuntaskan implementasi dari class, method dan variabel
- Modifiers non-acces synchronized dan volatile yang dipakai untuk thread.
- Modifiers non-acces native yang dipakai untuk menciptakan method native.
Untuk menggunakannya setiap modifiers tersebut, anda sanggup meletakkkannya sebelum definisi dari class method atau variabel ibarat teladan di bawah ini:
a) public class Jambu extend Buah {......}
b) private boolean matang;
c) static final double BERAT = 1.25;
d) protected static final int JUMLAH = 10;
e) public static void main (String args []) {
................
}
Penempatan modifier ini biasanya mengikuti urutan:
<Akses> static abstract synchronized volatile simpulan native, dimana <Akses> ini sanggup saja berupa public protected atau private, namun dilarang lebih dari satu akses.
Kali ini hanya akan dibahas mengenai acces modifiers yaitu public, protected, default dan private.
public dan default
public modifier artinya sanggup diakses dimana saja. Method atau variabel dengan modifier ini sanggup diakses pada class dimana method atau variabel itu didefinisikan, sanggup diakses oleh subclass dari class, sanggup diakses oleh semua class pada package yang sama atau oleh class lain diluar package tersebut, pada dasarnya sanggup diakses dimanapun.Jika anda tidak memakai modifier apapun, maka ini ialah default, dimana modifier ini hanya sanggup diakses di dalam package yang sama.
public hampir sama dengan default, keduanya mengizinkan method dan variabel untuk sanggup diakses oleh class lain di dalam package yang sama. Perbedaan akan muncul dikala anda menciptakan package-package dari class.
Ketika anda akan memakai class di luar package dimana class tersebut berada melalui statement import, maka hal ini tidak akan sanggup dilakukan sebelum class dalam package itu dideklarasikan sebagai public.
Perhatikan teladan di bawah ini:
class Buah dideklarasikan public dan berada pada package com.bahasaJava.
package com.bahasaJava; public class Buah { private String nama; public void setNamaBuah(String namaBuah) { nama = namaBuah; } public String getNamaBuah() { return nama; } public void tampilkanPesan(){ System.out.println("Nama buah adalah: " + getNamaBuah()); } }
Kemudian class TestBuah berada di dalam package test ibarat di bawah ini.
package test; //statement import untuk memakai class diluar package import com.bahasaJava.Buah; public class TestBuah { public static void main(String args []){ Buah buah = new Buah(); buah.setNamaBuah("Anggur"); buah.tampilkanPesan(); } }
Perhatikan bahwa class Buah harus dideklarasikan secara public (line 3) biar sanggup dipakai oleh class TestBuah yang berada pada package berbeda, sebab jikalau tidak demikian, maka class Buah dianggap mempunyai acces modifier default yang hanya sanggup diakses pada package yang sama, dan akan terjadi error yang menyatakan bahwa class Buah "not visible".
private
Ini ialah acces modifier yang paling ketat. private artinya method dan variabel hanya sanggup diakses oleh class yang sama. Variabel instance dengan acces modifier private hanya sanggup dipakai oleh method pada class yang sama, namun tidak sanggup dilihat atau dipakai oleh class atau objek lainnya.Method private sanggup dipanggil oleh method lainnya di dalam class yang sama namun tidak sanggup dipanggil oleh class lainnya. Sebagai pelengkap baik method atau variabel private tidak sanggup di wariskan atau inherited kepada subclass-nya.
Perhatikan teladan di bawah ini, di mana class Buah dan class Test Buah berada pada package yang sama yaitu com.bahasaJava. Method tampilkanPesan() mempunyai acces modifier default dan dikala method ini akan diakses oleh class berbeda yaitu class TestBuah maka akan terjadi error yang menyatakan bahwa method itu "not visible".
package com.bahasaJava; public class Buah { String nama = "Anggur"; private void tampilkanPesan(){ System.out.println("Nama buah ialah : " + nama ); } }
package com.bahasaJava; public class TestBuah { public static void main(String args []){ Buah buah = new Buah(); //variabel instance nama dari class Buah mempunyai //acces modifier default //sehingga sanggup diakses dalam package yang sama //oleh class berbeda System.out.print(buah.nama); //Method tampilkanPesan not visible sebab //acces modifier ialah private buah.tampilkanPesan();//Error disini } }
Sebagai catatan:
Acces modifier private sanggup dipakai pada constructor class, namun jikalau ini dipakai anda tidak sanggup menciptakan objek di luar class tersebut.
protected
Acces modifier protected artinya sanggup diakses di dalam package ataupun di luar package namun hanya melalui inheritance (atau pewarisan yang merupakan salah satu konsep penting pemrograman Java).protected tidak sanggup diaplikasikan pada class, namun sanggup diaplikasikan pada data field, method dan contructor.
Perhatikan teladan sederhana berikut ini:
class Buah berada pada package com.bahasaJava dan mempunyai acces modifier protected untuk method tampilkanPesan();
package com.bahasaJava; public class Buah { //Acces modifier protected protected void tampilkanPesan(String warna){ System.out.println("Warna buah adalah: " + warna); } }
class Apel berada pada package test dan inherit dari class Buah (menggunakan keyword extends), di sini objek dari class Apel memakai method tampilkanPesan dari class Buah.
package test; import com.bahasaJava.Buah; public class Apel extends Buah { private String warna = "Merah"; public static void main(String args []){ Apel apel = new Apel(); apel.tampilkanPesan(apel.warna); } }
Kesimpulan
Karena perbedaan dari beberapa acces modifiers tersebut sanggup menciptakan pusing, terutama pada penggalan protected method dan variabel, maka tabel berikut ini sanggup membantu anda untuk mengklarifikasi tipe perlindungan di atas.Java acces modifieers |
Belum ada Komentar untuk "Memahami Modifiers Dan Kontrol Kanal Pada Java"
Posting Komentar