Static Method dan Instance Method Java dan Fungsinya
Instance method adalah method yang membutuhkan object dari class-nya sendiri untuk diciptakan sebelum method tersebut dipanggil. Untuk memanggil method instance, maka harus diciptakan object dari class bersamaan class tersebut diciptakan.
public void coba(String name)
{/* code program yang akan dieksekusi... */}
/* Return type dapat berupa int, float, string, atau tipe data yang didefinisikan oleh user */
Point penting:
- Instance method adalah milik dari object class tetapi tidak pada class yang akan dipanggil setelah diciptakan object dari class tersebut.
- Setiap object yang diciptakan dari class memiliki duplikat dari instance method class.
- Bisa dilakukan overriding ketika telah diselesaikan menggunakan dynamic binding pada saat runtime.
// Contoh ilustrasi akses dari
// instance method.
import java.io.*;
class Foo {
String name = "";
// Instance method dipanggil
// bersamaan dengan class yang
// sama atau dari class lain
// yang dedifinisikan dalam
// pakcage yang sama atau dari
// package yang berbeda.
public void bons(String name)
{this.name = name;}
}
class MKN {
public static void main (String[] args)
{
// Ciptakan instance dari
// class.
Foo ob = new Foo();
// Memanggil instance method
// dalam class 'Foo'.
ob.bons("MakanNasiPadang");
System.out.println(ob.name);}
}
Static Method
Static method adalah method pada Java yang dapat dipanggil tanpa menciptakan object dari class. Method tersebut direferensikan oleh class name itu sendiri atau referensi untuk object dari class.
public static void bons(String name)
{/* code program yang akan dieksekusi... */}
/* harus memiliki static modifier dalam deklarasinya */
/* return tipe dapat berupa int, float, string, atau tipe data yang didefinisikan oleh user */
Point penting:
- Static method berasosiasi terhadap class yang dapat dipanggil tanpa menciptakan instance dari class. ClassName.methodName(args).
- Dirancang dengan tujuan untuk berbagi diantara semua object yang diciptakan dari class yang sama.
- static method tidak bisa overriding. Tetapi bisa overloading ketika diselesaikan menggunakan static binding oleh kompilator pada waktu kompilasi program.
// Contoh ilustrasi akses
// static method dari class.
import java.io.*;
class Bons
{
public static String bonsName = "";
public static void bons(String name)
{bonsName = name;}
}
class MKN
{
public static void main (String[] args){
// Mengakses static method
// bons() dan field oleh class
// name itu sendiri.
Bons.bons("elfan");
System.out.println(Bons.bonsName);
// Mengakses static method
// bons() dengan mengunakan
// objek referensi.
Bons obj = new Bons();
obj.bons("mauludi");
System.out.println(obj.bonsName);}
}
mauludi
Catatan: variabel static dan nilainya (data primitif atau referensi) didefinisikan dalam class yang disimpan dalam ruang memori PermGen.
Jika Static Variabel Mengacu pada Suatu Object
static int i = 1;
static Object obj = new Object();
Pada baris pertama, value 1 akan disimpan dalam section PermGen. Pada baris kedua, referensi obj dapat disimpan dalam section PermGen dan object-nya mengacu untuk disimpan dalam section heap.
Waktu Menggunakan Static Method
- Ketika memiliki code program yang dapat dibagi ke semua instance dari class yang sama, dan meletakkan porsi dari code program ke method static.
- Pada dasarnya digunakan untuk mengakses field static dari class.
Instance Method dan Static Method
- Instance method dapat mengakses instance method dan instance variabel secara langsung.
- Instance method dapat mengakses static variabel dan static method secara langsung.
- Static method dapat mengakses variabel static dan method static secara langsung.
- Static method tidak dapat mengakses instance method dan instance variabel secara langsung. static method harus menggunakan referensi menuju object dan static method tidak dapat menggunakan keyword this, karena tidak ada contoh untuk 'this' untuk dirujuk.
Apa itu keyword static Java?
BalasHapusKeyword static pada Java digunakan terutama pada bagian menejemen memori. Keyword static adalah milik class ketimbang milik instance class. Static juga dapat berupa variabel atau dikenal sebagai variabel class.
HapusApa yang dimaksud dengan instance method Java?
BalasHapusVariabel instance pada Java adalah variabel non-static yang ditentukan pada class diluar method, constructor, atau block apapun. Setiap object class memiliki salinan terpisah atau contoh variabel tersebut.
HapusInstance method pada Java pada dasarnya adalah method dari sebuah class. Dengan kata lain, non static method yang dideklarasikan dalam class adalah method instance. Method semacam ini membutuhkan object class-nya untuk dibuah sebelum dapat dipanggil oleh program. Untuk memanggil method instance, yang perlu dilakukan terlebih dahulu adalah membuat object class-nya.
BalasHapus