"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();
2
Feladat
Java Syntax,  szintlecke
Zárt
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.

"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."