Java Constructor: Panduan Lengkap – Codewithaden

Kita dapat mengatakan konstruktor adalah jenis metode tertentu yang dengannya kita dapat menginisialisasi objek kelas. Ini membangun nilai -nilai pada saat pembuatan suatu objek. Itu sebabnya disebut konstruktor.

Tidak wajib membuat konstruktor untuk kelas karena konstruktor waktu kompilasi dibuat secara default jika tidak ada konstruktor di kelas.

Konstruktor Java

SEBUAH konstruktor di Jawa adalah metode khusus yang digunakan untuk menginisialisasi objek yang baru dibuat dan dipanggil tepat setelah memori dialokasikan untuk objek. Ini dapat digunakan untuk menginisialisasi objek ke nilai yang diinginkan atau default pada saat pembuatan objek.

Konstruktor Java adalah kode dari Blok dalam metode seperti Java. Ini dipanggil ketika instance objek dibuat dan memori dialokasikan untuk objek.

Setiap kali suatu objek dibuat menggunakan kata kunci baru (), setidaknya satu konstruktor dipanggil. Pertama, ia memanggil konstruktor default. Ini disebut konstruktor karena membangun nilai pada saat pembuatan objek.

Tidak perlu menulis konstruktor untuk kelas. Itu karena kompiler Java membuat konstruktor default jika kelas Anda tidak memiliki konstruktor.

Java

Konstruktor memiliki nama yang sama dengan kelas dan terlihat seperti ini dalam kode Java.

public class Acme {

   //This is the constructor
   Acme(){

   }
   ..
} 

Satu hal yang perlu diperhatikan adalah bahwa nama konstruktor cocok dengan nama kelas dan tidak memiliki tipe pengembalian.

Program Konstruktor Sederhana di Java

Lihat kode berikut.

// Scan.java

public class Scan {
  String hero;

  // Constructor
  Scan() {
    this.hero = "Ironman";
  }

  public static void main(String[] args) {
    Scan obj = new Scan();
    System.out.println(obj.hero);
  }
} 

Saat Anda menjalankan kode di atas, itu akan mengembalikan output sebagai “Manusia Besi.”

Beberapa aturan penting untuk membuat konstruktor apa pun

  1. Nama konstruktor harus sama dengan kelas nama.
  2. Itu tidak boleh memiliki nilai pengembalian secara eksplisit .
  3. Konstruktor Java tidak bisa abstrak, final, dan disinkronkan.
  4. Setiap kelas memiliki konstruktor, baik kelas reguler atau abstrak.
  5. Jika Anda tidak menerapkan konstruktor apa pun di dalam kelas, kompiler akan melakukannya untuk Anda.
  6. Overloading konstruktor dimungkinkan, tetapi utama tidak dimungkinkan. Ini berarti kami dapat memiliki konstruktor yang kelebihan beban di kelas kami, tetapi kami tidak dapat mengesampingkan konstruktor.
  7. Jika SuperClass tidak memiliki konstruktor no-arg (default), maka kompiler tidak akan memasukkan konstruktor default di kelas anak seperti yang terjadi dalam skenario standar.
  8. Antarmuka tidak memiliki konstruktor.
  9. Konstruktor juga dapat memohon konstruktor lain dari kelas yang sama menggunakan ini (). Misalnya, jika Anda ingin memohon konstruktor yang parameter, maka lakukanlah seperti yang berikut: ini (daftar parameter)
  10. Konstruktor tidak dapat diwariskan.

Catatan: Kami dapat menggunakan pengubah akses saat membuat konstruktor apa pun untuk mengontrol pembuatan objek. Kami dapat menggunakan pengubah akses publik, pribadi, default, atau terlindungi Java.

Jenis konstruktor

Ada dua jenis konstruktor. Kami akan membahas yang satu ini.

  1. Konstruktor default (tidak ada argumen)
  2. Konstruktor yang diparameterisasi

Konstruktor default

Konstruktor default menginisialisasi nilai default objek. Dan konstruktor ini tidak mengambil parameter apa pun. Itu memohon pembuatan objek.

Sintaksis

 () {} 

Lihat contoh kode berikut.

// Box.java

class Box
{
	//default constructor 
	Box()
	{
		System.out.println("Constructor for Box class have been created");
	}
	public static void main(String [] ar)
	{
		//invoking constructor while initializing object 
		Box b= new Box();
	}
} 

Lihat outputnya.

Default

Mengapa kita menggunakan konstruktor default?

Kami menggunakan konstruktor default untuk memberikan nilai default (0, null, dll.) Untuk objek.

Mari kita lihat contoh untuk memahami ini dengan benar.

// DefaultCons.java

//default constructor which displays the default values  
class DefaultCons
{  
  int length;  
  String name;

  //method to display the value of id and name  
  void display()
  {
	System.out.println(length+" "+name);
  }  
  
  public static void main(String args[])
  {  
	//creating objects  
	DefaultCons d1=new DefaultCons();  
	DefaultCons d2=new DefaultCons();  
        
        //displaying values of the object  
	 d1.display();  
	 d2.display();  
    }  
} 

Lihat outputnya. Why

