baca juga : Inheritance dalam Bahasa JavaPada artikel sebelumnya di Inheritance dan Abstraksi sudah dibahas contoh dari enkapsulasi yaitu private field/variable seperti nama NISN dan Nama.
Apa tujuannya dibuat sebagai private ? agar tidak bisa diakses secara langsung.
Untuk itulah tujuannya setter dan getter dibuat.
Contoh lain
Misal kita mempunyai sebuah class yang input tanggal lahir, lalu bisa mendapatkan usia sekarang.Source Code File Pelajar :
Source Code File Main :
Output :
output dari kode diatas |
Pembahasan
Beberapa hal yang perlu diperhatikan disini, pada saat setTanggalLahir penulis menggunakan try-catch atau disebut exception handling. Jika mau bisa googling atau abaikan saja dulu, karna akan dibahas pada artikel artikel berikutnya.selanjutnya untuk membuat TanggalLahir, penulis menggunakan class LocalDate yang disediakan dari Java, untuk dokumentasi bisa dilihat dari sini
Java LocalDate DocumentationInsyaallah akan dibahas lebih banyak juga mengenai LocalDate pada artikel artikel berikutnya.
Karna artikel ini membahas mengenai enkapsulasi, jadi yang akan menjadi titik fokus pada pembahasan kali ini berupa private method di dalam class Pelajar tersebut.
baca juga : Cara Membuat dan Memanggil Method dalam Bahasa JavaKenapa perhitungan usia dipisah ?
Jika anda berniat menjadi seorang programmer profesional, anda harus memahami SOLID principles SOLID
Dimana S untuk Single Responsibility, yang berarti satu tujuan dalam artian disini jika kita membuat method getAge(); sebisa mungkin getAge() hanya melakukan return terhadap age, untuk menghitungnya kita bisa memisahkan logic untuk menghitung usia pada method yg lain.
Kenapa countAge() dibuat private ?
Inilah salah satu contoh enkapsulasi, ada method yang ingin kita buat agar tidak dapat diakses secara langsung, dalam artian objek pelajar tidak perlu memanggil method countAge(). Biarkan objek tersebut hanya memanggil method getAge(); dimana didalam method tersebut kita memanggil method countAge();
Sekian dari penulis, jika ada yang kurang jelas bisa ditanyakan lewat komentar dibawah :)