Ketika menggunakan class, kita tidak dapat menyamakannya seperti saat kita memprogram dengan basis pemrograman struktural. Class disini hanya bersifat sebagi cetakan atau “blueprint” dari program yang kita buat, untuk dapat mengeksekusi sebuah class kita harus melakukan “instansiasi” yaitu membuat sebuah object dari class yang telah kita buat. Untuk lebih mudahnya kita ibaratkan sebuah class adalah sebuah cetakan roti dan roti adalah sebuah object dimana proses pembuatan roti disebut sebagai instansiasi. Dalam hal ini sama halnya seperti cetakan roti, sebuah class juga bisa digunakan berkali kali untuk membuat sebuah object, dimana satu object dengan yang lainnya tidaklah memiliki keterkaitan meskipun berasal dari kelas yang sama.
Dalam pembuatan suatu class kita bisa jadikan satu file dengan main class atau juga bisa kita pisahkan menjadi file sendiri. Dimana dalam menaruh program kita di class tersebut, kita tidak bisa sembarang menaruh dalam class tersebut, melainkan kita harus membuat fungsi fungsi, yang nantinya akan bisa kita eksekusi melalui instance object yang telah kita buat.
Untuk lebih jelasnya perhatikan contoh dibawah ini :
- public class Main
- {
- public static void main(String[] args) {
- Penjumlahan p = new Penjumlahan(5,9);
- System.out.println(p.hitungPenjumlahan());
- Penjumlahan q = new Penjumlahan(7,9);
- System.out.println(q.hitungPenjumlahan());
- }
- }
- class Penjumlahan
- {
- int a;
- int b;
- public Penjumlahan(int a, int b)
- {
- this.a = a;
- this.b = b;
- }
- public int hitungPenjumlahan()
- {
- return a + b;
- }
- }
class Penjumlahan adalah pendefinisian nama class
public Penjumlahan(int a, int b) merupakan constructor dari class penjumlahan tersebut
int hitungPenjumlahan() merupakan method yang digunakan untuk menjumlahkan dua variabel integer yang telah dipassingkan pada constructor tadi
Penjumlahan p = new Penjumlahan(5,9) proses instansiasi dari class penjumlahan yang membentuk object p, dimana object p mengacu pada struktur yang ada dalam class penjumlahan. Keyword new adalah keyword yang digunakan untuk menginstansiasi sebuah object dari sebuah class dimana berikutnya diikuti oleh construcor dari class tersebut.
Operator this adalah operator yang digunakan untuk mengakses variabel yang paling global dari suatu class jika terdapat dua variabel yang memilki nama yang sama dam scope yang berbeda.
Operator (.) dot adalah operator yang digunakan untuk mengakses atribut atribut yang terdapat didalam class yang telah diinstansiasi tersebut.
Didalam contoh tersebut akan menghasilkan dua output yang berbeda yaitu 14 & 16, meskipun berasal dari class yang sama akan tetapi dalam contoh tersebut terdapat dua object yang berbeda. Hal ini membuktikan bahwa tidak ada keterkaitan pada satu object dengan object lainnya meski berasal dari class yang sama
Access Modifier
Didalam contoh tersebut kita juga bisa melihat keyword keyword seperti public , private dan protected , keyword keyword semacam itu disebut dengan access modifier yaitu memberikan spesifikasi akses pada class maupun method.
public : Adalah ditujukan untuk atribut atribut yang dapat diakses oleh siapapun dan dimanapun senyampang masih dalam scopenya
private : Adalah pembatasan akses hanya untuk di dalam class tersebut
protected : Adalah ditujukan untuk atribut atribut yang hanya dapat diakses oleh child class dari class tersebut (child class akan dibahas lebih lanjut pada inheritance)
Encapsulation
Encapsulation adalah proses packing semua variable dalam suatu class menjadi private dan membuat method mutator dan accessor pada class tersebut. Untuk lebih jelasnya perhatikan contoh dibawah ini :
- public class Main {
- public static void main(String[] args) {
- Penjumlahan p = new Penjumlahan(5,9);
- System.out.println(p.hitungPenjumlahan());
- Penjumlahan q = new Penjumlahan(7,9);
- System.out.println(q.hitungPenjumlahan());
- }
- }
- class Penjumlahan {
- private int a;
- private int b;
- public Penjumlahan(int a, int b) {
- this.a = a;
- this.b = b;
- }
- public int hitungPenjumlahan() {
- return getA() + getB();
- }
- public int getA() {
- return a;
- }
- public void setA(int a) {
- this.a = a;
- }
- public int getB() {
- return b;
- }
- public void setB(int b) {
- this.b = b;
- }
- }
Encapsulation ini berfungsi untuk membatasi akses pada variable varibel yang ada didalam class secara bebas dari luar class, sehingga kita dapat membuat program yang lebih efektif dan efisien.