"Saya ingin memberi tahu Anda tentang inisialisasi objek. Saat Anda membuat objek, Anda perlu menetapkan nilai awal ke variabelnya untuk menghindari situasi di mana Anda mengakses objek yang tidak memiliki informasi yang diperlukan untuk bekerja dengan benar."

"Mari kita pertimbangkan objek File. Informasi minimum yang diperlukan untuk sebuah file adalah namanya. Tidak masuk akal untuk membuat file tanpa nama. "

"Misalkan kita menulis kelas MyFile untuk bekerja dengan file. Informasi apa yang diperlukan untuk setiap objek?"

"Nama file yang terkait dengan objek?"

"Betul. Untuk melakukan ini, kami menambahkan metode inisialisasi () ke kelas kami. Begini tampilannya."

Contoh:
class MyFile
{
    private String filename = null;

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

"Kami menambahkan metode inisialisasi untuk memungkinkan bekerja dengan objek dengan memanggil metode. Kami dapat memanggil metode objek segera setelah memanggil metode inisialisasi. Jika kami tidak dapat bekerja dengan objek, kami menyebutnya tidak valid ; jika tidak, kami mengatakan objek itu valid . Tugas utama metode inisialisasi adalah menerima semua data yang diperlukan objek untuk membuatnya valid. "

"Jadi begitu."

"Sekarang mari kita buat tugas kita lebih sulit. Atau, setelah dipikir-pikir, lebih mudah. ​​Tergantung bagaimana Anda melihatnya. Misalkan seorang programmer yang menggunakan kelas kita akan merasa lebih nyaman untuk hanya meneruskan direktori file dan nama pendek daripada path lengkapnya. Kita dapat membuat metode inisialisasi lain ( Java memungkinkan kita membuat beberapa metode dengan nama yang sama ) agar pemrogram dapat melakukan ini. Beginilah tampilan kelas kita:"

Contoh dengan dua metode inisialisasi :
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;
    }}

"Satu hal lagi: kita sering kali perlu membuat salinan sementara dari file di samping file saat ini."

"Bisakah kita membuat metode untuk melakukan ini?"

"Tentu. Lihat."

Buat salinan di sebelah file saat ini:
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;
    }

   // The filename will be stored in the same directory as file.
    public void initialize(MyFile file, String name)
    {
        this.filename = file.getFolder() + name;
    }}

"Dan saya bisa membuat metode ini sebanyak yang saya mau?"

"Yah, masuk akal. Tapi secara teknis, ya, sebanyak yang kamu mau."

"Kapan saya harus memanggil metode inisialisasi?"

"Segera setelah membuat objek, untuk membuatnya valid."

Contoh:
MyFile file = new MyFile();
file.initialize("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();
file.initialize("c:\data\a.txt");

MyFile file2 = new MyFile();
file2.initialize("a.txt");

String text = file2.readText();
2
Tugas
Java Syntax,  level 5pelajaran 6
Terkunci
Code entry
Sometimes you don't need to think, you just need to hammer it out! As paradoxical as it may seem, sometimes your fingers will "remember" better than your conscious mind. That's why while training at the secret CodeGym center you will sometimes encounter tasks that require you to enter code. By entering code, you get used to the syntax and earn a little dark matter. What's more, you combat laziness.

"Apa metode getFolder() ini?"

"Kami belum benar-benar menampilkan kodenya di sini. Ini mewakili metode yang mengembalikan string dengan nama folder tempat file kami disimpan."