-4

次のチュートリアルのポイント 4 (このキーワードの使用法) をお読みください。

http://www.javatpoint.com/this-keyword

How はthisメソッドの正式な引数にすることができます。

コンストラクターの場合、コンストラクターが - Const(OBJECT obj) のようなものであれば、コンストラクターthisを呼び出すためだけに を渡すことができます。

thisメソッドで実引数として渡すと便利なシナリオは何ですか?

4

3 に答える 3

4

コンストラクターから this を呼び出して、他のコンストラクターへの呼び出しを与えることができます (例: this() の呼び出しに基づいて: デフォルト コンストラクターを呼び出しています。this(param) は、パラメーター化されたコンストラクターを呼び出しています。これはパラメーターとして、最終的には、これです。 current object を指しているので、 current object をパラメータとして任意のメソッドに渡したいところは、これを渡してください。

于 2013-06-15T11:48:21.600 に答える
2

this、他の人がすでに指摘しているように、現在のオブジェクトを参照し、それ自体への参照を渡すために使用されます。うまくいけばこれを明確にする例を示したいだけです。通常これを行うシナリオの 1 つは、イベント処理または通知です。

があり、が追加または削除されるたびEntityManagerに を起動したいとします。add/remove メソッドに次のものを含めることができます。UpdateEventEntity

public class EntityManager implements ApplicationEventPublisher {

    Set<Entity> entities = new HashSet<Entity>();

    public void addEntity (Entity e) {
        entities.add (e);
        publishEvent (new UpdateEvent (this, UpdateType.ADD, e));
    }

    public void removeEntity (Entity e) {
      if (entities.contains (e)) {
        entities.remove (e);
        publishEvent (new UpdateEvent (this, UpdateType.REMOVE, e));
      }
    }

    protected void publishEvent (Event e) {
      // handles the nitty-gritty of processing events
    }
}

wherethisは、オブジェクト自体であるイベント ソースを参照します。

そのため、EntityManagerは の一部として渡されたEventため、通知の受信者は後でEvent.getSource()メソッド呼び出しなどによってアクセスできました。

于 2013-06-15T12:03:23.503 に答える