Proteksi Variabel Field pada Objek Java (1)

Design Pattern, atau dikenal juga dengan Refactoring, adalah salah satu cabang ilmu komputer (Software Design) yang membuat code kita lebih mapan, mudah ditelusuri, mudah dibaca, dan reusable. Nah, kali ini aku akan nulis yang agak berat, namun tingkatannya cukup pemula bagi programmer/mahasiswa yang baru saja masuk ke dunia Objek Oriented Programming, khususnya Java.

Enkapsulasi/Pembungkusan Objek pada Java direpresentasikan dalam bentuk class-class. Sedangkan semua properti objek dinyatakan dalam method dan field (variabel dalam class). Misalnya,

public class MyClass {

   private int myField1 = 0;

   public double mySecondField = 0;

   private void thisIsPrivateMethod( int parameters ) {

      // do something here...

   }

   public int getComputation() {

   // how to get some value from outer class...

   }

}

Proteksi data dalam sebuah class dinyatakan dalam sintaks public, private, dan default. Public artinya suatu data dalam class dapat diakses dan dimodifikasi dari luar class. Private berarti data sama sekali tidak dapat terlihat dan tidak dapat diubah dari luar class. Data ini hanya terlihat oleh class itu sendiri. Default artinya, data hanya bisa dilihat oleh class-class yang memiliki package yang sama (Aduh, opo meneh package iku?).

Oke, sekarang kita bahas package. Dalam dunia coding, penamaan objek dengan nama yang sama persis seringkali terjadi. Bagaimana satu objek dengan objek yang lain yang memiliki nama yang sama tetap dapat dibedakan? Java menyelesaikannya dengan solusi yang cerdas: package. Package membungkus objek-objek (class-class) dalam bundel yang sama sehingga, objek dengan nama sama dapat dibedakan dengan memberikan nama package yang berbeda. Misalnya, java.awt, javax.swing, com.mysql.jdbc, dan nama-nama lainnya. Tentu saja, pemberian nama yang sama dalam package yang sama tidak diperkenankan.

[bersambung ke JavaBean (2)]

By Galih Satriaji

Bookaholic, Workaholic. Chubby. That's me!

Leave a comment

Your email address will not be published. Required fields are marked *