Belajar Java — Encapsulation

Berikut adalah contoh dari class Player sederhana

Bayangkan kita akan memprogram sebuah game dan kita membuat kesalahan dan menetapkan pemain kita dengan health kosong. Itu tidak bagus! kita seharusnya membuat health tidak dapat diakses oleh siapapun di luar class, jadi mereka akan mengecek melalui nilai sebelum mengaturnya. ini mencegah kita dari kesalahan mengatur health ke nilai yang salah! konsep ini disebut encapsulation.

encapsulation, or data hiding, adalah prinsip dari membuat variable member yang tidak dapat diakses dari luar class, tapi menyediakan method yang bernama getter dan setter untuk mengakses dan memodifikasi variable member secara aman. ini dapat mencegah masalah, seperti mengatur health atau posisi ke nilai yang salah.

Access Modifiers

Access modifier adalah cara dimana kita bisa membuat member variable atau method yang tidak bisa di akses menjadi bisa digunakan diluar class. Ada dua access modifier dalam java yaitu public dan private.

Seperti namanya, private modifier pada variable member atau method mencegah seseorang dari luar class untuk mengaksesnya.

Sebaliknya, public membuat method dapat diakses dimana saja! misalkan kita mengubah private int health; ke public int health;.

Pilihlah semua access modifier dalam Java.

Urutkan dengan benar dengan mengikuti perintah! Buatlah sebuah public variable member dengan nama playerPos dan berikan nilai 5.14.

Apakah class Game dibawah ini akan mengalami error?

a. Tidak, tidak akan error
b. Ya akan ada error! kita tidak bisa mengakses private member diluar dari class Player

Apakah class Game dibawah ini akan mengalami error?

a. Tidak, tidak akan error!
b. Ya akan ada error! kita tidak bisa mengakses public member diluar dari class Player

Getter dan Setter

Secara umum, encapsulation mengatakan kita seharusnya punya private variable member dan menyediakan method public untuk keamanan mengaksesnya.

Untuk itu kita menggunakan Getter dan Setter. Untuk setiap private member variable, kita bisa mendeklarasikan dua method public, satu untuk mendapatkan variabl dan satu lagi untuk menentukan nilai variable.

Kita mempunyai akses ke private anggota health melalui getter dan setter.

Sekarang kita bisa mengakses dan mengubah health! sejak kita mempunyai method, kita bisa menambahkan logika didalam getter dan setter sebelum kita mendapatkan kembali nilai atau menentukan nilai.

Sebagai contoh, mari kita tambahkan logika untuk hanya menentukan health jika input antara 0–100.

Sekarang, jika kita mencoba untuk menggunakan setter dan lulus di nilai yang tidak cocok, maka setter tidak akan menetapkan nilainya.

Urutkan blok dibawah ini dengan mengikuti instruksi! Deklarasikan sebuah setter untuk mengubah member position.

Jawaban: ………………….

Urutkan blok dibawah ini dengan mengikuti instruksi! Deklarasikan sebuah getter untuk mengubah member health.

Jawaban: …………….

Final Modifier

Ada sebuah tambahan modifier, kita bisa menambahkan variable member yang bernama final. Bayangkan kita akan membuat game dan kita memiliki sebuah variabel yang menampilkan posisi dimulainya untuk pemain, dan pemain akan memulai dari koordinat yang sama di dalam semua level.

Kita membuat sebuah kesalahan dan mengesampingkan nilai dari posisi awal! kita bermaksud untuk mengubah p1Pos, tapi kita malah mengubah startPos! Ini tidak bagus!kita tidak seharusnya mengubah nilai dari startPos setelah kita mendefinisikannya di dalam class.

final modifier dalam member variable mencegah nilai darimenjadi diubah! itu membuat variable konstan. Jika kita ingin mengembalikan private int startPos = 5; dengan private final int startPos =5;, kemudian kita akan mendapatka error ketika kita mencoba untu menentukan startPos!

Dengan mengkonversi, konstanta menulis di ALL_CAPS. Itu adalah cara lain untuk mengidentifikasi nya. final modifier bisa menambahkan ke banyak member variable untuk membuat variable konstan.

Apakah nama modifier yang digunakan untuk membuat variable konstanta?

Jawaban: ………..

Static Modifier

Bayangkan kita akan membuat sebuah game multiplayer, dan kita akan mencoba melacak jumlah pemain. Kita bisa menambahkan sebuah field ke class Player yang dipanggil dengan numPlayer.

Akan tetapi kita mengetahui setiap instansi memiliki nilainya sendiri dari setiap member variable. Setiap instansi Player akan mempunyai numPlayer nya sendiri. Malahan, kita ingin mempunyai satu numPlayer untuk semua instansi, sebagai gantinya kita akan terikat dengan class Player sebagai ganti dari semua particular.

Kata kunci static mengijinkan kita untuk mendeklarasikan member variable untuk dibagi di semua instansi! Kita dapat menerapkan kata kunci static ke method dengan baik dan membuat method membagi semua instansi. Kita dapat memanggil method static didalam class name, bukan di dalam instance.

Mari kita buat static numPlayer sehingga itu bisa dibagi di semua instansi. kapanpun kita membuat player baru, mari naikkan numPlayer sehingga kita bisa melacaknya, Kita juga harus menyediakan jalan untuk mengakses variabel statistic melalui getter.

Kita bisa membuat instansi numPlayer yang akan dinaikkan seperti yang kita buat pada contoh yang baru.

Ada sebuah peraturan yang harus diingat dengan static dan instance, atau non-static, variabel :kita tidak dapat mengakses member variabel non-static didalam method static.

Urutkan dengan benar dengan mengikuti petunjuk! Buatlah variabel yang bisa diakses dimana saja dan dibagi disemua instansi. Variabel harus bertipe String dan dengan nama status.

Show your support

Clapping shows how much you appreciated Tubagus Haidir Ali’s story.