CONSTRUCTOR PADA PEMROGRAMAN JAVA da4s3
Constructor
Constructor adalah method yang spesial, karena mempunyai aturan-aturan sebagai berikut:
mempunyai nama yang sama persis dengan nama class
tidak mempunyai tipe return
digunakan untuk menginstansiasi object
hanya mempunyai access modifer, tidak ada keyword lain yang diletakkan sebelum nama method pada deklarasi constructor.
Seperti halnya method pada umumnya, constructor bisa mempunyai parameter serta melempar (throws) exception. Constructor yang tidak mempunyai parameter disebut dengan default constructor. Setiap class pasti mempunyai setidaknya satu constructor, kalau dalam deklarasi class tidak ada constructor sama sekali, Java secara default akan mempunyai default constructor ini. Kalau ada satu saja constructor dengan parameter, maka default constructor tidak akan dibuat, kalau masih mau ada default constructor maka harus dideklarasikan secara eksplisit. Mari kita lihat contoh kodenya :
public ConstructorTest {
public void methodSederhana(){
System.out.println("method sederhana dipanggil");
}
public static void main(String[] args){
ConstructorTest test = new ConstructorTest();
test.methodSederhana();
}
}
Kode di atas memperlihatkan bahwa class ConstructorTest tidak mendefnisikan constructor sama sekali, tetapi constructor new ConstructorTest() dapat dipanggil tanpa menyebabkan adanya
error. Hal ini disebabkan karena Java akan membuatkan default constructor kalau class tidak mendefnisikan cosnstructor sama sekali.
public class ConstructorNonDefaultTest {
public ConstructorNonDefaultTest(String text) {
methodSederhana(text);
}
public void methodSederhana(String text){
System.out.println("method sederhana dipanggil dengan text : " + text);
}
public static void main(String[] args){
//error pada waktu compile karena ada constructor yang dideklarasikan
//sehingga default constructor menjadi wajib dideklarasikan
ConstructorNonDefaultTest test = new ConstructorNonDefaultTest();
//constructor non default dengan satu parameter bertipe string
ConstructorNonDefaultTest test1 =
new ConstructorNonDefaultTest("ini test");
}
}
kalau kode di atas coba dicompile maka terdapat satu buah error seperti di bawah ini :
$ javac ConstructorNonDefaultTest.java
ConstructorNonDefaultTest.java:11: cannot find symbol
symbol : constructor ConstructorNonDefaultTest()
location: class ConstructorNonDefaultTest
ConstructorNonDefaultTest test = new ConstructorNonDefaultTest();
^
1 error
$
Constructor dapat memanggil constructor lain dalam class yang sama menggunakan keyword
this. Kode untuk memanggil constructor lain ini harus berada di baris pertama dari constructor,
kalau tidak maka akan ada error pada waktu kompilasi. Berikut ini contohnya :
public class ConstructorCallConstructorTest {
public ConstructorCallConstructor(){
this("constructor memanggil constructor");
//kode lain di sini, tidak bisa diletakkan di atas keyword this
}
public ConstructorCallConstructor(String text) {
methodSederhana(text);
}
public void methodSederhana(String text){
System.out.println("method sederhana dipanggil dengan text : " + text);
}
public static void main(String[] args){
ConstructorCallConstructorTest test = new ConstructorCallConstructorTest();
ConstructorCallConstructorTest test =
new ConstructorCallConstructorTest torTest("ini test");
}
}
Constructor mana yang dipanggil pada waktu menggunakan keyword this ditentukan dari parameternya.
No comments:
Post a Comment