Cuplikan kuliah dengan seorang mentor sebagai bagian dari kursus Codegym University. Mendaftar untuk kursus penuh.


"Sekarang saatnya saya memberi tahu Anda tentang konstruktor. Ini adalah konsep yang sangat sederhana. Pemrogram telah menemukan cara singkat untuk membuat dan menginisialisasi objek. "

Tanpa konstruktor Dengan konstruktor
MyFile file = new MyFile();
file.initialize("c:\data\a.txt");
String text = file.readText();
MyFile file = new MyFile("c:\data\a.txt");
String text = file.readText();
MyFile file = new MyFile();
file.initialize("c:\data\", "a.txt");
String text = file.readText();
MyFile file = new MyFile("c:\data\", "a.txt");
String text = file.readText();
MyFile file = new MyFile();
file.initialize("c:\data\a.txt");

MyFile file2 = new MyFile();
file2.initialize( MyFile file, "a.txt");
String text = file2.readText();
MyFile file = new MyFile("c:\data\a.txt");


MyFile file2 = new MyFile(file, "a.txt");
String text = file2.readText();

"Saya baru saja selesai belajar tentang metode inisialisasi..."

"Lihat lebih keras. Dengan konstruktor, kodenya lebih nyaman dan ringkas."

"Begitulah. Inilah pertanyaannya. Saya tahu cara menulis metode inisialisasi di dalam kelas, tetapi bagaimana cara menulis konstruktor?"

"Pertama, lihat contoh ini:"

Tanpa konstruktor Dengan konstruktor
class MyFile
{
  private String filename = null;

  public void initialize(String name)
  {
    this.filename = name;
  }

  public void initialize(String folder, String name)
  {
    this.filename = folder + name;
  }

  public void initialize(MyFile file, String name)
  {
    this.filename = file.getFolder() + name;
  }

…
}
class MyFile
{
  private String filename = null;

  public MyFile(String name)
  {
    this.filename = name;
  }

  public MyFile(String folder, String name)
  {
    this.filename = folder + name;
  }

  public MyFile(MyFile file, String name)
  {
    this.filename = file.getFolder() + name;
  }

…
}

"Sangat mudah untuk mendeklarasikan konstruktor di dalam kelas. Konstruktor mirip dengan metode inisialisasi , hanya dengan dua perbedaan:

1. Nama konstruktor sama dengan nama kelas (bukan menginisialisasi).

2. Konstruktor tidak memiliki tipe (tidak ada tipe yang ditunjukkan)."

"Oke, jadi seperti initialize , tapi dengan beberapa perbedaan. Saya rasa saya mengerti."