Pengertian Modifier
Enkapsulasi (encapsulation) merupakan cara untuk melindungi
property(atribut) / method tertentu dari sebuah kelas agar tidak sembarangan
diakses dan dimodifikasi oleh suatu bagian program.
Ada 4 macam modifiers pada bahasa pemrograman java yang akan kita bahas,
yaitu :
- default
- public
- protected
- private
Modifier Default
Modifier default merupakan akses untuk property /
method / class yang hanya bisa diakses oleh class dalam package yang sama.
Cara penulisan hak akses default :
// untuk class dengan akses
default
class NamaKelas
// untuk variabel dengan akses
default
tipeData nama_variable
// untuk method dengan akses
default
namaMethod()
|
ContohClassPaketDua.java
package contoh_paket_dua;
class ContohClassPaketDua {
void tampilkan() {
System.out.println("Ini dari
paket 2");
}
}
|
ContohClass.java
package contoh_paket;
import contoh_paket_dua.*;
// kata kunci import digunakan
untuk memasukkan package yang berbeda
// gunakan .* untuk mengakses
semua kelas pada package
// gunakan .NamaKelas untuk
mengaksess kelas tertentu
class ContohClass {
public static void main(String[] args) {
ContohClassPaketDua p2 = new ContohClassPaketDua();
p2.tampilkan();
}
}
|
Kode diatas akan error karena kita mengakses class ContohClassPaketDua yang memiliki
akses default pada class ContohClass dari package yang berbeda.
Modifier Public
Modifier public yaitu hak akses yang dapat di akses dari
manapun, baik itu dari class yang berbeda maupun dari package yang berbeda.
Cara penulisan untuk akses public :
public class NamaKelas
// untuk class dengan akses public
public tipeData nama_variable
//untuk property dengan akses
public
public namaMethod()
// untuk method dengan akes public
|
Contoh :
Struktur projek seperti gambar diatas.
file ContohClass.java sama dengan contoh diatas.
Struktur projek seperti gambar diatas.
file ContohClass.java sama dengan contoh diatas.
ContohClassPaketDua.java
package contoh_paket_dua;
public class ContohClassPaketDua {
public void tampilkan() {
System.out.println("Ini dari
paket 2");
}
}
|
Jika projek dijalankan hasilnya :
Ini dari paket 2
|
Disini kita dapat mengakses class ContohClassPaketDua pada class ContohClass meskipun dari
package yang berbeda karena ContohClassPaketDua memiliki hak akses
bertipe public.
Begitu juga dengan method tampilkan() harus bertipe public agar bisa di akses
dari class dan package yang berbeda.
Modifier Protected
Hak akses untuk tipe protected hampir sama dengan public akan tetapi tidak
bisa diakses dari paket yang berbeda kecuali merupakan turunan.
Cara penulisannya :
//untuk property
protected tipeData nama_variable
// untuk method
protected namaMethod()
|
Contoh:
Struktur projek seperti gambar diatas.
file ContohClass.java sama dengan contoh diatas.
Struktur projek seperti gambar diatas.
file ContohClass.java sama dengan contoh diatas.
ContohClassPaketDua.java
package contoh_paket_dua;
public class ContohClassPaketDua {
protected void tampilkan() {
System.out.println("Ini dari
paket 2");
}
}
|
Coba anda kembali pada ContohClass.java, akan terdapat error pada method tampilkan(). Kenapa, karena method tampilkan() bertipe protected jadi tidak bisa
diakses dari package yang berbeda kecuali merupakan turunan.
solusinya :
pada ContohClass.java
pada ContohClass.java
package contoh_paket;
import contoh_paket_dua.*;
class ContohClass extends ContohClassPaketDua {
public static void main(String[] args) {
tampilkan();
}
}
|
Karena kita mengakses method tampilkan() pada method static yaitu public static void
main() maka, method tampilkan juga harus bertipe static. jadi silahkan ganti
jadi protected
static void tampilkan() pada file “ContohClassPaketDua.java”.
Untuk kata kunci static akan kami jelaskan pada tutorial-tutorial
selanjutnya.
Jika tidak ada error maka hasilnya adalah :
Ini dari paket 2
|
Modifier Private
Modifier private yaitu hak akses yang hanya bisa di
akses oleh kelas itu sendiri. jadi hanya diperuntukkan untuk kelasnya sendiri.
Cara penulisannya :
// untuk property/atribut
private tipeData nama_variable
// untuk method
private namaMethod()
|
Contoh:
Struktur projek dan ContohClass.java sama seperti sebelumnya.
Struktur projek dan ContohClass.java sama seperti sebelumnya.
ContohClassPaketDua.java
package contoh_paket_dua;
public class ContohClassPaketDua {
private void tampilkan() {
System.out.println("Ini dari
paket 2");
}
}
|
Disini kita akan mendapatkan error pada “ContohClass.java” karena kita
mengkases method tampilkan()pada class yang berbeda.
Solusinya :
ContohClass.java
ContohClass.java
package contoh_paket;
class ContohClass {
private void tampilkan() {
System.out.println("Tidak
bisa dari luar kelas.");
}
public static void main(String[] args)
{
ContohClass a = new ContohClass();
a.tampilkan();
}
}
|
Jadi file ContohClassPaketDua.java dan package contoh_paket_dua tidak
digunakan (boleh dihapus).
Hasil dari kode diatas :
Tidak bisa dari luar kelas.
|
Tidak ada komentar:
Posting Komentar