Home > Java > Constructor dalam Java

Constructor dalam Java

Beberapa hari ini saya lagi belajar bahasa pemrograman C#, saat sampai chapter tentang inheritance / pewarisan saya cukup bingung tentang constructor. Dalam buku tersebut penulis menyebutkan jika pewarisan pada C# mempunyai konsep yang sama dengan pewarisan pada Java dan yang membuat saya bingung dalam pewarisan / inheritance tersebut adalah saat kita menciptakan object dari derived class, apakah constructor base class juga di panggil? Untuk menjawab pertanyaan tersebut maka kita harus memulai dari awal tentang constructor.

Dalam menciptakan object dari suatu class dengan menggunakan keyword new, berarti kita telah memanggil dari class tersebut. Constructor berfungsi untuk melakukan inisialisasi instance variable dari object yang diciptakan. Deklarasi constructor hampir sama dengan deklarasi dari sebuat method, perbedaanya nama constructor sama dengan nama class, tidak mempunyai nilai balik bahkan void.  Jadi constructor hanya memiliki nama dan modifier ( public, private, protected ).

Contoh 1

public class Cube

{

int panjang;

int lebar;

int tinggi;

public Cube( int panjangCube, int lebarCube, int tinggiCube)

{

panjang = panjangCube;

lebar = lebarCube;

tinggi = tinggiCube;

}

}

Jika dalam sebuah class tidak terdapat constructor maka secara implisit  Java akan menciptakan default constructor. Default constructor adalah constructor tanpa parameter yang akan menginisialisasi variable instance sesuai dengan type datanya. variable numeric akan di set nilainya menjadi 0, string diset nilainya menjadi character(‘’), reference variable akan diset menjadi NULL

Contoh 2

public class Cube

{

int tinggi;

int lebar;

int panjang;

}

secara implisit sama dengan

public class Cube

{

int tinggi;

int lebar;

int panjang;

public Cube()

{

panjang =0;

lebar = 0;

tinggi = 0;

}

}

Jika suatu constructor didefinisikan secara explisit seperti pada contoh 1, maka class tersebut sudah tidak lagi mempunyai default constructor untuk menginisialisasi variable instance. Sehingga jika kita membutuhkan default constructor maka kita harus mendefinisikan sendiri.

Contoh 3

public class Cube

{

int panjang;

int lebar;

int tinggi;

public Cube() /* constructor tanpa parameter atau default */

{

/* inisialisasi variable instance */

}

public Cube( int panjangCube, int lebarCube, int tinggiCube) /* constructor dengan parameter */

{

panjang = panjangCube;

lebar = lebarCube;

tinggi = tinggiCube;

}

}

Penggunaan keyword  “this”

Jika keyword this digunakan constructor untuk  me-refer constructor lainya dalam class yang sama yang mempunyai parameter yang berbeda.

Contoh 4

Cube1.java

public class Cube1 {

int length;
int breadth;
int height;

public int getVolume() {
return (length * breadth * height);
}
Cube1()
{
this(1,2,4);
}
Cube1(int l, int b, int h) {
length = l;
breadth = b;
height = h;
}
}

Main.java

public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {

Cube1 cubeObj1, cubeObj2;
cubeObj1 = new Cube1();
cubeObj2 = new Cube1(10, 20, 30);
System.out.println("Volume of Cube1 is : " + cubeObj1.getVolume());
System.out.println("Volume of Cube1 is : " + cubeObj2.getVolume());
}

}

Penggunaan keyword  “super”

Constructor menggunakan keyword super untuk memanggil constructor dari base class-nya. Dan keyword super harus diletakkan pada baris pertama. Saat kita menciptakan object dari derived-class, sebenarnya default constructor dari parent class sudah dipanggil secara otomatis, hal ini disebut constructors chinning. Jadi penggunakan keyword super biasanya untuk memanggil constructor dari base class yang bukan default.

Demikin Tulisan saya. Semoga bermanfaat.😀

Referensi : Dari berbagai sumber.

  1. March 12, 2013 at 21:45

    oke…terima kasih ilmunya…

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: