SORU
9 Mart 2010, Salı


Ne zaman "bu" bir sınıfta kullanmalıyım?

this geçerli bir nesne anlamına gelir. Ama ben gerçekten bunu kullanmak için gereken zaman bilmiyorum. Örneğin, eğer bazı yöntemler x yerine this.x kullanırsam herhangi bir fark olacak mı? Kabul yöntemi için yerel bir değişken için başvuracaktır x olabilir? Sadece bu yöntemde görülen değişken yani.

Ne this.method()? Bunu kullanabilir miyim? Bunu kullanmalıyım. Eğer sadece method(), olacak şey değil, varsayılan olarak, geçerli nesne için başvurdun?

CEVAP
9 Mart 2010, Salı


this anahtar kelime öncelikle üç durumlarda kullanılır. İlk ve en yaygın belirleyici değişken başvuruları belirsizliği ortadan kaldırmak için yöntemler. İkinci bir nesne yöntemi bağımsız değişken olarak mevcut sınıf örneği geçirmek için bir ihtiyaç vardır. Üçüncü bir yapıcısı içindeki diğer kurucular çağırmak için bir yol olarak.

Durum 1 örnek:this değişken başvuruları belirsizliği ortadan kaldırmak için kullanıyor. Java ayarlayıcı yöntemleri, yaygın olarak ayarlamaya çalışırken biz özel üye değişkeni olarak aynı ada sahip bir değişken geçmek. Biz o zaman this.x değişken x atayın.

public class Foo {

    private String name;

    // ...

    public void setName(String name) {
        // This makes it clear that you are assigning 
        // the value of the parameter "name" to the 
        // instance variable "name".
        this.name = name;
    }

    // ...
}

Durum 3 örnek:this diğer kurucular çağırmak için kullanıyor. Açıklamalarda, trinithis doğru this başka bir kullanım alanı da dikkat çekti. Tek bir sınıf için birden fazla kurucular, this(arg0, arg1, ...) seçtiğiniz başka bir kurucu, kurucu ilk satırda yapman karşılığında çağırmak için kullanabilirsiniz.

class Foo {

    public Foo() {
        this("Some default value for bar");

        // Additional code here will be executed 
        // after the other constructor is done.
    }

    public Foo(String bar) {
        // Do something with bar
    }

    // ...
}

Ayrıca this örnek değişkeni başvuruluyor gerçeğini vurgulamak için kullanılan (anlam ayrımı ihtiyaç sans) gördüm, ama benim görüşüme göre nadir bir durumdur.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BioHunta

    BioHunta

    28 Mayıs 2006
  • ChasesAndCrashes

    ChasesAndCra

    31 Temmuz 2009
  • SolidWorksTutoriels

    SolidWorksTu

    14 Kasım 2013