Nah kita masih melanjutkan postingan sebelumnya yang membahas bagian Anatomi Class Java tentang bagaimana kita mendeklarasikan class dan medeklarasikan interface, kali ini kita akan membahas tentang apa itu Object dan Method.
Class vs Object
Object yaitu Instansi dari sebuah Class. Kalau kita analogikan, class itu sebuah cetakan sedangkan object itu adalah hasil cetakan. Class juga bisa dikatakan sebagai kategori, sedangkan object adalah sesuatu yang memenuhi syarat - syarat yang harus dipenuhi agar masuk dalam kategori tersebut. Jadi bisa dibilang satu class bisa mempunyai banyak object, setiap object mempunyai sifat yang sama persis seperti yang didefinisikan dalam class tersebut.
Kita ambil contoh adalah class Person, kemudian kita buat sebuah instance dari class Person yaitu bandenk. Kalimat diatas kalau diwujudkan dalam kode menjadi seperti di bawah ini :
Person bandenk = new Person();
Dua kata paling kiri adalah proses deklarasi sebuah object dengan tipe Person, kemudian sebelah kanan tanda sama dengan (=) terjadi proses instansi object dari class Person menggunakan keyword new. Setiap kali kita bertemu keyword new artinya hanya satu, yaitu instansi object dari sebuah class. Keyword new secara detail dalam level yang paling bawah, menyebabkan JVM akan membuat object dalam suatu memori.
Method
Method adalah sekumpulan kode yang diberi nama, untuk merujuk ke sekumpulan kode tersebut digunakan sebuah nama yang disebut dengan nama method. Method mempunyai parameter sebagai input dan nilai kembalian sebagai output. Kita bisa juga membayangkan method itu adalah sebuah mesin, ada input yang dibutuhkan dan output yang dihasilkan.
Deklarasi method terdiri dari beberapa bagian, bagian pertama yaitu access modifier dari method, apakah public, private, protected atau default. Bagian berikutnya adalah tipe kembalian dari method, kalau method tidak mengembalikan apa - apa maka keyword void yang digunakan. Bagian ketiga adalah adalah nama method, sesuai dengan aturan java code convension, nama method diawali dengan huruf kecil dan setiap kata setelahnya diawali dengan huruf besar (camel case).
Setelah nama Method ada parameter. Sebuah method bisa juga tidak punya parameter, punya satu, dua dan seterusnya. Setelah java 5 ada feature yang disebut dengan varargs, feature ini memungkinkan method untuk mempunyai jumlah parameter yang bervariasi. Varargs akan kita bahas di bagian tentang Java 5 Language enhchancement, jadi tidak akan dibahas di bagian ini.
Bagian terakhir dari method adalah deklarasi throws exception, dimana kita bisa mendeklarasikan tipe exception yang akan di throws oleh method. Bagian tentang exception akan membahas lebih lanjut tentang throws exception.
Nama method dan parameter adalah pembeda antara satu method dengan method lainnya. Kalu dua method namanya beda ya pasti dianggap dua buah method berbeda. Kalau dua method namanya sama dianggap sebagai method yang berbeda kalau parameternya berbeda, method dengan nama sama dan parameter berbeda ini disebut dengan overloading dalam konsep OOP.
Kalau method mempunyai nama yang sama dan parameter yang sama tetapi tipe return atau trows exceptionnya berbeda maka akan menyebabkan error pada waktu kompilasi. Jadi kalau mendefinisikan method baru, pastikan bahwa namanya tidak sama dengan method lain atau setidaknya parameternya berbeda baik dari sisi jumlahnya, tipe parameter atau posisi parameternya.
Dari penjelasan diatas, struktur method seperti di bawah ini adalah benar :
public void main (String[] args){}
public String methodReturnString(){ return "ini string"; }
private void methodBerparameter(String parameter1, Integer parameter2) {}
public void methodTrowsException() trows IOException {}
protected String protectedMethod(String paranneter1, Integer parameter2)
trows IOException { return "ini string"; }
public void methodBerbeda(){}
public void methodBerbeda(String parameter1) {}
public void methodBerbeda(String parameter1, Integer paameter2) {}
public void methodBerbeda(Integer parameter1, String parameter2) {}
public void methodBerbeda(Double parameter1, Double parameter2) {}
Ada beberapa keyword yang bisa ditambahkan dalam deklarasi method. Keyword yang paling sering digunakan adalah static. Bagian kode Java yang dideklarasikan dengan menggunakan static akan menjadi anggota dari class, bukan anggota dari object, silahkan kembali ke bagian sebelumnya kalau masih belum bisa membedakan mana class dan mana object.
Karena method yang ditandai dengan static adalah bagian dari class, maka bisa diakses langsung dari nama class itu sendiri, tidak perlu membuat object. Method static hanya bisa memanggil method lain dalam satu class yang juga ditandai static. Method main yang biasa kita gunakan untuk menjalankan aplikasi java juga ditandai dengan static, misalnya kita akan memanggil method lain dari method static, maka method lainnya ini juga harus ditandai dengan static. Kita lihat contoh dibawah :
public class StaticTest{
public static void main(String[] args) {
//static method memanggil static method lain dalam class yang
//sama.
contohMethodStatic();
//method static juga bisa dipanggil dari nama classnya.
StaticTest.contohMethodStatic();
}
public staic void contohMethodStatic(){
System.out.println("method static dipanggil");
}
}
Kalau kode diatas di compile, kemudian dijalankan maka hasilnya seperti dibawah ini :
$ javac StaticTest.java
$ java StaticTest
method static dipanggil
method static dipanggil
$
terlihat bahwa method contohMethodStatic dipanggil dua kali, baik menggunakan nama class maupun tidak.
Keyword lain yang bisa digunakan oleh method adalah final, synchronize dan native. Keyword final akan menyebabkan method tidak bisa di overidde, kita bahas topik ini dibagian OOP. Keyword synchronize akan menyebabkan hanya satu thread yang bisa mengeksekusi method ini dalam satu waktu, kalau ada thread yang lain maka harus mengantri sampai thread sebelumnya selesai menjalankan method tersebut. Keyword native menandai implementasi method akan diletakkan dalam kode native, misalnya ditulis menggunakan C/C++, kemudian menggunakan Java Native Interface (JNI) untuk mengakses implementasi method tersebut. Topik mengenai JNI dan native tidak kita bahas di bagian ini atau mungkin anda bisa baca atau mempelajari topik advace ini dari sumber lain yak.
Untuk pembahasan tentang apa itu object dan method kami cukupkan dan postingan berikutnya kita akan melanjutkan pembahasan tentang Anatomi Class Java bagian Constructor, Property dan Konstanta.
Sekian dari kami semoga bisa bermanfaat bagi kita semua dan terimakasih sudah mampir di postingan kami.. :)
To Be Continued.. :)


0 komentar:
Posting Komentar