私はthis
キーワードについていくつかのガイダンスを探しています。私はちょうどそのコンセプトについて学びました。それは私にとっては紛らわしいものです。ここに私のコードの一部です:私のコードで 'this'キーワードを正しく使用していますか?
public class CashRegister {
private ArrayList<Double> items;
private int itemCount;
private double totalPrice;
public double getTotal() {
this.totalPrice = 0;
for (int i = 0; i < this.items.size(); i++) {
this.totalPrice = this.totalPrice + this.items.get(i);
}
return totalPrice;
}
}
私は 'この'権利を使用していますか? totalPrice
やitems
ArrayListのような変数を使うたびに 'this'を使うべきですか?
私はいないだろう。それは冗長であり、言語を理解する人は誰でも 'totalPrice'がインスタンスフィールドを参照することを知っています。 – markspace
この場合、これらは必要ありません。このキーワードは、競合の可能性がある場合に使用されます。ここで、getTotal()で参照される唯一のオブジェクトは、それを呼び出すために使用されるオブジェクトです。したがって、私はどのオブジェクトの属性についての参照で競合することはありません。 –
私はそれが好きです。私にとっては、紛争を防ぐ方法の1つです。別の方法は、名前の競合を全く作成しないことです。例えば、メンバに 'mTotalPrice'のような接頭辞を与えることによって(例えば、他の言語では' _totalPrice'のように)。 IDEで作業している場合、 'this'を使用することを忘れた場合や、このような名前の競合を作成した場合(少なくともEclipseにはこれがあります)、警告するような高度なルールを設定できます。 – Zabuza