Di kelas di atas, kami tidak membuat konstruktor apa pun, sehingga kompiler memberi Anda konstruktor default. Di sini 0 dan nilai nol disediakan oleh konstruktor default.

Konstruktor yang diparameterisasi

Konstruktor yang berisi parameter dikenal sebagai konstruktor parameter. Ini digunakan untuk memberikan nilai yang berbeda untuk objek yang berbeda.

Mari kita lihat sebuah contoh. Pertama, kami akan membuat kelas dan kemudian konstruktor yang parameter. Akhirnya, kami akan menginisialisasi nilai ke objek.

// Student.java

//Java Program to demonstrate the use of parameterized constructor  
class Student
{  
    int id;  
    String name;  
    
   //creating a parameterized constructor  
    Student(int id,String name)
    {  
      this.id = id;  
      this.name = name;  
    }  
    //method to display the values  
    void show()
    {
	System.out.println(id+" "+name);
    }  
   
    public static void main(String args[])
    {  
        //creating objects and passing values  
        Student s1 = new Student(100,"Ram");
        Student s2 = new Student(200,"Rahim");  
        //calling method to display the values of object  
        s1.show();  
        s2.show();  
    }  
} 

Lihat outputnya.

Parametrized

Overloading konstruktor

Konstruktor Java seperti metode tetapi tanpa jenis pengembalian.

Jadi, itu bisa kelebihan beban seperti metode konvensional.

Overloading konstruktor di Java melibatkan memiliki lebih dari satu konstruktor dengan daftar parameter yang berbeda. Mereka diatur sedemikian rupa sehingga setiap konstruktor melakukan tugas lain. Kompiler membedakannya dengan jumlah parameter dalam daftar dan jenisnya.

Lihat kode berikut.

// Student2.java

//Java program to overload constructors in java  
class Student2
{  
    int id;  
    String name;  
    int age;  
    //creating two arg constructor  
    Student2(int id,String name)
    {  
       this.id = id;  
       this.name = name;  
    }
    //creating three arg constructor  
    Student2(int id,String name,int age)
    {  
       this.id = id;  
       this.name = name;  
       this.age=age;  
    }  
    void show()
    { 
	System.out.println(id+" "+name+" "+age);
    }  
   
    public static void main(String args[])
    {  
        Student2 s1 = new Student2(100,"Ram");
        Student2 s2 = new Student2(200,"Rahim",18);
        s1.show();
        s2.show();
    }  
} 

Lihat outputnya.

Constructor

Konstruktor Copy Java

Tidak ada konstruktor salinan di Java. Namun, kami dapat menyalin nilai -nilai dari satu objek ke objek lain seperti konstruktor copy di C ++.

Ada banyak cara untuk menyalin nilai -nilai satu objek ke yang lain di Java. Mereka adalah sebagai berikut.

  1. Oleh konstruktor
  2. Dengan menetapkan nilai satu objek ke yang lain

Contoh1: di sini, Kami akan menyalin nilai satu objek ke yang lain menggunakan konstruktor Java.

// Student3.java

//Java program to initialize the values from one object to another class Student3
{  
    int id;  
    String name;  
    //constructor to initialize integer and string  
    Student3(int id,String name)
    {  
       this.id = id;  
       this.name = name;  
    }  
    //constructor to initialize another object  
    Student3(Student3 s)
    {  
       this.id = s.id;  
       this.name = s.name;  
    }  
    void show()
    {
	 System.out.println(id+" "+name);
    }  
   
    public static void main(String args[])
    {  
        Student3 s1 = new Student3(100,"Ram");  
        Student3 s2 = new Student3(s1);  
        s1.show();  
        s2.show();  
    }
} 

Lihat outputnya.

Java

Contoh2: Kita dapat menyalin nilai -nilai satu objek ke yang lain dengan menetapkan nilai objek ke objek lain. Dalam hal ini, tidak perlu membuat konstruktor.

Lihat kode berikut.

// Student4.java

class Student4
{  
    int id;  
    String name;  
    Student4(int id,String name)
    {  
       this.id = id;  
       this.name = name;  
    }  
    Student4()
    {
		
    }  
    void show()
    {
       System.out.println(id+" "+name);
    }  
   
    public static void main(String args[])
    {  
       Student4 s1 = new Student4(100,"Ram");  
       Student4 s2 = new Student4();
       s2.id=s1.id;
       s2.name=s1.name;  
       s1.show();  
       s2.show();  
    }  
} 

Lihat outputnya.

Java

Perbedaan antara konstruktor dan metode

  1. Tujuan dari konstruktor adalah untuk menginisialisasi objek kelas, sementara tujuan metode adalah untuk melakukan tugas dengan menjalankan kode Java.
  2. Konstruktor tidak dapat berupa abstrak, final, statis, dan disinkronkan, sedangkan metode dapat abstrak, final, statis, dan disinkronkan.
  3. Konstruktor tidak memiliki jenis pengembalian saat metode melakukannya.

Itu untuk tutorial ini.

Artikel ini berasal dari website Winpoin, dan kemudian diterjemahkan ke bahasa indonesia, baca artikel asli disini

Leave a Reply

Your email address will not be published. Required fields are marked *