OOP Praktis – Instance Method (Java)
- OOP Praktis – Class dan Object (Java)
- OOP Praktis – Constructor (Java)
- OOP Praktis – Instance Method (Java)
- OOP Praktis – Encapsulation (Java)
- OOP Praktis – Inheritance (Java)
Pada artikel pertama tentang class & object menggunakan bahasa pemrograman Java, telah disampaikan bahwa dalam sebuah class kita dapat mendefinisikan fields, variabel yang nantinya akan dimiliki oleh object yang dibuat dari class tersebut. Fields dikenal juga dengan istilah instance variables.
Selain, instance variables, di dalam class kita juga dapat mendefinisikan instance methods. Jika instance variables berupa variabel maka instance methods sesuai namanya juga berupa method. Setiap instance method yang didefinisikan pada class, juga akan dimiliki oleh setiap object yang dibuat dari class tersebut.
Class Method vs Instance Method
Pada artikel tentang method, telah dijabarkan cara membuat dan menggunakan method sederhana. Contoh-contoh yang ada pada artikel tersebut dibatasi pada method-method yang menggunakan static modifier. Modifier tersebut menegaskan bahwa method yang ada adalah milik class bersangkutan sehingga ia tidak perlu diakses menggunakan object dan cukup dengan class-nya saja. Konsekuensinya, method bersangkutan hanya memiliki akses pada static fields yang dimiliki class tersebut.
Berbeda dengan contoh pada artikel tersebut, instance method tidak menggunakan static modifier. Kepemilikan method tersebut ada pada object yang dibuat dari class bersangkutan, sehingga aksesnya juga harus menggunakan object tersebut. Ia juga memiliki akses tidak hanya terhadap static fields, namun juga fields milik object yang dibuat dari class tersebut.
Perhatikan contoh berikut
Contoh class dengan dua jenis method
/** * Cth class untuk produk motor dari Yamaha */ public class Produk { static String pabrikan = "Yamaha"; String model; String variant; // Constructor public Produk(String model,String variant) { this.model = model; this.variant = variant; } // Cth static method public static void printPabrikan() { System.out.println(pabrikan); } // Cth instance method public void printAll() { System.out.println(pabrikan+" "+this.model+" "+this.variant); } }
Cara penggunaan kedua jenis method
public static void main(String[] args) { //instansiasi object Produk mio = new Produk("Mio Sporty","Standard"); // cara mengakses static/class method Produk.printPabrikan(); // cara mengakses instance method mio.printAll(); }
Penjelasan
printPabrikan() merupakan static method, ia dapat diakses langsung melalui nama classnya yakni Produk. Method ini hanya memiliki akses terhadap static fields (pabrikan)
printAll() merupakan instance method, ia harus diakses melalui object yang dibuat dari class tersebut (mio). Method printAll() memiliki hak akses baik terhadap static fields (pabrikan) maupun instance fields (model dan variant)