0

次のようなクラスを作成すると:

public class TagManager {
private final Context mCtx;

public TagManager (Context ctx) {
    this.mCtx = ctx;
}

}

使用の違いは何ですか

this.mCtx = ctx;

mCtx = ctx;

私が知る限り、どちらも同じことをしていますが、それについての議論は見つかりません。

4

3 に答える 3

4

確かにそれは同じです。それは単なる CodeStyle の問題です。より好きなものを選択するのはあなた次第です。

これを行う唯一の合理的なケース。*は、引数とメンバー変数が同じ名前の場合です。例えば

    private final Context ctx;
    public TagManager (Context ctx) {
        this.ctx = ctx;
    }

ただし、Android コード スタイルでは、メンバー変数に m*** プレフィックスを使用するように指示されているため、このような状況がクラスで発生することはめったにありません。

幸運を

于 2012-09-02T15:14:06.353 に答える
2

インスタンス メソッドまたはコンストラクター内では、これは現在のオブジェクト (メソッドまたはコンストラクターが呼び出されているオブジェクト) への参照です。

public class Point {
    public int x = 0;
    public int y = 0;

    //constructor
    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }
}

this.xpublic int x例では、いいえを参照してくださいint x

于 2012-09-02T15:15:15.010 に答える
1

このことを考慮:

public class foo {
private final int bla = 1;

public int blabla () {
    int bla = 2;
    return bla;//this will return 2
}

/

public class foo {
private final int bla = 1;

public int blabla () {
    int bla = 2;
    return this.bla;//this will return 1
}
于 2012-09-02T15:15:25.707 に答える