2016-03-24 15 views
0
public class sample { 
    private int x = 3; 
    public sample() {} 
    public sample(int num) { 
     this(); 
     x = num; 
    } 

    public int getX() { 
     // should I use return this.x; or just return x;? Does it matter which one? 
    } 
} 

x dönüşünü kullandım; Şu ana kadar kodumdaki stil ve this.x iadesi kullanıp kullanmadığımı merak ettim; herhangi bir fayda sağladıysa ya da salt okunabilirlik/açıklık olması durumunda. Özür dilerim, bu muğlak mı yoksa kafa karıştırıcı mı, gerçekten başka nasıl telaffuz edeceğini bilmiyorum. (x değil shadowed ise) size AksiÖzel bir değişkene başvururken, this.variableName bildirisine mi ihtiyacınız var?

public void setX(int x) { 
    this.x = x; 
} 

gibi bir şey yazmak gerekir parametresi x ve alan x arasındaki belirsizliği amacıyla

+2

neden denemiyorsunuz? Ayrıca neden buna "();" diyorsunuz? –

+0

Önceden tanımlanmış sınıfta, kod parçacığına dahil etmediğim bazı şeyler vardı çünkü gerçekten alakalı değildi. Ve ben her zaman sadece x'in döndüğü şekilde yaptım; fakat bunun yerine pek çok insan bunu fark ettiler ve herhangi bir fayda olup olmadığını merak ettiler. –

cevap

2

, setX(int x) düşünün, o zaman gerek yok this belirtin (örtük).

public int getX() { 
    return x; // <-- same as return this.x; 
} 
+0

Kişilerin, yerel değişkeni özel bir değişkenle aynı adla kullanması yaygın mıdır, yoksa genellikle önlenen bir şey midir? –

+1

@JavaTheHutt Mutators ile nadir olmadığını söylemek istiyorum; ama o zaman aynı zamanda stil rehberleri bir alan erişirken * her zaman * this.x 'kullanmanızı öneririz görmek için yaygın değildir. –

2

Hayır sadece return x; kullanmak gerekir. Teknik olarak this.x'u kullanmanızın tek nedeni, yöntemde yerel bir x değişkeni olsaydı.

İlgili konular