"Size nesne başlatma hakkında bilgi vermek istiyorum. Bir nesne oluşturduğunuzda, doğru çalışması için gereken bilgilere sahip olmayan bir nesneye eriştiğiniz durumdan kaçınmak için değişkenlerine başlangıç ​​değerleri atamanız gerekir."

"Bir File nesnesi düşünelim. Bir dosya için gerekli olan minimum bilgi onun adıdır. İsimsiz bir dosya oluşturmak saçma olur. "

"Dosyalarla çalışmak için bir MyFile sınıfı yazdığımızı varsayalım. Her nesne için hangi bilgiler gerekli olacaktır?"

"Nesneyle ilişkili dosyanın adı?"

"Doğru. Bunu yapmak için, sınıfımıza başlatma () yöntemini ekliyoruz . Bu şekilde görünüyor."

Örnek:
class MyFile
{
    private String filename = null;

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

"Metodu çağırarak nesne ile çalışmayı mümkün kılmak için Initialize yöntemini ekledik . Initialize yöntemini çağırdıktan hemen sonra nesnenin yöntemlerini çağırabiliriz. Eğer bir nesne ile çalışamıyorsak ona geçersiz diyoruz , aksi takdirde, nesnenin geçerli olduğunu söylüyoruz.initialize yönteminin ana görevi, bir nesnenin onu geçerli kılmak için gerektirdiği tüm verileri almaktır. "

"Anlıyorum."

"Şimdi işimizi zorlaştıralım. Veya, ikinci düşünce, daha kolay. Nasıl baktığınıza bağlı. Farz edin ki sınıfımızı kullanan bir programcı, dosyanın tam yolu yerine sadece dizinini ve kısa adını iletmeyi daha uygun bulacaktır. Programcının bunu yapmasına izin vermek için başka bir başlatma yöntemi oluşturabiliriz ( Java, aynı adlara sahip birkaç yöntem oluşturmamıza izin verir ). Sınıfımız şöyle görünür:"

İki başlatma yöntemiyle örnek :
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;
    }}

"Bir şey daha: Bir dosyanın geçici bir kopyasını geçerli dosyanın yanında oluşturmamız gerekir."

"Bunu yapmak için bir yöntem oluşturabilir miyiz?"

"Tabii. Bak."

Geçerli dosyanın yanında bir kopya oluşturun:
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;
    }}

"Ve bu yöntemlerden istediğim kadarını yapabilir miyim?"

"Eh, mantıklı. Ama teknik olarak, evet, istediğin kadar."

"Başlatma yöntemini ne zaman çağırmam gerekir?"

"Nesneyi oluşturduktan hemen sonra, onu geçerli kılmak için."

Örnekler:
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
Görev
Java Syntax,  seviyeders
Kilitli
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.

"Bu getFolder() yöntemi nedir?"

"Aslında burada kodu göstermedik. Bu, dosyamızın depolandığı klasörün adıyla bir dize döndüren bir yöntemi temsil ediyor."