"Szeretnék mesélni az objektum inicializálásáról. Amikor létrehoz egy objektumot, kezdeti értékeket kell hozzárendelnie a változóihoz, hogy elkerülje azt a helyzetet, amikor olyan objektumhoz fér hozzá, amely nem rendelkezik a megfelelő működéshez szükséges információkkal."

"Vegyünk egy Fájl objektumot. A fájlhoz szükséges minimális információ a neve. Abszurd lenne névtelen fájlt létrehozni. "

"Tegyük fel, hogy írunk egy MyFile osztályt a fájlokkal való munkához. Milyen információkra lenne szükség az egyes objektumokhoz?"

"Az objektumhoz társított fájl neve?"

"Így van. Ehhez hozzáadjuk az inicializálás () metódust az osztályunkhoz. Így néz ki."

Példa:
class MyFile
{
    private String filename = null;

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

"Hozzáadtuk az inicializálási metódust, hogy lehetővé tegyük az objektummal a metódus meghívásával történő munkát. Az objektum metódusait az inicializálási metódus meghívása után azonnal meg tudjuk hívni. Ha nem tudunk dolgozni egy objektummal, érvénytelennek nevezzük ; egyébként Azt mondjuk , hogy az objektum érvényes

"Látom."

"Most nehezítsük meg a feladatunkat. Vagy ha jobban belegondolunk, könnyebb. Attól függ, hogyan nézzük. Tegyük fel, hogy egy programozó, aki a mi osztályunkat használja, kényelmesebbnek találná, ha csak a fájl könyvtárát és rövid nevét adja át a teljes elérési út helyett. Létrehozhatnánk egy másik inicializálási metódust ( a Java segítségével több, azonos nevű metódust is létrehozhatunk ), hogy ezt a programozó megtehesse. Így nézne ki az osztályunk:

Példa két inicializálási módszerrel:
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;
    }

…
}

"Még egy dolog: gyakran kell létrehoznunk egy ideiglenes másolatot egy fájlról az aktuális mellé."

– Létrehozhatunk erre módszert?

– Persze. Nézd.

Hozzon létre egy másolatot az aktuális fájl mellé:
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;
    }

…
}

– És ezekből a módszerekből annyit készíthetek, amennyit csak akarok?

– Nos, ésszerű keretek között. De technikailag igen, amennyit csak akar.

"Mikor kell meghívnom az inicializálási metódust?"

"Az objektum létrehozása után azonnal, hogy érvényes legyen."

Példák:
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();

"Mi ez a getFolder() metódus?"

"Valójában itt nem mutattuk meg a kódot. Ez egy olyan metódus, amely egy karakterláncot ad vissza annak a mappának a nevével, ahol a fájlunk van."