Konstruktor Java (Dengan Contoh)

Dalam tutorial ini, kita akan belajar tentang konstruktor Java, tipenya, dan cara menggunakannya dengan bantuan contoh.

Apa itu Pembuat?

Konstruktor di Java mirip dengan metode yang dipanggil saat objek kelas dibuat.

Tidak seperti metode Java, konstruktor memiliki nama yang sama dengan kelas dan tidak memiliki tipe kembalian. Sebagai contoh,

 kelas Test (Test () (// konstruktor body))

Di sini, Test()adalah konstruktor. Ini memiliki nama yang sama dengan kelas dan tidak memiliki tipe kembalian.

Bacaan yang Direkomendasikan: Mengapa konstruktor tidak mengembalikan nilai

Contoh 1: Pembuat Java

 class Main ( private String name; // constructor Main() ( System.out.println("Constructor Called:"); name = "Programiz"; ) public static void main(String() args) ( // constructor is invoked while // creating an object of the Main class Main obj = new Main(); System.out.println("The name is " + obj.name); ) )

Keluaran :

 Constructor Called: Namanya Programiz

Dalam contoh di atas, kami telah membuat konstruktor bernama Main(). Di dalam konstruktor, kami menginisialisasi nilai variabel nama.

Perhatikan pernyataan membuat objek kelas Utama.

 Main obj = new Main();

Di sini, ketika objek dibuat, Main()konstruktor dipanggil. Dan, nilai variabel nama diinisialisasi.

Oleh karena itu, program mencetak nilai variabel nama sebagai Programiz.

Jenis-Jenis Konstruktor

Di Java, konstruktor dapat dibagi menjadi 3 jenis:

  1. Pembuat No-Arg
  2. Pembuat Parameter
  3. Pembuat Default

1. Konstruktor Java No-Arg

Mirip dengan metode, konstruktor Java mungkin memiliki atau tidak memiliki parameter (argumen).

Jika konstruktor tidak menerima parameter apa pun, ia dikenal sebagai konstruktor tanpa argumen. Sebagai contoh,

 private Constructor() ( // body of the constructor )

Contoh 2: Konstruktor no-arg pribadi Java

 class Main ( int i; // constructor with no parameter private Main() ( i = 5; System.out.println("Constructor is called"); ) public static void main(String() args) ( // calling the constructor without any parameter Main obj = new Main(); System.out.println("Value of i: " + obj.i); ) )

Keluaran :

 Pembangun disebut Nilai i: 5

Dalam contoh di atas, kami telah membuat konstruktor Main(). Di sini, konstruktor tidak menerima parameter apa pun. Oleh karena itu, ini dikenal sebagai konstruktor tanpa argumen.

Perhatikan bahwa kita telah mendeklarasikan konstruktor sebagai privat.

Setelah konstruktor dideklarasikan private, ia tidak dapat diakses dari luar kelas. Jadi, membuat objek dari luar kelas dilarang menggunakan private constructor.

Di sini, kami membuat objek di dalam kelas yang sama. Oleh karena itu, program dapat mengakses konstruktor. Untuk mempelajari lebih lanjut, kunjungi Java Implement Private Constructor.

Namun, jika kita ingin membuat objek di luar kelas, maka kita perlu mendeklarasikan konstruktor sebagai public.

Contoh 3: Konstruktor tanpa argumen publik Java

 class Company ( String name; // public constructor public Company() ( name = "Programiz"; ) ) public class Main ( public static void main(String() args) ( // object is created in another class Company obj = new Company(); System.out.println("Company name = " + obj.name); ) )

Keluaran :

 Nama perusahaan = Programiz

Bacaan yang Disarankan: Java Access Modifier

2. Java Parameterized Constructor

Konstruktor Java juga dapat menerima satu atau lebih parameter. Konstruktor semacam itu dikenal sebagai konstruktor berparameter (konstruktor dengan parameter).

Contoh 4: Konstruktor berparameterisasi

 class Main ( String languages; // constructor accepting single value Main(String lang) ( languages = lang; System.out.println(languages + " Programming Language"); ) public static void main(String() args) ( // call constructor by passing a single value Main obj1 = new Main("Java"); Main obj2 = new Main("Python"); Main obj3 = new Main("C"); ) )

Keluaran :

 Bahasa Pemrograman Java Bahasa Pemrograman Python Bahasa Pemrograman C.

Dalam contoh di atas, kami telah membuat konstruktor bernama Main(). Di sini, konstruktor mengambil satu parameter. Perhatikan ekspresinya,

 Main obj1 = new Main("Java");

Here, we are passing the single value to the constructor. Based on the argument passed, the language variable is initialized inside the constructor.

3. Java Default Constructor

If we do not create any constructor, the Java compiler automatically create a no-arg constructor during the execution of the program. This constructor is called default constructor.

Example 5: Default Constructor

 class Main ( int a; boolean b; public static void main(String() args) ( // A default constructor is called Main obj = new Main(); System.out.println("Default Value:"); System.out.println("a = " + obj.a); System.out.println("b = " + obj.b); ) )

Output:

 a = 0 b = false

Here, we haven't created any constructors. Hence, the Java compiler automatically creates the default constructor.

The default constructor initializes any uninitialized instance variables with default values.

Type Default Value
boolean false
byte 0
short 0
int 0
long 0L
char u0000
float 0.0f
double 0.0d
object Reference null

In the above program, the variables a and b are initialized with default value 0 and false respectively.

The above program is equivalent to:

 class Main ( int a; boolean b; // a private constructor private Main() ( a = 0; b = false; ) public static void main(String() args) ( // call the constructor Main obj = new Main(); System.out.println("Default Value:"); System.out.println("a = " + obj.a); System.out.println("b = " + obj.b); ) )

The output of the program is the same as Example 5.

Important Notes on Java Constructors

  • Constructors are invoked implicitly when you instantiate objects.
  • The two rules for creating a constructor are:
    The name of the constructor should be the same as the class.
    A Java constructor must not have a return type.
  • If a class doesn't have a constructor, the Java compiler automatically creates a default constructor during run-time. The default constructor initializes instance variables with default values. For example, the int variable will be initialized to 0
  • Constructor types:
    No-Arg Constructor - a constructor that does not accept any arguments
    Parameterized constructor - a constructor that accepts arguments
    Default Constructor - a constructor that is automatically created by the Java compiler if it is not explicitly defined.
  • A constructor cannot be abstract or static or final.
  • A constructor can be overloaded but can not be overridden.

Constructors Overloading in Java

Similar to Java method overloading, we can also create two or more constructors with different parameters. This is called constructors overloading.

Example 6: Java Constructor Overloading

 class Main ( String language; // constructor with no parameter Main() ( this.language = "Java"; ) // constructor with a single parameter Main(String language) ( this.language = language; ) public void getName() ( System.out.println("Programming Langauage: " + this.language); ) public static void main(String() args) ( // call constructor with no parameter Main obj1 = new Main(); // call constructor with a single parameter Main obj2 = new Main("Python"); obj1.getName(); obj2.getName(); ) )

Output:

 Programming Language: Java Programming Language: Python

Dalam contoh di atas, kami memiliki dua konstruktor: Main()dan Main(String language). Di sini, kedua konstruktor menginisialisasi nilai bahasa variabel dengan nilai yang berbeda.

Berdasarkan parameter yang diteruskan selama pembuatan objek, konstruktor yang berbeda dipanggil dan nilai yang berbeda ditetapkan.

Dimungkinkan juga untuk memanggil satu konstruktor dari konstruktor lain. Untuk mempelajari lebih lanjut, kunjungi Java Call One Constructor from Another.

Catatan : Kami telah menggunakan thiskata kunci untuk menentukan variabel kelas. Untuk mengetahui lebih banyak tentang thiskata kunci, kunjungi Java kata kunci ini.

Artikel yang menarik...